Zabbix-sender实现秒级监控

背景

客户需要提供秒级监控,使用agent发送获取是server取数据都会大大消耗性能,影响server和client的正常运行。zabbix-sender可解决这一问题,既能实现秒级监控也只是针对某一监控项单独定义,不会对整体造成太多的性能消耗。

安装zabbix-sender

安装zabbix-sender,主动发数据实现秒级监控
安装需与zabbix-server版本一致,例如zabbix-server是3.4,zabbix-sender也是3.4.x

1
2
rpm -ivh https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum install zabbix-sender -y

mark

1
2
3
4
5
6
7
其核心为利用zabbix_sender来发送数据
zabbix_sender
-z zabbix服务器的地址
-s 创建主机的主机名称
-k 键值名称
-o 上报的数据
-p zabbix 服务器的端口

编写脚本

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
29
30
31
32
33
34
35
36
37
#!/bin/bash
# ping可执行路径
PINGCMD=/usr/bin/ping
# zabbix_sender可执行文件路径
SENDCMD=/usr/bin/zabbix_sender
# ping测主机ip地址
CHECKHOST=baidu.com
# zabbix服务器ip地址
ZABBIXSERVER=43.254.x.xx
# zabbix服务器监听端口
ZABBIXPORT=10051
# zabbix添加这条监控主机名
LOCALHOST=checkping_monitor
# ping包的数量
PAG_NUM=1
# 添加监控项的键值
ZAX_KEY=ping_response
# 获取ping响应时间
check_ping() {
$PINGCMD -c $PAG_NUM $CHECKHOST >/dev/null 2>&1
if [ $? -eq 0 ];then
RESPONSE_TIME=`$PINGCMD -c $PAG_NUM -w 1 $CHECKHOST |head -2 |tail -1|awk '{print $(NF-1)}'|cut -d= -f2`
echo $RESPONSE_TIME
else
echo 0
fi
}
# 发送数据到zabbixserver
send_data() {
DATA=`check_ping`
$SENDCMD -z $ZABBIXSERVER -s $LOCALHOST -k $ZAX_KEY -o $DATA
}
while true
do
send_data
sleep 1
done
1
2
3
其中上报给zabbix server端的数据可以根据自己实际自定义需求上报即可
在服务器上将脚本在后台运行即可
nohup /bin/bash check_ping.sh &

mark

Zabbix web界面配置

  • 添加主机
    mark
    注意:此处的主机名称为脚本中的-LOCALHOST

  • 添加监控项
    mark
    注意:此处类型选择zabbix采集器,键值为脚本中的ZAX_KEY,下面填写允许上报的主机IP

  • 添加图形
    mark
    mark

-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。