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超时
五、安装