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"
fi
cd /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

然后创建触发器

定义触发器名称,表达式如下所示。选择最后一次值为0时触发报警

严重性这里根据您的实际情况进行选择

创建动作

在条件里面选择触发器 将刚才创建的触发器添加到里面

操作里面添加远程命令

使用 sc start W32Time  这里的W32Time根据需要改为您的服务名称

保存以后在zabbix_agent客户机上重启W32Time服务器测试报警及远程命令执行结果

在zabbix上查看服务监控状态

时间: 2024-10-12 16:00:54

zabbix自定义KEY监控服务状态[不需要端口]的相关文章

Zabbix自定义key监控docker

一.需求场景在某些docker容器中运行着java,容器提供API供监控调用.需要监控服务运行是否正常和容器内JVM使用情况. 二.想法编写监控脚本,使用自定义key的方式添加到Zabbix中. 三.实践1.编写服务监控脚本 #!/bin/bash interval_time=600 service_port_file=/script/tmp/service_port.txt #Gener_service_port tee > ${service_port_file} << EOF ap

zabbix 自定义key 监控mysql增删查改

1.先熟悉一下zabb自定义key的使用格式 vim /etc/zabbix/zabbix_agentd.d/mysql.conf##zabbix_agentd.d在这个文件夹下的.conf,都会被agent读取,我们这里新建的一个配置文件方便使用,这样就不需要去动主配置文件了 UserParameter=echo[*],echo "$1" #要传递参数要带[*],且key键必须全局唯一 UserParameter=ifconfig,ifconfig|awk NR==2'{print

zabbix自定义key监控mysql主从同步超简单!

1.在zabbix客户端配置文件中加入: 首先要对mysql提供一个查询主从状态的账号!(当然用root也可以.) UserParameter=mysql.replicate_error,if test `mysql -uxxx -pxxx -h127.0.0.1 -e 'show slave status\G' | awk -F: '{if($1~/Slave_IO_Running/) print$2}' ` = "Yes" -a `mysql -uxxx -pxxx -h127.0

zabbix 自定义key监控redis

一.环境 ubuntu 14.04 LTS zabbix 2.4.5 redis-2.8.7 二.配置redis监控 1.在/etc/zabbix/zabbix_agentd.d/目录下新建userparameter_redis.conf文件,添加以下内容: UserParameter=redis.stat[*],cat /tmp/redisstat | grep "$1:" | cut -d":" -f2 2.在/etc/crontab文件下添加以下内容 sudo

Zabbix 自定义 key 监控 apache

一.环境 Ubuntu14.04 LTS  zabbix 2.4.5  Apache/2.4.7 二.配置apache监控 1. 开启apache的server-status 添加下面的内容到apache的配置文件中 sudo vim /etc/apache2/apache2.conf <Location /server-status> SetHandler server-status Allow from 127.0.0.1 Order deny,allow Deny from all &l

zabbix 自定义key 监控 网站关键字

http://www.tuicool.com/articles/3Q7R3y http://www.tuicool.com/articles/fYjQ7j 监控磁盘 配置客户端 vim /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf Include=/usr/local/etc/zabbix_agentd.conf.d/ #此行去掉注释 编写脚本 vim /usr/local/zabbix-2.2.2/scripts/jfedu.sh #!/bin/

zabbix开源监控系列三(自定义key监控nginx_status)

需求场景 lnmp环境 3台nginx 每台nginx服务上有几个虚拟主机,分别跑了不同的域名,准备对主站做nginx status 状态做监控,监控每一台nginx的活动链接数,和总的连接数. 解决方案1 每台nginx server的主配置文件 都配置status模块  代码端如下 location /ngst{   stub_status on;   access_log off;   allow 127.0.0.1;   allow xxx.xxx.xxx.xxx;   deny all

zabbix 自定义 key (转)

转自:http://www.cnblogs.com/miclesvic/p/6164303.html 1.在zabbix_agent端zabbix_agentd.conf配置文件中增加自定义Key(/usr/local/zabbix_agent/etc/zabbix_agentd.conf) ### Option: UserParameter # User-defined parameter to monitor. There can be several user-defined parame

zabbix通过JMX监控tomcat状态

因为公司大量使用tomcat作为应用服务,所以,这两天催生了一个想法,通过zabbix监控tomcat的运行状态,从而能够更快的发现tomcat服务出现的问题以及判断问题出现在哪块. 在网上找了一些资料来看,写的都不是很全面(PS:对于我这种菜鸟来说,还有很多东西不知道的,所以需要有解释的详细点的文档来帮助我更好理解原理,于是就有了本篇博文的诞生!) 首先,zabbix监控tomcat等这一类java平台的应用不是直接通过agentd来实现的,而是使用jmx来获取到tomcat这类应用的状态,然