ELK(三)收集nginx日志和beats采集日志

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界面创建索引:
在这里插入图片描述
完成。

发布了117 篇原创文章 · 获赞 33 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37369726/article/details/104219139