zabbix详解(八)——zabbix监控项自定义

今天继续给大家介绍Linux运维相关知识,本文主要内容是zabbix远程执行命令。

一、实战介绍

在前文(zabbix详解(七)——zabbix邮件报警设置)中我们介绍了zabbix可以自动检测客户端的一些信息,并且在出现故障时,实现报警。
今天我们来进行一个实战,自定义zabbix的监控项内容。检测zabbix agent客户端上Apache服务和MySQL服务的运行情况。

二、脚本编写

根据实战需求,我们首先来在zabbix客户端上,写一个脚本来判断Apache和MySQL服务是否开启。首先创建一个脚本存放路径,执行命令:

mkdir -p /usr/local/zabbix/scripts/

cd进入到该目录下,我们写一个脚本来判断本地是否开启了MySQL和Apache服务。关于如何判断本地的服务是否开启,这里我们使用pidof命令,该命令会返回指定服务的PID号,我们可以通过统计该命令执行后的行数,来判定该服务是否开启。如果开启,那么结果肯定不为0,如果关闭,那么结果为0。因此,我们的脚本如下:

#!/bin/bash
# 2022年3月26日 17:10:42
# Authored by pzz
# Used to create the customised zabbix item and trigger
case $1 in
        httpd)
        result=`pidof httpd|wc -l`
        echo $result
        ;;
        mysql)
        result=`pidof mysqld|wc -l`
        echo $result
        ;;
        *)
        echo "Usage:$0(httpd|mysql)"
esac

完成配置后,我们来判断该脚本的运行情况,结果如下所示:
zabbix详解(八)——zabbix监控项自定义_第1张图片
可以看出,该脚本运行情况正常,可以判断客户端是否开启了MySQL或者是Apache服务。

三、zabbix配置

接下来,我们开始进行zabbix的配置。尽管我们已经写完了该脚本,但是我们还要使得zabbix能够使用该脚本对本地的服务进行判定。我们打开zabbix客户端的配置文件,配置将Include包含的本地目录打开,如下所示:
zabbix详解(八)——zabbix监控项自定义_第2张图片
这样,zabbix客户端在运行后,就会寻找该目录下的配置进行加载。我们进入到/usr/local/zabbix/etc/zabbix_agentd.conf.d/目录下,新创建配置zabbix_customised.conf,并在该文件中写入如下内容:

UserParameter=service.customized[*],/usr/local/zabbix/scripts/service_customize.sh $1

在该配置中,UserParameter是固定配置,后面的service.customized为自定义的监控项key值,后面的中括号表示参数。然后后面跟我们刚刚写的脚本的绝对路径,中间用逗号分割。
这样,我们的zabbix就可以使用该脚本了。并且,我们将该脚本定义了service.customized的key值监控项。
接下来,我们还需要配置允许zabbix服务端远程执行命令,打开zabbix客户端配置文件,找到EnableRemoteCommands参数,将其设置为1,如下所示:
zabbix详解(八)——zabbix监控项自定义_第3张图片
这样,我们的zabbix 客户端就配置完成了。

四、效果检验

最后,我们来检验一下刚才配置的效果,在zabbix服务端上,执行命令格式为:

zabbix_get -s 【zabbix客户端IP】 -k "【自定义监控项key值[参数]】"

例如:

zabbix_get -s 192.168.136.11 -k "service.customized[httpd]"

这样,我们就可以在zabbix服务端上远程执行我们在zabbix客户端的自定义脚本,并且把执行结果返回zabbix服务端了,执行结果如下所示:
zabbix详解(八)——zabbix监控项自定义_第4张图片
有上图可知,我们的zabbix监控项自定义配置完成!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(自动化运维,zabbix,Linux,运维,自动化,自定义监控项)