系统:centos7
ELK版本:7.8.0
java环境:11
1. 配置JDK
#配置JDK11 mkdir /root/source/ cd /root/source wget https://repo.huaweicloud.com/openjdk/11.0.1/openjdk-11.0.1_linux-x64_bin.tar.gz tar -zxf openjdk-11.0.1_linux-x64_bin.tar.gz mv jdk-11.0.1/ /usr/local/jdk11 #修改环境变量 vi /etc/profile ##添加下面四行 export JAVA_HOME=/usr/local/jdk11 export JAVA_BIN=$JAVA_HOME/bin export JRE_HOME=$JAVA_HOME/jre export PATH=$JAVA_HOME/bin:$PATH #####立刻生效 source /etc/profile ###查看版本 java -version
同步时间
yum -y install ntpdate #安装同步命令 ntpdate ntp1.aliyun.com #同步时间
2. 下载ELK源码包
wget -c https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-linux-x86_64.tar.gz wget -c https://mirrors.huaweicloud.com/logstash/7.8.0/logstash-7.8.0.tar.gz wget -c https://mirrors.huaweicloud.com/kibana/7.8.0/kibana-7.8.0-linux-x86_64.tar.gz
3. elasticsearch配置启动
tar -zxf elasticsearch-7.8.0-linux-x86_64.tar.gz mv elasticsearch-7.8.0 /usr/local/ cd /usr/local useradd elk passwd elk chown -R elk: elasticsearch-7.8.0/
su elk cd elasticsearch-7.8.0/config/ cp elasticsearch.yml elasticsearch.yml.bak
elasticsearch.yml配置文件
node.name: node-1 network.host: 0.0.0.0 http.port: 9200 http.cors.enabled: true http.cors.allow-origin: "*" cluster.initial_master_nodes: ["node-1"]
修改其他项
vim config/jvm.options #打开配置文件后就知道修改哪里了 8-13:-XX:+UseConcMarkSweepGC 改为 8-13:-XX:+UseG1GC su root #切回root用户 vi /etc/security/limits.conf #添加下面内容 * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 #修改内核参数 vi /etc/sysctl.conf #添加下面一行 vm.max_map_count=655360 #立刻生效 sysctl -p
启动elasticsearch
su elk #必须切回普通用户启动!!! cd elasticsearch-7.8.0/bin ./elasticsearch -d #-d 守护进程执行 ps -ef|grep java #查看进程是否存在 netstat -ntulp #查看端口有无监听,如果没有等待一会 curl 192.168.118.130:9200 #记得替换ip
4. kibana配置启动
cd /root/source #记得切回root tar -zxf kibana-7.8.0-linux-x86_64.tar.gz mv kibana-7.8.0-linux-x86_64 /usr/local/kibana cd /usr/local/kibana/config/ cp kibana.yml kibana.yml.bak vi kibana.yml ####修改以下四项,如果es写的不是0.0.0.0,这边的localhost也需要换掉 server.port: 5601 server.host: "192.168.118.130" elasticsearch.hosts: ["http://localhost:9200"] i18n.locale: "zh-CN" #启动kibana nohup /usr/local/kibana/bin/kibana --allow-root >> /tmp/k.log &
稍等两分钟,等待端口监听成功,启动过程较慢,可以看/tmp/k.log文件。
端口已经启动了。
web端可以访问出图形了。
浏览器打开"192.168.118.130:5601",点击“试用我们的样例数据”,这三个可以都点击添加,不添加的话,后面会无法创建索引模式,起码创建一个。
可以看到样例数据了,如果看不到,点击时间,选择最近一年就出来了。
5.logstash启动
cd ~/source/
tar -zxf logstash-7.8.0.tar.gz
mv logstash-7.8.0 /usr/local/logstash
cd /usr/local/logstash/config/
cp logstash.yml logstash.yml.bak
修改logstash.yml文件
http.host: 0.0.0.0
#收集nginx日志
vi nginx.conf
#########内容如下
input {
file {
type => "nginx-access-log"
path => "/var/log/nginx/access.log"
stat_interval => "2"
codec => json
}
}
filter {}
output {
elasticsearch {
hosts => ["http://192.168.118.130:9200"]
index => "logstash-nginx-access-log-%{+YYYY.MM.dd}"
}
stdout {
codec => json_lines
}
}
###########
cd ..
安装nginx
yum -y install nginx
修改日志格式为json
vi /etc/nginx/nginx.conf
########################################
log_format json '{"@timestamp":"$time_iso8601",'
'"@version":"1",'
'"client":"$remote_addr",'
'"url":"$uri",'
'"status":"$status",'
'"domain":"$host",'
'"host":"$server_addr",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"referer": "$http_referer",'
'"ua": "$http_user_agent"'
'}';
############################################
access_log /var/log/nginx/access.log json; #日志格式修改为json
启动nginx
systemctl start nginx
访问web页面
http://192.168.118.130
启动logstash
nohup ./bin/logstash -f config/nginx.conf >> l.log & #我是相对路径,如果不在这个目录下,记得打绝对路径
OK了,进入kibana的界面配置。
http://192.168.118.130:5601
点击后,可能会刷不出来logstash,因为没数据,刷新两下nginx页面,产生一下数据,多等待两分钟,然后再刷新页面就会出现了(大坑,踩了很久)
选择最近1分钟,然后刷新nginx页面
刷新nginx,kibana页面也会跟着输出,如果没变化,点击Refresh
运行状态yellow问题:
这个问题在于单机版的 ES,是没有备份的,没有副本,设置 index 副本的数量为 0 即可。
运行状况是yellow
解决方法:
发送get请求,后面跟url就可以看到结果,这里看到是yellow状态。
GET /_cluster/health
发送put请求,
PUT /_settings
{
"index" : {
"number_of_replicas" : 0
}
}
再次检查健康状态
看,它绿了。
内容参考来自于:
centos7 源码配置ELK 7.8_oToyix的博客-CSDN博客
logstash收集nginx日志_寰宇001的博客-CSDN博客_logstash nginx
es中单机部署状态为Yellow解决办法_ELK_PHP面试网



