利用 zabbix 监控全国天气状况

利用 zabbix 监控全国天气状况

        本次主要是采用zabbix 的 http 代理方式进行数据的采集。可以通过网站的api接口来测试获取天气的状况。这里使用的是高德地图的天气。zabbix版本使用4.0 以上支持http 代理。3.0 版本不支持。

利用zabbix创建测试

        打开zabbix的配置——>主机,点击任意一台主机进行item的配置。
img
img

获取数据如下

        根据上述创建的监控项,然后我们在Latest data里面看到获取的数据如下所示:
img

1
{"status":"1","count":"1","info":"OK","infocode":"10000","lives":[{"province":"重庆","city":"重庆市","adcode":"500000","weather":"多云","temperature":"21","winddirection":"南","windpower":"≤3","humidity":"45","reporttime":"2020-04-07 17:54:43"}]}

监控天气信息为例

        键值定义尽量和上述的一致,依赖项选择刚刚新建的http agent监控项
img

添加预处理步骤

        根据刚才获取到的数据来获取weather的值,不通平台的获取的数据类型不一样。这里的weather要根据不通平台的信息进行修改。否则无法获取数据,在该 item 点击Preprocessing
img
定义气温、风力、风向、相对湿度,添加方法与上面相同

建立触发器

这里建立一个温度超过30度显示温度过高,温度低于13度就显示温度低的两个触发器
img
img

        这里我们需要添加全国34个省市,每一个省市都是手动建立,去查找每一个省市的代码需要多少时间,这里使用python的一个小程序来实现获取全国的城市,然后创建对应itemTrigger。添加完成以后的最后结果为:
img
img
img

创建网络拓扑

创建背景图片

        可以自行去网上照一张中国地图的图片。
img

创建map图

Monitoring——>Maps——>Create map
img
img

编辑map

标签用于显示监控的数据,添加高温的触发器,当触发高温报警后,图标由绿点会变成红绿 交替闪动,这里以西藏气温为例

1
2
3
{Zabbix server:xizangzizhiqu-weather.last()}
{Zabbix server:xizangzizhiqu-temperature.last()}°C
{Zabbix server:xizangzizhiqu-winddirection.last()}风{Zabbix server:xizangzizhiqu-windpower.last()}级

img

实现效果

img
img

zabbix 图标乱码

在打开天气温度和湿度的图表时,显示乱码。在windows电脑上选择一个字体,比如简体中文,我这里使用的是中文楷体simkai.ttf字体。上传到zabbix server的服务器

zabbix的安装目录

1
2
whereis  zabbix
zabbix: /usr/lib/zabbix /etc/zabbix /usr/share/zabbix

切换到/usr/share/zabbix目录

切换到该目录可以使用ls命令,该目录下面已经没有fonts字体目录了。可以创建目录

1
2
3
4
5
6
7
8
9
mkdir /usr/share/zabbix/fonts

mv simkai.ttf /usr/share/zabbix/fonts

# 修改 /etc/alternatives/zabbix-web-font 软连接
rm -f /etc/alternatives/zabbix-web-font
ln -s /usr/share/zabbix/fonts/simkai.ttf /etc/alternatives/zabbix-web-font

systemctl restart zabbix-server

zabbix api
高德天气
高德城市

坚持原创技术分享,您的支持将鼓励我继续创作!
0%