系统: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面试网
|