[zabbix]-zabbix使用discovery功能监控url

zabbix使用discovery功能监控url

zabbix版本4.0

需求:

    现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警。

需求详细分析:

    大量的url,且url经常变化,现在监控用的是zabbix,如果手动添加模板,会造成大量重复工作,造成人力财力的浪费,造成休息时间的浪费,得不尝失,如果利用脚本+mail,无法图形呈现

解决方案:

zabbix有discovery功能,利用此功能,即可轻松解决此问题

zabbix客户端配置

[zabbix]-zabbix使用discovery功能监控url

创建脚本的文件夹

mkdir –p /etc/zabbix/scripts

创建监控脚本如下

#!/bin/bash

# function: Monitoring website domain name URL change script

# version:1.0 date:2019-02-12

source /etc/bashrc >/dev/null 2>&1

source /etc/profile  >/dev/null 2>&1

#/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/

WEB_SITE_discovery () {

WEB_SITE=($(cat  /etc/zabbix/scripts/WEB.txt|grep -v "^#"))

       printf '{\n'

       printf '\t"data":[\n'

for((i=0;i<${#WEB_SITE[@]};++i))

{

num=$(echo $((${#WEB_SITE[@]}-1)))

       if [ "$i" != ${num} ];

               then

       printf "\t\t{ \n"

       printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n"

               else

                       printf  "\t\t{ \n"

                       printf  "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n"

       fi

}

}

web_site_code () {

/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1

}

case "$1" in

web_site_discovery)

WEB_SITE_discovery

;;

web_site_code)

web_site_code $2

;;

*)

echo "Usage:$0 {web_site_discovery|web_site_code [URL]}"

;;

esac

 

 

添加配置文件web_site_discovery.conf  

内容如下

[zabbix]-zabbix使用discovery功能监控url

添加 /etc/zabbix/scripts/WEB.txt

[zabbix]-zabbix使用discovery功能监控url

 

执行zabbix_get -s 127.0.0.1 -k web.site.discovery 遇到报错

sh: /etc/zabbix/scripts/web_site_code_status: Permission denied

[zabbix]-zabbix使用discovery功能监控url

chmod +x web_site_code_status

[zabbix]-zabbix使用discovery功能监控url

 

 

[zabbix]-zabbix使用discovery功能监控url

 

创建一个自动发现规则

[zabbix]-zabbix使用discovery功能监控url

 

[zabbix]-zabbix使用discovery功能监控url

 

[zabbix]-zabbix使用discovery功能监控url

 

创建完discovery后创建监控项原型

[zabbix]-zabbix使用discovery功能监控url

 

创建图像原型

需要在监控项添加原型 否则会报错  然后添加监控项如下

 

[zabbix]-zabbix使用discovery功能监控url

 

预览图形 并添加

[zabbix]-zabbix使用discovery功能监控url

 

 

也可以在首页中添加构件>图形

[zabbix]-zabbix使用discovery功能监控url

 

创建触发器类型

 

[zabbix]-zabbix使用discovery功能监控url

 

[zabbix]-zabbix使用discovery功能监控url

 

[zabbix]-zabbix使用discovery功能监控url

 

设置脚本邮件报警

 

首先安装sendmail 和mailx

yum –y install sendmail mailx

启动sendmail 并设置开机启动

 

systemctl start sendmail

systemctl enable sendmail

 

设置hostname

hostnamectl set-hostname zabbix.com

 

有需要的话可以修改mail信息  我这边没有配置

修改/etc/mail.rc

set  [email protected]        #新浪注册的个人邮箱,用于zabbi服务端转发邮件到指定邮箱

set  smtp=smtp.sina.com                       #填写新浪发送邮箱服务器地址smtp

set  smtp-auth-user= username      #新浪个人邮箱用户

set  smtp-auth-password=passwd      #新浪个人邮箱密码

set  smtp-auth=login                           #登录

 

 

测试邮件发送

echo 'This is a test mail!' | mail -s text [email protected]

[zabbix]-zabbix使用discovery功能监控url

编写邮件发送脚本sendmail.sh

默认文件夹是/usr/lib/zabbix/alertscripts  不确认的话可以在zabbix_server.conf里查看

 

[zabbix]-zabbix使用discovery功能监控url

 

 

cat /usr/lib/zabbix/alertscripts/sendmail.sh

#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1 >>/usr/lib/zabbix/alertscripts/sendmail.log 2>&1

 

 

 

touch /usr/lib/zabbix/alertscripts/sendmail.log

chown –R zabbix.zabbix /usr/lib/zabbix/alertscripts/  #sendmail.sh脚本修改所属用户和用户组    

chmod -R 755 /usr/lib/zabbix/alertscripts/  #赋予执行权限   不能只给脚本权限 文件也要 否则会出现类似下面报错

 

[zabbix]-zabbix使用discovery功能监控url

 

 

web端配置

 

1管理 ----  报警媒介类型 -----  创建媒介类型。

[zabbix]-zabbix使用discovery功能监控url

 

 

 

2名称可以随便自己定义 ----- 类型选择脚本 ----- 脚本名称输入上一步编写的发送邮件的脚本名称 ----

再添加以下3个参数,分别对应脚本需要的3个参数:

收件人地址、主题、详细内容:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

[zabbix]-zabbix使用discovery功能监控url

 

 

 

3管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以)

[zabbix]-zabbix使用discovery功能监控url

 

4报警媒介 ---- 添加

[zabbix]-zabbix使用discovery功能监控url

 

5类型输入刚刚创建的报警媒介类型sendmail脚本 --- 输入个人邮箱用于接收报警邮件 --- 启动打勾 ---- 添加。

[zabbix]-zabbix使用discovery功能监控url

 

6选择更新

[zabbix]-zabbix使用discovery功能监控url

 

7权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)

 

[zabbix]-zabbix使用discovery功能监控url

 

8配置 ---- 动作 ---- 创建动作。

[zabbix]-zabbix使用discovery功能监控url

 

9动作 ---- 名称自定义 --- 设置一条新的触发条件 ---- 启用 ---- 添加。(触发条件需要根据实际情况设置)

[zabbix]-zabbix使用discovery功能监控url

 

10 定义操作。记得更新和添加否则不保存的

[zabbix]-zabbix使用discovery功能监控url

默认标题

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

消息内容

告警主机IP地址:{HOST.CONN}

 

告警主机:{HOSTNAME1}

 

告警时间:{EVENT.DATE} {EVENT.TIME}

 

告警等级:{TRIGGER.SEVERITY}

 

告警信息: {TRIGGER.NAME}

 

告警项目:{TRIGGER.KEY1}

 

问题详情:{ITEM.NAME}:{ITEM.VALUE}

 

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

 

 

 

11 定义恢复操作。

[zabbix]-zabbix使用discovery功能监控url

 

默认标题

恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}已恢复!

 

消息内容

告警主机IP地址:{HOST.CONN}

 

告警主机:{HOSTNAME1}

 

告警时间:{EVENT.DATE} {EVENT.TIME}

 

告警等级:{TRIGGER.SEVERITY}

 

告警信息: {TRIGGER.NAME}

 

告警项目:{TRIGGER.KEY1}

 

问题详情:{ITEM.NAME}:{ITEM.VALUE}

 

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

 

12 测试

[zabbix]-zabbix使用discovery功能监控url

 

 

 

 

 

 

 

 

 

参考

https://www.cnblogs.com/mikeluwen/p/6149654.html

https://www.cnblogs.com/bixiaoyu/p/9375270.html

https://www.cnblogs.com/zoulongbin/p/6420239.html