15468 发表于 2019-1-25 11:38:40

zabbix自定义KEY监控服务状态[不需要端口]

  zabbix监控Windows下的服务并实现告警和重启服务
  首先 创建获取服务状态的脚本
  一、Windows脚本
  

@echo off
set srvname=%1
for /f "skip=3 tokens=4" %%i in ('sc query %srvname%') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (
:服务运行正常,返回1.
echo 1
) else (
:服务运行异常,返回0
   echo 0
)  

  我这里将此脚本命名为test.bat保存在 c:\zabbix\cmd\test.bat里面
  cmd运行 c:\zabbix\cmd\test.bat W32Time
  看返回的服务状态是否正常
  

  二、Linux 脚本
  刚才又编辑了linux下的脚本,实现方式一样
vi /etc/zabbix/test.sh
chmod +x /etc/zabbix/test.sh  输入以下内容:
srvname=$1
sta=`ps -ef |grep $srvname |grep -v "grep"`
if [[ $sta = "" ]];
then
    echo "0"
else
    echo "1"
ficd /etc/zabbix/
./test.sh httpd
1  同样的 测试脚本返回状态是否正确
  我这里测试的是httpd服务
  

  三、配置自定义KEY并测试
  

  然后编辑zabbix_agentd的配置文件 C:\zabbix\conf\zabbix_agentd.win.conf
  打开远程脚本开关 并自定义KEY值
  EnableRemoteCommands=1
  打开远程脚本开关
  UserParameter=test.status,C:\zabbix\cmd\test.bat W32Time
  自定义Key 并从脚本获取key的值 我这里的key是test.status。W32Time 是需要监控的服务
  完整配置如下
LogFile=c:\zabbix\log\zabbix_agentd.log
Server=172.16.1.241,127.0.0.1
Hostname=TEST
StartAgents=10
Timeout=30
UnsafeUserParameters=1
EnableRemoteCommands=1
UserParameter=test.status,C:\zabbix\cmd\test.bat W32Time  然后重启windows下的zabbix_agentd服务
  重启完成以后在本机测试自定义key是否可以成功运行
  在cmd里面输入
c:\zabbix\bin\zabbix_get.exe -s 172.16.1.252 -k test.stat
us
0  我这里已经吧W32Time关闭 这里返回的是0如果打开的话 应该返回1
  

  测试成功以后,在zabiix服务器上测试自定义的key值
/usr/local/zabbix/bin/zabbix_get -s 172.16.1.252 -k test.status  应该也可以正确返回0或者1 如果不能请检查防火墙或者zabbix_agentd服务是否成功启动,并检查zabbix_agentd的配置文件中的server指定的IP是否正确
  

  四、在zabbix中添加自定义key并创建动作进行报警和远程命令
  

  然后就可以在zabbix中创建自定义key来监控此服务了
  我这以W32Time为名称 键值输入 在zabbix_agent中自定义的键值 展示值这选择Service state
  

http://s3.运维网.com/wyfs02/M00/79/0D/wKioL1aGh2-gTWUTAACCKgCveEE810.png
  然后创建触发器
  定义触发器名称,表达式如下所示。选择最后一次值为0时触发报警
  严重性这里根据您的实际情况进行选择
http://s2.运维网.com/wyfs02/M00/79/0F/wKiom1aGh0-hkRMMAABk-9gEfpI476.png
  创建动作
  在条件里面选择触发器 将刚才创建的触发器添加到里面
http://s5.运维网.com/wyfs02/M02/79/0D/wKioL1aGh3CwqR6SAABE42v8PNc302.png
  操作里面添加远程命令
  使用 sc start W32Time这里的W32Time根据需要改为您的服务名称
http://s2.运维网.com/wyfs02/M02/79/0D/wKioL1aGh3DStxlyAABtp8M-q6Y775.png
  保存以后在zabbix_agent客户机上重启W32Time服务器测试报警及远程命令执行结果
http://s1.运维网.com/wyfs02/M00/79/0D/wKioL1aGh3fCRpcpAAbG1yuKss8026.png
  在zabbix上查看服务监控状态
http://s3.运维网.com/wyfs02/M02/79/0E/wKioL1aGiOLDesVVAAB6Cyryy6o820.png
  

  

  




页: [1]
查看完整版本: zabbix自定义KEY监控服务状态[不需要端口]