ELK安装配置,监控nginx日志

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
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 nginx

nginx #自带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=1

yum 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/
配置filebeat

vim /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页面上就可以看到对应的日志信息

 目前,仅限安装了,其他深入的东东,还没有了解。先记录下,以便以后使用吧!

 

猜你喜欢

转载自www.cnblogs.com/fengxingzhe/p/11024817.html