low level discovery功能

在配置Items时,有时需要对类似的Items进行添加,这些Items具有一些共同的特性,表现为某些特定的参数是变量,而其他设置都是一样的。
low level discovery 的key可以对网卡、文件系统、SNMP OIDS进行自动发现,除此之外,还支持自定义功能。

low level discovery 的使用过程分为下面两步:

  • 自动发现特定变量的名称
  • 添加对变量的Items.

zabbix中low level discovery 的 key返回值是一个JSON格式。可以打开一个模板的自动发现来观察。

用zabbix-get不能获取到snmp的值,只能在web页面进行配置使用。
**举个例子:
当有大量URL需要监控时,形如http://www.baidu.com,要求URL状态不为200时发出告警。因为URL经常变化,但其他状态不发生变化,那么它刚好可以用zabbix的low level discovery 功能轻松解决此问题。**
  1、编写low level discovery 自动发现脚本,low level discovery 的脚本是一个JSON格式。
[root@minion-122 scripts]# cat web_site_code_status
#!/bin/bash
source /etc/bashrc > /dev/null 2>&1
source /etc/profile > /dev/null 2>&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.txt

[root@minion-122 scripts]# cat Web.txt
www.taobao.com
www.baidu.com
www.weibo.com

测试脚本输出:


自定义key配置文件

[root@minion-122 zabbix_agentd.conf.d]# cat web_site_discovery.conf
UserParameter=web.site.discovery,/etc/zabbix/scripts/web_site_code_status web_site_discovery
UserParameter=web.site.code[*],/etc/zabbix/scripts/web_site_code_status web_site_code $1

重启zabbix-agent。服务端测试:

[root@localhost ~]# zabbix_get -s web1 -k web.site.discovery
{
    "data":[
        {
            "{#SITENAME}":"www.taobao.com"},
        {
            "{#SITENAME}":"www.baidu.com"},
        {
            "{#SITENAME}":"www.weibo.com"}]}

Web下创建模板。
“配置”->“模板”->“创建模板”


点击“添加”便会出现下图。

点击“应用集”->“创建新应用集”


点击“添加”。点击“自动发现”

单击“创建发现规则”



该宏{#SITENAME}来自自动发现脚本中的变量{#SITENAME}。
添加完成后:
在这里插入图片描述
进一步添加Items等项。
创建原型Item,单击“监控项原型”


$1代表我们检测出来的URL,web.site.code[{#SITENAME}]中的变量会一次检测这几个URL。
单击“添加”,创建触发器原型,单击“ 创建触发器原型”




可以设置不同梯度的告警。
添加图形。单击“创建图形原型 ”。



单击“添加”,模板创建成功。

添加模板到主机,选择web1主机。数据如下。

发布了36 篇原创文章 · 获赞 3 · 访问量 8023

猜你喜欢

转载自blog.csdn.net/qq_41547105/article/details/104223938