ELK(一)介绍、Elasticsearch安装和构建集群
原创 ELK(二)安装配置kibana、logstash和收集日志信息
这篇文章和上面两个是联系起来的。
一.收集nginx日志
在logstash服务器170上配置:
vim /etc/logstash/conf.d/nginx.conf
#添加
input {
file { //从文件中取
path => "/tmp/elk_access.log"
start_position => "beginning" //从文件哪里开始
type => "nginx" //自定义类型
}
}
filter {
grok { //指定日志按格式输出
match => { "message" => "%{IPORHOST:http_host} %{IPORHOST:clientip} - %{USERNAME:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{NUMBER:request_time:float}"}
}
geoip {
source => "clientip"
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["192.168.247.160:9200"]
index => "nginx-test-%{+YYYY.MM.dd}"
}
}
如果没有nginx就安装一下:
yum install -y nginx
增加一个虚拟主机:
vim /etc/nginx/conf.d/elk.conf
添加
server {
listen 80;
server_name elk.ligen.com;
location / {
proxy_pass http://192.168.247.160:5601;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
}
access_log /tmp/elk_access.log main2;
}
编辑nginx主配置文件:
#在http模块里面增加一个main2日志格式
log_format main2 '$http_host $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$upstream_addr" $request_time';
检测配置文件有没有错及启动:
nginx -t
systemctl start nginx
在windows上添加主机记录:
浏览器访问elk.ligen.com应该会跳出kibana图形界面。
查看/tmp/elk_access.log应该有日志生成:
cat /tmp/elk_access.log
测试logstash:
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/nginx.conf --config.test_and_exit
重启logstash:
systemctl restart logstash
在160机器上查看索引:
curl '192.168.247.160:9200/_cat/indices?v'
green open nginx-test-2020.02.08 A9LWMjUTTpqJNJIkG_fMTw 1 1 1009 0 341.2kb 207.6kb
有索引之后,在浏览器上配置索引:
打开elk.ligen.com,就是192.168.247.160这台机器:
二.使用beats采集日志
logstash对资源的占用比较大,而beats是一个轻量级采集器。
在180上实验:
安装filebeat:
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/filebeat.repo
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
#安装
yum install filebeat
编辑配置文件,同样可以定义input和output:
enabled: true
paths: //定义输入
- /var/log/messages
编辑完配置文件之后,指定配置文件启动filebeat:
/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml
控制台终端有输出说明没问题,接下来更改配置文件使日志到elasticsearch:
vim /etc/filebeat/filebeat.yml
#修改,也可以不用改,我想换一个输入
paths:
- /var/log/elasticsearch/ligenlinux.log
启动:
systemctl start filebeat
完成之后,可以在160上看有没有生成新的索引:
curl '192.168.247.160:9200/_cat/indices?v'
green open filebeat-7.5.2-2020.02.08-000001 6K9pyscrRneE0cASAzcNiQ 1 1 6 0 29.8kb 14.8kb
在浏览器kibana界面创建索引:
完成。