使用Zabbix监控logstash

配置过程

logstash常规的监控项可以去移步 https://github.com/fredprod/logstash-zabbix ,有模板有脚本,可以说是非常全面、服务到家了。

本文主要是要监控logstash的tps,先说一下tps的定义:它是Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。我们从TPS里反馈出logstash的实时工作状态。

首先先要安装logstash-output-zabbix,安装方法很简单:在logstash/bin目录下执行./logstash-plugin install logstash-output-zabbix,如图:
akb48

然后在启动logstash对应的conf文件里,新增如下的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
input {
...
}

filter {
...原有配置略

metrics {
meter => "events" #这里统计经过filter的事件
add_tag => "metric"
add_field => {"[@metadata][zabbix_key]" => "logstash_events"} #zabbix item的key,这个要和zabbix-server的配置一致
add_field => { "[@metadata][zabbix_host]" => "被监控机器名" } #zabbix写入的主机
flush_interval => 30 #设定写入频率,我这里是30秒一次
}
}


output {
...原有配置略

if "metric" in [tags] {
zabbix {
zabbix_server_host => "172.31.0.77" #这里是zabbix-server的地址
zabbix_host => "[@metadata][zabbix_host]"
zabbix_key => "[@metadata][zabbix_key]"
zabbix_value => "[events][count]" #[events][count] 是事件统计数据,
}
}

保存之后,来到zabbix-server的web端,新增一个items,如下:
akb48

注意!这个items的类型是zabbix-trapper(Zabbix采集器)!同时设定Preprocessing stepssimple change

然后重启logstash即可。重启之后,如果出现了如下的错误:

1
2
[2019-06-11T15:53:33,789][WARN ][logstash.outputs.zabbix  ] Zabbix server at ZABBIXIP地址 rejected all items sent. {:zabbix_host=>"被监控机器名"}
[2019-06-11T15:53:43,797][WARN ][logstash.outputs.zabbix ] Zabbix server at ZABBIXIP地址 rejected all items sent. {:zabbix_host=>"被监控机器名"}

检查一下zabbix_keyzabbix_host是否与zabbix-server网页端配置的完全一致,而且zabbix_value也最好不要是具体值,[events][count]就可以了。

然后在zabbix-server端就可以看到tps结果了:
akb48

使用systemctl启动logstash

我这个logstash是tar包安装的,每一次杀死启动都是敲命令,看上去很挫,于是就要转成systemctl的方式。首先先创建logstash用户和用户组,确认logstash用户在logstash用户组里。然后需要改几个地方:

先去pipelines.yml里修改path.config: “/logstash路径/config/*.conf”,改成实际的配置文件。然后再在同文件夹的startup.options里修改

1
2
3
LS_HOME=/usr/share/logstash-6.2.3  项目目录
LS_SETTINGS_DIR="$LS_HOME/config"
LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"

再logstash安装路径下执行./bin/system-install /logstash安装路径/config/startup.options systemd。一会就能看到一个成功的字样,去/etc/systemd/system/logstash.service目录可以看到配置文件。此时就是可使用systemctl enable/start/stop/restart logstash.service来操作了!

参考资料

https://www.zabbix.com/cn/integrations/logstash
https://notes-by-yangjinjie.readthedocs.io/zh_CN/latest/service/elk/08-logstash-output-zabbix.html

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------