配置过程
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
,如图:
然后在启动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
28input {
...
}
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,如下:
注意!这个items的类型是zabbix-trapper
(Zabbix采集器)!同时设定Preprocessing steps
为simple 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_key
、zabbix_host
是否与zabbix-server
网页端配置的完全一致,而且zabbix_value
也最好不要是具体值,[events][count]
就可以了。
然后在zabbix-server端就可以看到tps结果了:
使用systemctl启动logstash
我这个logstash是tar包安装的,每一次杀死启动都是敲命令,看上去很挫,于是就要转成systemctl的方式。首先先创建logstash用户和用户组,确认logstash用户在logstash用户组里。然后需要改几个地方:
先去pipelines.yml
里修改path.config: “/logstash路径/config/*.conf”,改成实际的配置文件。然后再在同文件夹的startup.options
里修改
1
2
3LS_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