18、zabbix低级自动发现
版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin
lld概述
#、自动发现/自动注册---自动添加主机
#、希望zabbix自动添加监控项: 自动监控一些,有关联的内容: 网卡,磁盘,磁盘分区......, 低级自动发现(Low Level Discovery 简称LLD)
#、系统模板自带的自动发现规则
#、自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法。
#、例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项。此外,可以配置
#、Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控。
22.1.增加一个监控项原型
增加一个UserParameter=xxxx[*],cmd $1
监控每块网卡的mac地址
#编写配置文件
[root@web02 ~]# vim /etc/zabbix/zabbix_agent2.d/zbx_net.conf
[root@web02 ~]# cat /etc/zabbix/zabbix_agent2.d/zbx_net.conf
UserParameter=net_mac[*],ifconfig $1|awk '/ether /{print $$2}'
#重启服务
[root@web02 ~]# systemctl restart zabbix-agent2.service
#服务端测试取值
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k net_mac[eth1]
00:0c:29:ec:c8:fe
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k net_mac[eth0]
00:0c:29:ec:c8:f4
#接下来web界面配置
#接下来去看下效果
#重启zabbix-server、再次刷新界面
#能不能取到值,接下来去监测—>最新数据—>选择主机查看
22.2.低级自动发现的过滤器
#新开一个窗口,创建一个新的正则表达式
#回到自动发现规则—过滤器这边
#然后点击监控项
22.3.通过低级自动发现监控mysql多实例
cp /etc/my.cnf /etc/my3307.cnf
vim /etc/my3307.cnf
[mysqld]
datadir=/data/3307/
socket=/data/3307/mysql.sock
port=3307
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/3307/mysqld.log
pid-file=/data/3307/mysqld.pid
sed '/^$/d' /etc/my3307.cnf
sed -i '/^$/d' /etc/my3307.cnf
cp /etc/my3307.cnf /etc/my3308.cnf
sed -i 's#3307#3308#g' /etc/my3308.cnf
cat /etc/my3308.cnf
mysql_install_db --user=mysql --defaultsfile=/etc/my3307.cnf
mysql_install_db --user=mysql --defaultsfile=/etc/my3308.cnf
mysqld_safe --defaults-file=/etc/my3307.cnf &
mysqld_safe --defaults-file=/etc/my3308.cnf &
mysqladmin -uroot -h 127.0.0.1 -P 3307 password
'123456'
mysql -uroot -p123456 -h 127.0.0.1 -P 3307
mysqladmin -uroot -h 127.0.0.1 -P 3308 password
'123456'
mysql -uroot -p123456 -h 127.0.0.1 -P 3308
创建低级自动发现规则
#自定义规则的监控项
vim /etc/zabbix/zabbix_agent2.d/zbx_mysql.conf
UserParameter=mysql.port.discovery,/bin/bash
/server/scripts/mysql_port_discovery.sh
#脚本
vim /server/scripts/mysql_port_discovery.sh
#!/bin/bash
#mysql low-level discovery
res=`netstat -lntp|awk -F "[ :\t]+"
'/mysqld/{print$5}'`
port=($res)
printf '['
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 && "${key}" -ne
"$((${#port[@]}-1))" ]];then
printf '{'
printf "\"{#MYSQLPORT}\":\"${port[${key}]}\"},"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf '{'
printf "\"{#MYSQLPORT}\":\"${port[${key}]}\"}"
fi
done
printf ']\n'
#重启
systemctl restart zabbix-agent2.service
#测试
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k
mysql.port.discovery
[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"
{#MYSQLPORT}":"3308"}]
创建监控项原型
vim zbx_mysql.conf
UserParameter=mysql_alive[*],mysqladmin -uroot -p123456 -h 127.0.0.1 -P $1 ping 2>/dev/null|grep -c alive
#测试
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_alive[3307]
1
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16387171.html