抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

记录 Zabbix 添加企业微信机器人所使用的脚本(不包含在 Zabbix 界面上进行的配置)。

实验环境

实验环境为 docker 安装的 zabbix,镜像:zabbix/zabbix-server-mysql:alpine-7.0-latest

告警脚本

报错

在 Zabbix 界面上做好各种设置(可参考此文章),测试python脚本可用性的时候,会发现有报错。原因是此镜像基于 alpine linux 构建,不包含 pythoncurl 之类的基础软件包。

官方在issue回复中指出:

That is the main goal for images. If you need something additional for your infrastructure, customized things - you build your own image using official one images using some CI / automation. For example you can use hub.docker.com 和 automate such process.

这是图像的主要目标。如果您的基础设施需要一些额外的东西,定制的东西 - 您可以使用官方的镜像并使用一些 CI / 自动化来构建您自己的镜像。例如,您可以使用 hub.docker.com 并自动化此过程。

Regarding packages installation, usually container is running under non-root user, so you can not install anything into container.

关于软件包安装,通常容器在非 root 用户下运行,因此您无法将任何东西安装到容器中。

所以只能使用基础的 shell 脚本,好在 alpine 里集成了 busybox,我们可以使用 wget

wget 救急

zabbix-server 容器中的 wget 输出信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
500a7c147742:/var/lib/zabbix$ wget
BusyBox v1.36.1 (2024-06-10 07:11:47 UTC) multi-call binary.

Usage: wget [-cqS] [--spider] [-O FILE] [-o LOGFILE] [--header STR]
[--post-data STR | --post-file FILE] [-Y on/off]
[-P DIR] [-U AGENT] [-T SEC] URL...

Retrieve files via HTTP or FTP

--spider Only check URL existence: $? is 0 if exists
--header STR Add STR (of form 'header: value') to headers
--post-data STR Send STR using POST method
--post-file FILE Send FILE using POST method
-c Continue retrieval of aborted transfer
-q Quiet
-P DIR Save to DIR (default .)
-S Show server response
-T SEC Network read timeout is SEC seconds
-O FILE Save to FILE ('-' for stdout)
-o LOGFILE Log messages to FILE
-U STR Use STR for User-Agent header
-Y on/off Use proxy

调整后的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

WEBHOOK_URL="机器人webhook地址"


if [ $# -eq 0 ]; then
echo "Please provide a message as an argument."
exit 1
fi

MESSAGE="$1"
echo $1
wget --post-data="{\"msgtype\":\"text\",\"text\":{\"content\":\"$MESSAGE\"}}" -O /dev/null $WEBHOOK_URL

测试调整后的脚本后,就成功推送信息了。

参考

-EOF

查看最新版,请访问本文链接:https://blog.onehat.cn/p/66a8.html

原创作品,转载请保留出处。

评论