cat userparameter_http.conf

UserParameter=http_discovery,/usr/bin/python  /etc/zabbix/scripts/base/http_discovery.py
UserParameter=http.info[*],/bin/bash /etc/zabbix/scripts/base/check-http-expire.sh $1 

cat /etc/zabbix/scripts/base/http_list

baidu.com 443 

cat  /etc/zabbix/scripts/base/http_discovery.py

#!/usr/bin/env python
#coding:utf-8 import os
import sys
import json #这个函数主要是构造出一个特定格式的字典,用于zabbix
def ssl_cert_discovery():
web_list=[]
web_dict={"data":None}
with open("/etc/zabbix/scripts/base/http_list","r") as f:
for sslcert in f:
dict={}
dict["{#DOMAINNAME}"]=sslcert.strip().split()[0]
dict["{#PORT}"]=sslcert.strip().split()[1]
dict["{#OLDNS}"]=sslcert.strip().split()[2]
web_list.append(dict)
web_dict["data"]=web_list
jsonStr = json.dumps(web_dict,indent=4)
return jsonStr
if __name__ == "__main__":
print ssl_cert_discovery()

cat /etc/zabbix/scripts/base/check-http-expire.sh

#!/bin/bash
host=$1
#end_date=`whois -H $host|grep "Registry Expiry Date"|awk '{print $NF}'`
end_date=`whois -H $host|egrep "Registry Expiry Date|Expiration Time"|awk '{print $3,$4}'|sed 's#Date: ##g'` #echo "$end_date"
if [ -n "$end_date" ]
then
end_date_seconds=`date '+%s' --date "$end_date"`
now_seconds=`date '+%s'`
echo "($end_date_seconds-$now_seconds)/24/3600" | bc
fi

模板

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>5.2</version>
<date>2022-08-12T04:53:53Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template http expire date</template>
<name>Template http expire date</name>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>域名过期剩余时间</name>
</application>
</applications>
<discovery_rules>
<discovery_rule>
<name>域名到期_Discovery</name>
<type>ZABBIX_ACTIVE</type>
<key>http_discovery</key>
<delay>24h</delay>
<lifetime>8h</lifetime>
<item_prototypes>
<item_prototype>
<name>[{#DOMAINNAME}]域名过期剩余时间:</name>
<type>ZABBIX_ACTIVE</type>
<key>http.info[{#DOMAINNAME},{#PORT}]</key>
<delay>24h</delay>
<history>0</history>
<trends>7d</trends>
<units>天</units>
<applications>
<application>
<name>域名过期剩余时间</name>
</application>
</applications>
<preprocessing>
<step>
<type>MULTIPLIER</type>
<parameters>
<parameter>1</parameter>
</parameters>
</step>
</preprocessing>
<trigger_prototypes>
<trigger_prototype>
<expression>{last()}&lt;33</expression>
<name>[{#DOMAINNAME}] 域名过期剩余时间小于33天</name>
<priority>HIGH</priority>
<manual_close>YES</manual_close>
</trigger_prototype>
</trigger_prototypes>
</item_prototype>
</item_prototypes>
</discovery_rule>
</discovery_rules>
</template>
</templates>
</zabbix_export>

最新文章

  1. fir.im Weekly - 可能是 iOS 审核最全面的解决方案
  2. nodejs初学————安装篇(iis8.5+windows8.1)
  3. MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
  4. C# 枚举绑定到ComboBox
  5. Linux 字符集
  6. performance_schema 变量
  7. Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008
  8. PHP利用递归法获取多级类别的树状数组
  9. JavaScript版—贪吃蛇小组件
  10. C# 中的关键字整理
  11. C语言作业04-数组
  12. 京东618:Docker扛大旗,弹性伸缩成重点 (2015-06-23)
  13. iOS知识点持续更新。。。
  14. maven 打包前 Junit 测试
  15. python------软件目录结构规范
  16. 利用STM32CubeMX来生成USB_HID_Mouse工程
  17. My Sql 高效分页
  18. 【性能测试】:关于Sockets协议的脚本的开发
  19. go语言基础之递归函数的调用流程
  20. LINUX oracle dbca无法启动

热门文章

  1. mapreduce和yarn集群
  2. R.swift 使用详解
  3. lombok.config
  4. 面试题 --MySQL索引
  5. python下载站长素材免费简历模板(xpath)
  6. 至少有K个重复字符的最长子串
  7. 5. nginx跨域配置
  8. android defaluthttpclient timeout 整理
  9. 使用docker 创建6节点redis 集群 RedisCluster redis集群
  10. nginx从仅支持80到支持80和443