zabbix-sender+crontab+nc实现无agent监控
1.zabbix-sender介绍
zabbix获取监控项值的每隔多少时间去主机上去取,有的自定义监控项脚本需要执行很长的时间,有时候根本没法监控,这时就可以用zabbix-sender直接给zabbix-server发送数据,不需要等待脚本取值的时间,也就是说脚本什么时候执行完,将执行的结果通过zabbix-sender直接给zabbix-server发送数据,zabbix-server也就不需要等待了
zabbix-sender的效率更高,同时如果想把所有监控项都做成zabbix-sender,难度将非常大,另外zabbix-sender也可以发送假值
2.在被控端安装zabbix-sender
1.准备zabbix源 [root@192_168_81_170 ~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm [root@192_168_81_170 ~]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm [root@192_168_81_170 ~]# vim /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://mirror.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1 2.安装zabbix-sender [root@192_168_81_170 ~]# yum -y install zabbix-sender
3.使用zabbix-sender给zabbix-server发生监控信息
3.1.zabbix-sender命令语法
zabbix-sender -z zabbix-server地址 -s 本机地址 -k 监控项名称 -o 监控值
-z:指定zabbix server服务器
-s:指定监控主机的地址,一般就是本机地址
-k:监控项名称
-o:监控项的值
3.2.在zabbix-server创建一个avalimem的监控项
点击创建监控项
名称:avalimem
类型:zabbix采集器 #这里类型一定要选择zabbix采集器
键值:avalimem
3.3.使用zabbix-sender模拟发送监控指标
模拟发送
[root@192_168_81_170 ~]# zabbix_sender -z 192.168.81.250 -s 192.168.81.170 -k avalimem -o 666 info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000190" sent: 1; skipped: 0; total: 1
查看页面最新数据,已经成功发送
4.编写取值脚本并配置crontab自动发送监控数据
4.1.编写脚本并配置计划任务
[root@192_168_81_170 scripts]# vim availmem.sh #!/bin/bash mem=`free -m | awk '/^Mem/{print $NF}'` zabbixserver=192.168.81.250 host=192.168.81.170 key=avalimem zabbix_sender -z $zabbixserver -s $host -k $key -o $mem [root@192_168_81_170 scripts]# crontab -e * */5 * * * /etc/zabbix/scripts/availmem.sh
4.2.查看监控数据
已经更新了模拟数据
5.利用nc替代zabbix-sender发送监控指标
1.编写nc脚本 [root@192_168_81_170 scripts]# vim zabbix_sender.sh #!/bin/bash host=$1 item=$2 value=$3 echo '{"request" :"sender data","data":[{"host":'\"$host\"',"key":'\"$item\"',"value":'\"$value\"'}]}'|nc 192.168.81.250 10051 && echo "" 2.调用nc脚本取值 [root@192_168_81_170 scripts]# vim availmem.sh #!/bin/bash mem=`free -m | awk '/^Mem/{print $NF}'` zabbixserver=192.168.81.250 host=192.168.81.170 key=avalimem /etc/zabbix/scripts/zabbix_sender.sh $host $key $mem 3.执行脚本 [root@192_168_81_170 scripts]# sh availmem.sh 4.执行脚本后观察页面数据