Logstash对日志的管理和分析

it2022-05-05  150

本篇博客承接上篇ES集群的搭建已经部署好基本的web界面。

集群环境:

os:rhel7

主机名ip状态server1172.25.26.1backupserver2172.25.26.2masterserver3172.25.26.3backup

使用 logstash管理日志:

[root@server3 ~]# yum install -y logstash-6.6.1.rpm

安装logstash。

[root@server3 logstash]# bin/logstash -e 'input { stdin { } } output {stdout {} }'

[root@server3 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

之后在终端中随意输入内容进行测试。 可以看到有对应的输出。

[root@server3 conf.d]# pwd /etc/logstash/conf.d [root@server3 conf.d]# vim es.conf input { stdin {} } output { stdout {} elasticsearch { hosts => ["172.25.26.1:9200"] index => "logstash-%{+YYYY.MM.dd}" } }

编写配置文件。

[root@server3 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf

查看索引,可以看到当时在终端上输入的信息。

[root@server3 conf.d]# vim es.conf input { #stdin {} file { path => "/var/log/elasticsearch/my-es.log" ##日志 start_position => "beginning" } } output { stdout {} elasticsearch { hosts => ["172.25.26.1:9200"] index => "logstash-%{+YYYY.MM.dd}" } } [root@server3 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf

上面添加的日志直接显示在终端上不用人工进行输入。 在浏览器上查看到这些日志,用这样的方法可以更方便的管理我们的日志,只需要修改上面日志的存放路径就可以了。

[root@server3 conf.d]# vim es.conf

管理/var/log/messages下的日志。

[root@server3 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf

推送。下面在看看如何删除这些信息。

点击动作,再点击删除。 出现这个对话框之后输入删除,就删除成功哦了。 查看之前的数据,果然也查看不到了。

[root@server3 file]# pwd /usr/share/logstash/data/plugins/inputs/file [root@server3 file]# l. . .. .sincedb_452905a167cf4509fd08acb964fdb20c [root@server3 file]# cat .sincedb_452905a167cf4509fd08acb964fdb20c 36305 0 64768 220708 1563446925.362003 /var/log/messages [root@server3 file]# rm -rf .sincedb_452905a167cf4509fd08acb964fdb20c

再次推送时要先删除这个文件。

[root@server3 file]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf

刷新一下就可以查看到日志了。 下面来做一下远程日志的管理。

[root@server3 conf.d]# vim es.conf

设置远程日志同步的514端口。 之后再server1进行设置。

[root@server1 elasticsearch]# vim /etc/rsyslog.conf

所有类型所有级别的日志通过514端口发送给server3这台主机。

[root@server1 elasticsearch]# systemctl restart rsyslog.service

重启服务后生效。

[root@server3 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf

回到server3进行推送,刚开始终端上没有日志的输出,但日志同步过来之后就可以看到输出了。 日志的输出。

[root@server1 elasticsearch]# logger hello world

此时再server1产生一条日志。 再server3的终端中就可以查看到这条日志。 这条日志也可以再浏览器上输入关键字查看到。

[root@server3 ~]# cd - /etc/logstash/conf.d [root@server3 conf.d]# vim test.conf input { stdin { codec => multiline { pattern => "^EOF" ##设置标识 negate => "true" what => "previous" } } } output { stdout {} } [root@server3 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

推送之后再终端输入信息,直到输入前面设定的标示EOF才会结束一次输入,这里我输入了三行。


最新回复(0)