首页 > 其他 > 详细

zabbix--External checks 外部命令检测

时间:2019-06-22 19:24:48      阅读:165      评论:0      收藏:0      [点我收藏+]

概述
zabbix server 运行脚本或者二进制文件来执行外部检测,外部检测不需要在被监控端运行任何 agentd
item key 语法如下:

参数 定义
script shell 脚本或者二进制文件名.
parameter(s) Optional command line parameters.

如果不想传递任何参数,如下:
script[] 或者 script
zabbix server 会再定义好的目录里面执行外部脚本(zabbix server 中的配置 extenalScripts),这个脚本将使用 zabbix
的运行用户身份运行。请注意权限以及只有指定目录中的命令才能够被执行。
zabbix 脚本使用标准方式输出(完整输出但是会删除末尾的空白) ,标准错误和退出代码将会被丢弃

PS:请不要过度使用那个外部检测,这会严重降低 zabbix 系统性能

 下面写个简单脚本测试下:

[root@localhost zabbix]# ls
alertscripts  externalscripts
[root@localhost zabbix]# cat externalscripts/mysql.sh 
#!/bin/bash
export MYSQL_PWD=123456
mysql -uroot  -h 192.168.1.107 -e "select account_locked from mysql.user where user=‘zabbix‘;"
[root@localhost zabbix]# chmod a+x externalscripts/mysql.sh 
[root@localhost zabbix]# chown zabbix:zabbix externalscripts/mysql.sh 
[root@localhost zabbix]# ll externalscripts/mysql.sh 
-rwxr-xr-x 1 zabbix zabbix 131 Jun 22 16:13 externalscripts/mysql.sh
[root@localhost zabbix]# pwd
/usr/lib/zabbix
[root@localhost zabbix]# 

然后创建item

技术分享图片

 

 检查能不能获取到数据:技术分享图片

上面例子可以继续优化 实际上脚本可能会给多个主机使用,不同主机的数据库连接信息也不一样,需要改成传参的方式:

加入位置参数:

[root@localhost zabbix]# ./externalscripts/mysql.sh 192.168.1.107 zabbix 123456
N
[root@localhost zabbix]# cat ./externalscripts/mysql.sh 
#!/bin/bash
host=$1
user=$2
mysql_pwd=$3

export MYSQL_PWD=$3
mysql -uroot  -h $1 -e "select account_locked from mysql.user where user=\"$2\";" | sed -n "2p"
[root@localhost zabbix]# 

 修改下item:

 技术分享图片

再配置下value maping

 技术分享图片

 

 

技术分享图片

 

 

 lastest data看下效果:

技术分享图片

 

zabbix--External checks 外部命令检测

原文:https://www.cnblogs.com/laonicc/p/11069115.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!