docker安装配置zabbix教程

缘起

在大约2年前,在树莓派上配置过zabbix用来监控服务端的各种系统情况,而现在树莓派已经从nas的位置退役下来了,需要在新的j3455服务器上配置下。

另外呢,上次配置zabbix真的是异常的折腾,感觉裸配置真的非常的麻烦,设置要自己去创建数据库表,导入zabbix的数据结构,这一次就想着直接从虚拟机或者docker上来搞,这样肯定方便很多,未来迁移也方便。

折腾过程

查找现有资料

网上找了不少的资料,有安装docker的zabbix-nginx前端和zabbix-mysql后端的,直接docker一把就好了,但是我试了很多次都是不行。

遇到的问题包括:
1、端口连不上的,猜测可能是ipv6或者docker的网络机制导致的

2、数据库异常的,猜测单独安装的mysql和前端的通信有啥问题

安装统一的docker镜像

查了好久,发现其实zabbix官方已经提供了统一的docker镜像,包含mysql数据库,zabbix server,nginx前端这些所有的东西,而且基本是免配置的,包含数据库的创建等。

创建过程如下:

1、docker安装zabbix-appliance

使用下面的命令安装即可

sudo docker run --name zabbix-appliance -e PHP_TZ=Asia/Shanghai  -t       -p 10051:10051       -p 8080:80       -d zabbix/zabbix-appliance:latest

**注意:**这里的PHP_TZ必须设置,否则zabbix安装后的时间就不是中国时区,时间总是不对的

其中这里的8080:80意思是在物理机的8080端口开了zabbix的网页服务

其他很多更详细的参数,可以从dockerhub网页上查看 https://hub.docker.com/r/zabbix/zabbix-appliance

经过上面的一步操作,zabbix已经跑起来了,如果没有正确运行,可以在宿主机上查看网络是否有问题,通过下面的命令可以产看错误日志。

sudo docker logs -t 75bf18710468

其中75bf18710468是docker实例的id

通过下面的命令在docker内运行命令

sudo docker exec -it fd99cfc04966 /bin/bash

通过下面的命令查看实例,其中包含了实例的id

sudo docker ps -a

解决图形乱码问题

经过上面的步骤,zabbix已经运行了,接下来我们解决下图形中文乱码问题。

这个问题的原因,是zabbix在绘制图表时,使用了内置的一个字体,这个字体是没有中文的,因此在我们设置了中文的图表图例时,就会出现乱码。

解决方法也很简单,从网络上下载一个simhei即简黑的字体,通过如下命令替换即可

sudo docker cp /usr/share/fonts/truetype/dejavu/simhei.ttf fd99cfc04966:/usr/share/zabbix/assets/fonts/DejaVuSansMono.ttf

其中/usr/share/zabbix/assets/fonts/DejaVuSansMono.ttf是docker实例中,字体的位置,可以通过exec命令进去看下,确认下名称即可。

设置agent

由于我们是docker安装的,docker本身的agent是没有必要安装或启用的。

因此我们在需要监控的主机上,安装zabbix-agent即可,在ubuntu上如下命令安装。

sudo apt install zabbix-agent

通过/etc/zabbix/zabbix_agentd.conf文件配置agent,其中,需要设置的就几个:

1、zabbix的ip地址,使用安装docker zabbix的服务器的ip即可,端口我们没设置就是默认的

2、通过如下命令增加自定义的参数

UserParameter=get_temp_cpu[*],sensors|grep "Physical id $1"|cut -c 35-39

这里的sensors|grep "Physical id $1"|cut -c 35-39 是一条获取cpu温度的命令,可以换成其他的任意命令。

设置zabbix的监控项

通过上面设置后,我们可以使用zabbix的默认模板(很多),可以选择genial linux即可,里边能监控系统的负载、cpu、内存使用等。

自定义的监控,可以通过自定义监控项来实现,参数名称可以填上一步我们写的,比如get_temp_cpu[0]

设置zabbix的图表

和上一步类似,zabbix默认的linux模板已经足够监控基础系统情况了,自定义的在添加完监控项后,也可以增加图表,关联刚才的监控项即可。

注意:这里需要注意下,图表只能使用数值类型的监控项,字符的可以通过映射的方式实现,但是图例不是很好看。


设置图表数据保存时间

更新于230702,最近想看下历史的数据情况,发现历史图表里的趋势图只有最近一年的了,搜索后发现是默认的一年设置,因此需要修改下,可以如下操作:

配置->主机->点击下面主机的监控项链接->全选监控项->点击底部批量更新->趋势存储时间-->修改为需要的天数->点击底部更新;如果监控项有好几页,每一页都操作,按下面步骤操作

在监控项列表,标记想要更新的监控项的复选框
点击列表下方的 批量更新按钮
标记想要更新的属性的复选框
键入新的值,然后单击更新按钮

总结

通过上面的步骤,我们就可以很方便的安装zabbix了,相比于上一次在树莓派上配置来说,简单了很多,以后这些服务我会更加考虑使用docker实现,更加方便且未来迁移很方便。

参考资料

https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers

http://www.rfyy.net/archives/1881.html

https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf

https://www.cnblogs.com/operationhome/p/11016809.html#zabbix-40--docker-版本-图表乱码问题解决

https://hub.docker.com/r/zabbix/zabbix-appliance

https://blog.csdn.net/tladagio/article/details/80714527

https://aijishu.com/a/1060000000014166

https://jaminzhang.github.io/monitoring/zabbix-agentd-config/

https://ngx.hk/2016/10/18/安装配置zabbix-agent-添加监控点.html

https://www.jianshu.com/p/ac2a145d2235

https://www.jianshu.com/p/1eb1d1d3f25e

https://www.zabbix.com/documentation/5.2/zh/manual/config/items/itemupdate

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。