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>

zabbix 监控域名到期时间的更多相关文章

  1. zabbix 监控域名证书到期时间!!!!

    在客户端机器上创建脚本 vim /etc/zabbix/zabbix_agentd.d/check-cert-expire.sh #!/bin/sh host=$1port=$2end_date=`o ...

  2. zabbix监控域名带宽

    代码地址:https://github.com/Ma-Jing/python/blob/master/ngxv2_traffic_daemon.py READ.md里有使用说明! #!/usr/bin ...

  3. zabbix监控系统时间的问题

    分类: 监控 2013-03-19 21:40:11   发现zabbix监控系统时间的一个问题!zabbix监控系统时间用的key是system.localtime,返回当前的系统时间,而配置tig ...

  4. Zabbix监控Low level discovery实时监控网站URL状态

    今天我们来聊一聊Low level discovery这个功能,我们为什么要用到loe level discovery这个功能呢? 很多时候,在使用zabbix监控一些东西,需要对类似于Itens进行 ...

  5. Zabbix监控web,MySQL,TCP状态,Nginx

    接上篇Zabbix使用SMTP发送邮件报警并且制定报警内容 Zabbix怎么设置声音告警 web监控 在zabbix server选择web 创建一个监控web的场景 添加后这里有数字1 查看 假如在 ...

  6. 【zabbix告警监控】配置zabbix监控nginx服务

    zabbix监控nginx,nginx需要添加--with-http_stub_status模块 使用zabbix监控nginx,首先nginx需要配置开启ngx_status.但是我这边nginx安 ...

  7. zabbix监控服务部署

    目录 zabbix监控服务部署 1. zabbix介绍 1.1 zabbix的组件 1.2 zabbix的进程 1.3 zabbix常用术语 2. zabbix工作原理 3. zabbix监控架构 4 ...

  8. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  9. zabbix 监控web网站性能

    一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...

  10. Zabbix监控disk performance

    概述 zabbix获取/sys里面的磁盘信息并分析来监控disk performance sysfs是Linux内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似(默认挂载在 ...

随机推荐

  1. redis底层数据结构之压缩列表(ziplist)

    压缩列表(ziplist) 压缩列表(ziplist)是redis 为了节约内存而开发的,由连续内存块组成的顺序型数据结构,适用于长度较小的值 存取的效率高,内存占用小,但由于内存是连续的,在修改的时 ...

  2. 在TMOS系统中添加按键检测功能

    目录 TMOS系统中自带有按键检测轮询功能,默认100ms检测一次,在debug时很有帮助.不过在需要低功耗休眠的前提下,检测按键需要频繁唤醒,影响功耗,故多数BLE的工程都没有用到这个功能.代码贴在 ...

  3. Vue2.0 双向绑定的原理与缺陷?

    原理 Object.defineProperty.getter.setter 标准回答 Vue响应式指的是:组件的data发生变化,立刻触发试图的更新 原理:Vue采用数据劫持结合发布者-订阅者模式的 ...

  4. uni小程序保存base64图片

    使用uni.getFileSystemManager().writeFile去下载base64图片<view class="share-btn" @click="s ...

  5. 接入GoogelAdmob C#服务器端验证 (SSV) 回调

    记一次接入谷歌广告验证 官方文档:https://developers.google.cn/admob/android/rewarded-video-ssv 需要httpserver进行验证,项目里有 ...

  6. SQL正则查询--查询有效邮箱

    用户表: Users +---------------+---------+| Column Name | Type |+---------------+---------+| user_id | i ...

  7. 注释:MARK与TODO、FIXME

    MARK: 在OC中的用法: #pragma mark -说明文字(可以不加-) 在swift中的用法:// MARK: - 说明文字(可以不加-) TODO.FIXME(不区分OC.swift) / ...

  8. matlab算符合集

    1.逻辑算符 1)且 : A & B -- 两个逻辑数组之间 逐个元素 进行逻辑"与"操作 AB可为矩阵. 首先判断表达式A的逻辑值,然后判断B,继而进行逻辑"与 ...

  9. cgroup和Linux Namespace基础操作

    一.开头 接触过docker的同学多多少少听过这样一句话"docker容器通过linux namespace.cgroup特性实现资源的隔离与限制".今天我们来尝试学习一下这两个东 ...

  10. 在idea中查看jar包源码

    文章目录 准备jar包 idea打开文件夹 最后一步 准备jar包 例如,我准备看resin的jar,在桌面准备了一份 idea打开文件夹 在idea中file====>open=====> ...