ELK安装配置,监控nginx日志,小白学习中,只为做个记录。原理什么的还不清楚。流程通了!方便日后回顾吧!
1、准备工作
a)关闭防火墙
关闭防火墙:service iptables stop
永久关闭防火墙:chkconfig iptables off
查看防火墙状态:service iptables status
b)关闭SELinux
永久有效:修改/etc/sysconfig/selinux
将文本中的SELINUX=enforcing,改为SELINUX=disabled。然后重启
即时有效:setenforce 0
查看状态:getenforce
两台机器
机器1,IP=192.168.10.128 安装部署elk
机器2,IP=192.168.10.129 安装部署ngix以及filebeat
安装部署机器1,(ELK)
获取安装软件包
mkdir /elk;cd /elk
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.3.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz
并解压复制到/usr/local/目录下
cd /elk
tar xf elasticsearch-6.2.3.tar.gz
tar -xf logstash-6.2.3.tar.gz
tar -xf kibana-6.2.3-linux-x86_64.tar.gz cp -a elasticsearch-6.2.3 /usr/local/
cp -a logstash-6.2.3 /usr/local/
cp -a kibana-6.2.3-linux-x86_64 /usr/local/
yum -y install java-1.8* #最新版本elasticsearch基于jdk1.8,需要先安装jdk【本地配置的yum源中就有可以直接使用】
【elasticsearch配置】
useradd elasticsearch #创建elasticsearch用户
chown -R elasticsearch.elasticsearch /usr/local/elasticsearch-6.2.3/
su - elasticsearch #需要切换到 elasticsearch用户启动服务
cd /usr/local/elasticsearch-6.2.3/
./bin/elasticsearch -d #启动服务
查看进程是否成功(需要等待一下)
netstat -antp
9200 端口
若出现错误可以查看日志
cat /usr/local/elasticsearch-6.2.3/logs/elasticsearch.log
测试是否可以正常访问
curl localhost:9200
【logstash配置】
注意切回root用户
vim /usr/local/logstash-6.2.3/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns #添加nginx的过滤配置,使用的grok过滤插件解析日志(这里写的是一个正则,直接照抄了,具体没有研究)
#Nginx log
WZ([^]*)
NGINXACCESS %{IP:remote_jp} \- \- \[%{HTTPDATE:timestamp}\] "%{WORD:method}% {WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{QS:referer} %{QS:agent} %{QS:xforward}
创建logstash配置文件
[root@server local]# vim /usr/local/logstash-6.2.3/default.conf #这里需要关注下路径,后面启动服务需要调用这个路径
input {
beats {
port => "5044"
}
}
# 数据过滤
filter {
grok {
match => { "message" => "%{NGINXACCESS}" }
}
geoip {
# nginx客户端ip
source => "192.168.10.129"
}
}
# 输出配置为本机的9200端口,这是ElasticSearch服务的监听端口
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
}启动logstash服务
cd /usr/local/logstash-6.2.3/
nohup ./bin/logstash -f default.conf & #会调用 default.conf配置文件,未设置路径时,默认在执行命令所在路径,否则会报下面的错误[2019-06-14T15:51:21,543][INFO ][logstash.config.source.local.configpathloader] No config files found in path {:path=>"/usr/local/logstash-6.2.3/bin/default.conf"}
检查服务是否启动
netstat -natp|grep 5044
【kibana配置】
修改配置文件
vim /usr/local/kibana-6.2.3-linux-x86_64/config/kibana.yml
将
server.host: "localhost"
修改为
server.host: "192.168.10.128"
启动Kibana服务
cd /usr/local/kibana-6.2.3-linux-x86_64/
nohup bin/kibana &netstat -natp|grep 5601
kibana的页面
机器2,IP=192.168.10.129 安装部署ngix以及filebeat
【nginx客户端配置】
yum -y install nginxnginx #自带yum源,无法下载
可以使用如下配置
cd /etc/yum.repos.d/
vim nginx.repo
netstat -natp|grep 5601[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1yum install nginx -y
启动nginx,并设置开机自启动
service nginx start
chkconfig nginx on
chkconfig --list nginx
nginx的页面
【filebeat】下载filebeat并解压到/usr/local路径下
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.3-linux-x86_64.tar.gz
tar -xf ./filebeat-6.2.3-linux-x86_64.tar.gz -C /usr/local/
配置filebeatvim /usr/local/filebeat-6.2.3-linux-x86_64/filebeat.yml
24 enabled: false #修改为true
27 paths:
28 - /var/log/*.log #修改为/var/log/nginx/*.log
143 #output.elasticsearch:
144 # Array of hosts to connect to. #注释掉,关闭elasticsearch收集
145 # hosts: ["localhost:9200"]153 #output.logstash:
154 # The Logstash hosts
155 #hosts: ["127.0.0.1:5044"] #取消注释,将logstash开启收集,并将IP修改为ELK服务器的地址启动filebeat
cd /usr/local/filebeat-6.2.3-linux-x86_64
nohup ./filebeat -e -c filebeat.yml & #注意路径,这里选用相对路径,并且注意调用的配置文件路径(filebeat.yml)
以上步骤完成后,多刷新几次nginx页面,稍后在kibana页面上就可以看到对应的日志信息
目前,仅限安装了,其他深入的东东,还没有了解。先记录下,以便以后使用吧!