ELK redis部署 - youngperson/study-100 GitHub Wiki

一、安装前环境检测

  • Elasticsearch需要依赖Java环境
  • 没有则安装 yum -y install java-1.8.0-openjdk*
  • 安装的java版本太低运行Elasticsearch会报错
  • Java -version

二、安装Elasticsearch

  • 官网下载zip包

  • wget下载,unzip解压

  • 解压后不需要编译安装就可以使用,先看看配置文件是否需要修改

  • 配置文件:Elasticsearch/config/elasticsearch.yml

  • 配置文件:Elasticsearch/config/jvm.options (5.0以上版本默认需要JVM内存是2G,可以改该配置文件修改)

  • 命令目录:Elasticsearch/bin/*

  • 修改配置:设置ip和端口

  • 不能以root身份运行: groupadd elk && useradd elk -g elk -p elk

  • 启动:chown -R elk:elk Elasticsearch && su elk && Elasticsearch/bin/elasticsearch -d

  • 测试:curl -X GET http://ip:9200 (有信息返回)

      错误1:ERROR: bootstrap checks failed
      system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
      解决1:Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
      在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面加上:
      bootstrap.memory_lock: false
      bootstrap.system_call_filter: false
      
      错误2:bootstrap checks failed
      max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
      解决2:
      修改/etc/sysctl.conf 文件,添加 "vm.max_map_count= 262144"
      并执行:sysctl -p
      
      错误3:bootstrap checks failed
      max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
      解决3:修改/etc/security/limits.conf 文件,添加下面设置是elk用户(*表示全部用户)
      	* soft nofile 65536
      	* hard nofile 131072
      	* soft nproc 2048
      	* hard nproc 4096
      	elk soft nofile 65536
      	elk hard nofile 65536
      退出用户重新登录,使配置生效。 ulimit -Hn 查看
      
      错误4:bootstrap checks failed
      max number of threads [1024] for user [elk] is too low, increase to at least [2048]
      解决4:切换到root用户,进入limits.d目录下修改配置文件。
      vi /etc/security/limits.d/90-nproc.conf
      #修改为
      * soft nproc 2048
    

三、安装logstash

  • 官网下载zip包

  • wget下载,unzip解压

  • 解压后不需要编译安装就可以使用,先看看配置文件是否需要修改

  • 配置文件:logstash/config/logstash.yml (配置)

  • 配置文件:logstash/config/jvm.options (5.0以上版本默认需要JVM内存是256M,可以改该配置文件修改)

  • 配置文件:logstash/config/log4j2.properties

  • 命令目录:logstash/bin/*

  • logstash/bin/system-install

      logstash输入的配置文件
      logstash 的配置主要分为三大部分:input, filter, output。
      输入ES的可以是日志文件,也可以是redis(这里用redis,日志统一打到redis去)
      vi  /usr/local/src/elk/conf/logstash.conf
      		input {
      		  redis {   #表示从redis中取出数据
      			host => "192.168.44.10"
      			port => 6379
      			data_type => "list"                #一定要是list结构
      			key => "api_logstash_log_list"   #指定去list这个键中取出数据
      		  }
      		}
    
      		output {
      		  elasticsearch  {
      			hosts => ["192.168.44.10:9200"]   #多个机器可以这样写["172.16.4.102:9200","172.16.4.103:9200"]
      			index => "api_logstash_log_list-%{+YYYY-MM}"
      		  }
      		}
    
  • 测试一下:logstash/bin/logstash -t -f /usr/local/src/elk/conf/logstash.conf &

      错误1:ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.Sending Logstash's logs to /usr/local/src/elk/logstash-5.5.0/logs which is now configured via log4j2.properties
      解决1:vi /config/startup.options    修改路径
      
      LS_HOME=/usr/local/src/elk/logstash-5.5.0
      
      vi  /config/logstash.yml     在末尾新增
      
      	node.name: logstash
      	path.data: /usr/local/src/elk/logstash-5.5.0/data/
      	path.config: /usr/local/src/elk/logstash-5.5.0/config/
      	path.logs: /usr/local/src/elk/logstash-5.5.0/logs/
      	http.host: 192.168.44.10
      	http.port: 9600
      
      logstash和elasticsearch 无需授权配置
      vi elasticsearch.yml
      
      问题2:不能以root身份运行,查看配置文件中startup.options看到是用logstash
      解决2: groupadd logstash  && useradd logstash -g logstash -p logstash
      chown -R logstash:logstash  logstash && su logstash
      ./bin/logstash --path.settings='/usr/local/src/elk/logstash-5.5.0/' -f /usr/local/src/elk/conf/logstash.conf &
    

四、安装redis

  • 因为logstash的数据来源是redis

  • 官网下载

  • 解压后需要编译安装

  • make && make install

  • 配置文件:redis.conf 可以拷贝到指定的地方去,指定下本机ip(bind 192.168.44.10)

  • 启动:redis-server redis.conf & 指定配置文件方式启动

      错误1:logstash一直报连接redis超时
    

五、安装