Linux系统基于Docker容器安装Zabbix 5.0 详细图解教程

近期Zabbix官方发布了Zabbix 5.0版本,作为LTS版,本次的版本继承了4.*版本的全部功能,虽然新增了审计、服务、新函数、密码策略等功能,但是亮点并不太多,没有想象中惊艳,下面我将在Docker容器安装Zabbix来体验新特性。

Zabbix 5.0给人的第一眼感觉变化并不是太大,目前新增了审计日志功能,相比以前的版本,审计日志类型会更加丰富,例如处理LLD规则自动发现API令牌的创建会在审计日志里体现,同时也使用了新的表为审计日志服务。

安装教程

软件环境

  • 系统版本:CentOS 7.9

  • 软件版本:Zabbix 5.0

  • 数据库版本:MySQL

  • Web服务:Nginx

  • 关闭防火墙和selinux

一、Docker容器安装Zabbix环境准备

1、系统版本

[root@zabbix ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

2、安装Docker

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@zabbix ~]# yum install docker-ce

--> 解决依赖关系完成

依赖关系解决

======================================================================================================================================================================================================
 Package                                               架构                               版本                                                     源                                            大小
======================================================================================================================================================================================================
正在安装:
 docker-ce                                             x86_64                             3:20.10.8-3.el7                                          docker-ce-stable                              23 M
为依赖而安装:
 audit-libs-python                                     x86_64                             2.8.5-4.el7                                              base                                          76 k
 checkpolicy                                           x86_64                             2.5-8.el7                                                base                                         295 k
 container-selinux                                     noarch                             2:2.119.2-1.911c772.el7_8                                extras                                        40 k
 containerd.io                                         x86_64                             1.4.9-3.1.el7                                            docker-ce-stable                              30 M
 docker-ce-cli                                         x86_64                             1:20.10.8-3.el7                                          docker-ce-stable                              29 M
 docker-ce-rootless-extras                             x86_64                             20.10.8-3.el7                                            docker-ce-stable                             8.0 M
 docker-scan-plugin                                    x86_64                             0.8.0-3.el7                                              docker-ce-stable                             4.2 M
 fuse-overlayfs                                        x86_64                             0.7.2-6.el7_8                                            extras                                        54 k
 fuse3-libs                                            x86_64                             3.6.1-4.el7                                              extras                                        82 k
 libcgroup                                             x86_64                             0.41-21.el7                                              base                                          66 k
 libsemanage-python                                    x86_64                             2.5-14.el7                                               base                                         113 k
 policycoreutils-python                                x86_64                             2.5-34.el7                                               base                                         457 k
 python-IPy                                            noarch                             0.75-6.el7                                               base                                          32 k
 setools-libs                                          x86_64                             3.3.8-4.el7                                              base                                         620 k
 slirp4netns                                           x86_64                             0.4.3-4.el7_8                                            extras                                        81 k

事务概要
======================================================================================================================================================================================================
安装  1 软件包 (+15 依赖软件包)

总下载量:96 M
安装大小:386 M
Is this ok [y/d/N]: y
[root@zabbix ~]# systemctl start docker
[root@zabbix ~]# systemctl enable docker

3、规划Docker容器网络

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

二、基于Docker创建MySQL数据库

docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="qwqw1212" --network=zabbix-net -p 3306:3306 -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password

三、基于Docker创建zabbix-server

1、创建Zabbix Java gateway

docker run --name zabbix-java-gateway -t --network=zabbix-net --restart unless-stopped -d zabbix/zabbix-java-gateway:alpine-5.0-latest

2、创建Zabbix-server

docker run --name zabbix-server-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="qwqw1212" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" --network=zabbix-net -p 10051:10051 --restart unless-stopped -d zabbix/zabbix-server-mysql:alpine-5.0-latest

3、进入zabbix-server容器

# docker exec -it zabbix-server-mysql /bin/bash
bash-4.3# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=127 time=197 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=127 time=196 ms
ps:网络通外网
查看ipbash-4.3# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
278: eth0@if279: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    inet 172.17.0.15/16 scope global eth0
       valid_lft forever preferred_lft forever
1、备份配置文件:
cp -a /etc/apk/repositories /etc/apk/repositories.bak
2、修改repositories文件,将http://dl-cdn.alpinelinux.org/替换成https://mirrors.huaweicloud.com/,可以参考如下命令:sed -i s@http://dl-cdn.alpinelinux.org/@https://mirrors.huaweicloud.com/@g /etc/apk/repositories
3、执行apk update更新索引,执行apk search xxx查询软件包,执行apk add xxx安装软件包

4、安装Web-Nginx、PHP


docker run --name zabbix-web-nginx-mysql --hostname zabbix-web-nginx-mysql \
--link zabbix-mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_DATABASE="zabbix" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e PHP_TZ="Asia/Shanghai" \
-p 80:80 \
-p 443:443 \
-d \
zabbix/zabbix-web-nginx-mysql

四、安装zabbix-agent 并配置(被监控端)

#rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
#yum -y install zabbix-agent-5.0.15
 docker exec -it zabbix-server-mysql ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
278: eth0@if279: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:0f brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.15/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:f/64 scope link 
       valid_lft forever preferred_lft forever

# vim /etc/zabbix/zabbix_agentd.conf
Server=10.100.21.13
UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
# systemctl start zabbix-agent.service

注意:如果要对宿主机进行监控,请编辑宿主机的zabbix_agentd.conf,将Server地址,默认127.0.0.1,修改为docker-server容器地址,否则不通;如果是对其他主机的监控则使用docker-zabbix-server宿主机的IP。

zabbix-server基于docker安装完毕!访问:http://<宿主机IP>,默认用户名:Admin/zabbix

echo 1 > /proc/sys/net/ipv4/ip_forward #容器内网络与外网通,在宿主机上要开启网络转换

ps:开启网络转换容器只能ping通宿主机,不能通外网,重启docker就OK


Linux系统基于Docker容器安装Zabbix 5.0 详细图解教程
https://cn.10691.cn//archives/10053
作者
Ley
发布于
2021年09月14日
许可协议