zabbix是企业级分布式监控平台,具有很多优点,支持node 和 proxy 分布式模式;自动化注册,根据规则,自动注册主机到监控平台,自动添加监控模板;支持 agentd、snmp、ipmi 和 jmx 等很多通信方式。
部署一套zabbix,需要安装数据库、web服务器、zabbix-server和zabbix-agent
本人将zabbix的服务端安装在自己家openwrt的docker 上。(软路由作为上网拨号不会断电,将服务端安装在这里是最好的。宿主机也就是软路由上已经使用的端口不要和创建人的容器的端口发生冲突)
客户端有一台云服务器,群辉,群辉上虚拟机,笔记本电脑,(当然还可以添加其他的客户端)
下载mysql 镜像5.7,在docker hub上都有,
#docker pull mysql:5.7
#docker images 查看
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 42f82e150ec2 6 hours ago 448MB
下载zabbix-server镜像
zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。
打开zabbix-server-mysql的docker hub,大家会发现,zabbix-server-mysql有下面这些版本
--------------------------------------------------------------------------
Zabbix server 3.0 (tags: alpine-3.0-latest, ubuntu-3.0-latest, centos-3.0-latest) 2 Zabbix server 3.0.* (tags: alpine-3.0.*, ubuntu-3.0.*, centos-3.0.*) 3 Zabbix server 3.2 (tags: alpine-3.2-latest, ubuntu-3.2-latest, centos-3.2-latest) 4 Zabbix server 3.2.* (tags: alpine-3.2.*, ubuntu-3.2.*, centos-3.2.*) 5 Zabbix server 3.4 (tags: alpine-3.4-latest, ubuntu-3.4-latest, centos-3.4-latest, alpine-latest, ubuntu-latest, centos-latest, latest) 6 Zabbix server 3.4.* (tags: alpine-3.4.*, ubuntu-3.4.*, centos-3.4.*) 7 Zabbix server 4.0 (tags: alpine-trunk, ubuntu-trunk)
我是下载的docker pull zabbix/zabbix-server-mysql:centos-latest
#docker pull zabbix/zabbix-server-mysql:centos-latest
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 42f82e150ec2 6 hours ago 448MB
zabbix/zabbix-server-mysql centos-latest acb4bba0d029 3 weeks ago 351MB
下载zabbix-java-gateway镜像,
#docker pull zabbix/zabbix-java-gateway:latest
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 42f82e150ec2 6 hours ago 448MB
zabbix/zabbix-web-nginx-mysql latest 7ce5ac13bc18 3 weeks ago 179MB
zabbix/zabbix-server-mysql centos-latest acb4bba0d029 3 weeks ago 351MB
zabbix/zabbix-java-gateway latest 2a6ab816dc6e 3 weeks ago 84.4MB
创建zabbix_net 网络
可以使用命令创建,docker network create -d bridge zabbix_net
也可以登录openwrt 进入docker 管理页面创建网络 zabbix_net
#docker run -dit -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart always -v /etc/localtime:/etc/localtime -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:5.7
#
# MYSQL_DATABASE="zabbix" 在msql中创建的数据库的名
# MYSQL_USER="zabbix" 创建msql的登录账户名
# MYSQL_PASSWORD="zabbix123" 设置创建msql的登录账户的密码
# MYSQL_ROOT_PASSWORD="root123" 设置msql数据库root 的密码
其中-p 是将容器中的3306端口映射到服务器的3306端口,
--network zabbix_net是将容器加入到zabbix_net网络中,
-v /etc/localtime:/etc/localtime是同步服务器和容器内部的时区,
--restart always设置自启动,
-e MYSQL_DATABASE="zabbix",创建环境变量。
--name zabbix-mysql,给容器命名。
运行zabbix-java-gateway镜像,创建zabbix-java-gateway容器。
可能会报错,(因为服务端是在openwrt上的创建的,创建完其他容器后重启下软路由
进入docker面板重启其他容器即可)
docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:latest
运行zabbix-server-mysql镜像,创建zabbix-server-mysql容器
docker volume create zabbix-server-vol
下面的内容要和mysql容器设置的内容要一样
MYSQL_DATABASE="zabbix"
MYSQL_USER="zabbix"
MYSQL_PASSWORD="zabbix123"
MYSQL_ROOT_PASSWORD="root123"
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-latest
运行zabbix-web-nginx-mysql 创建abbix-web-nginx-mysq 容器
MYSQL_DATABASE="zabbix"
MYSQL_USER="zabbix"
MYSQL_PASSWORD="zabbix123"
MYSQL_ROOT_PASSWORD="root123
docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime --name zabbix-web-nginx-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:latest
查看所有容器
root@OpenWrt:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04434211c12f zabbix/zabbix-web-nginx-mysql:latest "docker-entrypoint.sh" 5 minutes ago Up About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 8443/tcp zabbix-web-nginx-mysql
e3b6ddae2852 zabbix/zabbix-server-mysql:centos-latest "/usr/bin/tini -- /u…" 7 minutes ago Up About a minute 0.0.0.0:10051->10051/tcp, :::10051->10051/tcp zabbix-server-mysql
80663a990bbb zabbix/zabbix-java-gateway:latest "docker-entrypoint.s…" 8 minutes ago Up 2 minutes 10052/tcp zabbix-java-gateway
5c1017554f01 mysql:5.7 "docker-entrypoint.s…" 11 minutes ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp zabbix-mysql
#注意04434211c12f 的端口是8080
输入软路由的ip 192.168.31.1:8080
默认密码admin/zabbix
点击左侧的 User settings 修改语言为中文即可
客户端安装zabbix4.0 不过添加失败,还是需要安装agentd2
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget https://cdn.zabbix.com/zabbix/binaries/stable/4.0/4.0.31/zabbix_agent-4.0.31-linux-3.0-amd64-static.tar.gz
--2022-01-20 21:36:26-- https://cdn.zabbix.com/zabbix/binaries/stable/4.0/4.0.31/zabbix_agent-4.0.31-linux-3.0-amd64-static.tar.gz
正在解析主机 cdn.zabbix.com (cdn.zabbix.com)... 2606:4700:20::681a:794, 2606:4700:20::ac43:4504, 2606:4700:20::681a:694, ...
正在连接 cdn.zabbix.com (cdn.zabbix.com)|2606:4700:20::681a:794|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2682069 (2.6M) [application/octet-stream]
正在保存至: “zabbix_agent-4.0.31-linux-3.0-amd64-static.tar.gz”
100%[=================================================================>] 2,682,069 964KB/s 用时 2.7s
2022-01-20 21:36:29 (964 KB/s) - 已保存 “zabbix_agent-4.0.31-linux-3.0-amd64-static.tar.gz” [2682069/2682069])
[root@localhost src]# mkdir /usr/local/zabbix
[root@localhost src]# tar -zxvf zabbix_agent-4.0.31-linux-3.0-amd64-static.tar.gz -C /usr/local/zabbix
./
./bin/
./bin/zabbix_sender
./bin/zabbix_get
./conf/
./conf/zabbix_agentd/
./conf/zabbix_agentd/userparameter_examples.conf
./conf/zabbix_agentd/userparameter_mysql.conf
./conf/zabbix_agentd.conf
./sbin/
./sbin/zabbix_agentd
[root@localhost src]# vim /usr/local/zabbix/conf/zabbix_agentd.conf
ogFile=/var/log/zabbix/zabbix_agentd.log //日志文件目录
Server=xxx.xxx.xxx.xxx //zabbix_server //zabbix服务器IP地址
#server=192.168.31.1
Hostname=xxx.xxx.xxx.xxx //客户端计算机ip
Hostname=192.168.31.165
创建用户
useradd zabbix
mkdir /var/log/zabbix //新建日志目录
touch /var/log/zabbix/zabbix_agentd.log //新建日志文件
chmod 777 /var/log/zabbix/zabbix_agentd.log
yum install ntpdate -y