使用zabbix-agent2自定义插件获取https证书过期时间,2024年最新软件测试开发知识点
这里我调整了日志级别,方便前台调试 可选参数 Plugins.Https_expire.Timeout = 5。我是用的阿里云ssl证书,可以看到确实离过期时间还有四十天,今天是2021.3.7。(img-wh7K1F8l-1713013589428)]内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)**下载zabbix agent2源码并将自定义插件编译。查看最新数据,这个证书
return zbxerr.ErrorTooFewParameters.Wrap(err)
}
return nil
}
func checkParams(params []string) (string, error) {
if strings.HasPrefix(params[0], “http://”) {
errorsting:=fmt.Sprintf(“Target is using http scheme: %s”, params[0])
err:=errors.New(errorsting)
return “”,zbxerr.ErrorInvalidParams.Wrap(err)
}
if !strings.HasPrefix(params[0], “https://”) {
params[0] = “https://” + params[0]
}
return string(params[0]),nil
}
func (cli *client) Query(url string) (int64, error) {
resp, err := cli.client.Get(url)
if err != nil {
impl.Debugf(“cannot fetch data: %s”, err)
err:=errors.New(“cannot fetch data”)
return 0, zbxerr.ErrorCannotFetchData.Wrap(err)
}
defer resp.Body.Close()
certInfo:=resp.TLS.PeerCertificates[0]
expiredays:=(certInfo.NotAfter.Unix()-time.Now().Unix())/60/60/24
return expiredays,nil
}
// Export implements the Exporter interface.
func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (interface{}, error) {
if err = checkParamnums(params); err != nil {
return nil, err
}
urls,err:= checkParams(params)
if err!= nil {
return nil,err
}
body, err := p.client.Query(urls)
if err!=nil{
return nil, err
}
return body,nil
}
func init() {
plugin.RegisterMetrics(&impl, pluginName,
“https_expire”, “Returns the number of days between the HTTPS certificate expiration time and the current date.”)
}
下载zabbix agent2源码并将自定义插件编译
yum install golang
git clone https://git.zabbix.com/scm/zbx/zabbix.git --depth 1 zabbix-agent2
cd zabbix-agent2
git submodule add https://github.com/cxf210/ssl_expire.git src/go/plugins/https_expire
导入https_expire插件
vi src/go/plugins/plugins_linux.go
添加最后一行
_ “zabbix.com/plugins/ceph”
_ “zabbix.com/plugins/docker”
_ “zabbix.com/plugins/kernel”
_ “zabbix.com/plugins/log”
_ “zabbix.com/plugins/memcached”
_ “zabbix.com/plugins/modbus”
_ “zabbix.com/plugins/mqtt”
_ “zabbix.com/plugins/mysql”
_ “zabbix.com/plugins/net/netif”
_ “zabbix.com/plugins/net/tcp”
…
_ “zabbix.com/plugins/https_expire”
编译安装zabbix agent2
yum install automake autoconf pcre* -y
./bootstrap.sh
pushd .
cd src/go/
go mod vendor
popd
./configure --enable-agent2 --enable-static
make install
编辑配置文件
这里我调整了日志级别,方便前台调试 可选参数 Plugins.Https_expire.Timeout = 5
egrep -v “$|#” conf/zabbix_agent2.conf
LogType=console
LogFile=/tmp/zabbix_agent2.log
DebugLevel=4
Server=172.17.0.5
Plugins.Https_expire.Timeout=5
Hostname=node2
ControlSocket=/tmp/agent.sock
启动Zabbix_agent2
cd /root/zabbix_agent/src/go/bin
zabbix_agent2 -c conf/zabbix_agent2.conf

Zabbix创建监控项
键值示例如下
https_expire[“www.xyzabbix.cn”]
或
https_expire[“https://www.xyzabbix.cn”]

查看最新数据,这个证书还有四十天过期
我是用的阿里云ssl证书,可以看到确实离过期时间还有四十天,今天是2021.3.7
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。




既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)**
[外链图片转存中…(img-wh7K1F8l-1713013589428)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐

所有评论(0)