在操作系统上直接部署安装zabbix太麻烦了,最近在搞k8s,正好研究下用docker容器来安装zabbix5.0LTS长期支持版。
环境
操作系统:centos7
前期准备
配置阿里源
1 | mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup |
安装阿里的docker源
1 | sudo yum-config-manager --add-repo \ |
安装系统需要的工具
1 | yum install -y bind-utils net-tools wget unzip |
安装Docker
1 | sudo yum -y install docker-ce |
Docker使用国内的仓库
1 | #编辑docker配置文件,使用国内仓库进行镜像下载 |
安装教程
创建MySQL容器
注意!指定UTF8字符集为重要参数,否则安装后在配置过程中,不能使用中文字符。
1 | docker run --name sunmysql -t \ |
创建java-gateway容器
默认zabbix不支持对java的监控,需要安装java-gateway来支持。
1 | docker run --name zabbix-java-gateway -t \ |
创建Zabbix服务端容器
1 | docker run --name zabbix-server -t \ |
创建Zabbix前端页面容器
1 | docker run --name zabbix-web -t \ |
验证
直接浏览器访问http://ip/即可。默认用户名和密码是:Admin/zabbix
优化教程
安装python环境
很多报警媒介原来都是用python写的,但是用docker安装zabbix默认没有python环境。
1 | # 用root用户权限进入zabbix server容器中 |
时间设置
默认docker启动的zabbix-server用的是utc时间,那么在报警时的时间点就不准了。所以需要对时间进行设置。
方法一
把本机时区复制到宿主机即可:
1 | docker cp /etc/localtime a9c27487faf4:/etc/localtime |
然后重启容器。
方法二
容器内修改时区
1 | docker exec -it <容器名> /bin/bash |
当然,你也可以在docker run创建容器时对localtime做映射,保证容器中和宿主机时间一致。
绘制图形中文字符乱码
需要安装中文字体来解决
1 | #找字体文件,这里以下载文泉驿中文字体为例 |
到这来zabbix服务教程已完成。
agent批量安装和自动注册
每台服务器上安装运行zabbix-agent,改好配置启动,然后要在服务端web页面逐个添加太麻烦。这里就用shell脚本批量安装zabbix-agent,然后自动去注册添加。
编写脚本
这里以4.0 lst agent为例。离线包官方下载地址
1 |
|
页面操作
添加自动注册规则
注意:zabbix_server页面配置agent代理程序的接口地址为“172.17.0.1”。而zabbix_agentd.conf中server的地址也为server容器的内网地址,例如172.17.0.3。
多机房zabbix proxy创建
容器创建
1 | # 按照上面步骤按照docker。 |
页面操作
钉钉告警
脚本一:关键字
1 | #!/usr/bin/env python |
脚本二:加签
1 |
|