本篇博客承接上篇ES集群的搭建已经部署好基本的web界面。
集群环境:
os:rhel7
主机名 | ip | 状态 |
---|---|---|
server1 | 172.25.26.1 | backup |
server2 | 172.25.26.2 | master |
server3 | 172.25.26.3 | backup |
使用 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才会结束一次输入,这里我输入了三行。