使用Docker Compose启动Zabbix 5.0的步骤


这是什么?

Zabbix是一个开源和免费的监视工具。我们使用官方的Zabbix Docker映像总结了使用Docker Compose批量设置数据库(例如MySQL)的过程。

一旦习惯了,您应该可以在大约5分钟内设置Zabbix 5.0环境。

Docker Compose的YAML文件已正式分发,请使用该文件。

image.png

背景是因为我想创建一个可以轻松尝试Zabbix 5.0的环境。在Zabbix 4.0之前,正式发行了具有zabbix / zabbix-appliance的Docker映像。 Zabbix 5.0目前仅适用于RHEL,因此我使用Docker Compose进行了验证。

程序

设置Docker和Docker Compose

(在已设置的环境中,下一步)

参考:对于CentOS 7.x

1
2
3
4
5
curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh
systemctl enable dockern
systemctl start docker
yum -y install docker-compose

克隆并移动GitHub存储库

1
2
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker

准备配置文件

这次,我们将使用Docker Compose文件,该文件是CentOS Nginx MySQL的组合。同一文件中有latestlocal,但这是前者(最新)的过程。后者(本地)在本地构建映像。此外,还分发了Alpine和Ubuntu作为基础映像,以及PostgreSQL作为后端。

1
cp docker-compose_v3_centos_mysql_latest.yaml docker-compose.yaml

之后,如果未指定YAML配置文件,则表示docker-compose.yaml

YAML文件中,MySQL用户和密码配置文件为.MYSQL_USER.MYSQL_PASSWORD.MYSQL_ROOT_PASSWORD。根据需要编辑每个文件。

下载Docker映像

1
docker-compose pull

检查图像列表dokcer images

1
2
3
4
5
6
7
8
9
10
11
12
$ docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
mysql                            8.0                 a0d4d95e478f        4 hours ago         541MB
busybox                          latest              78096d0a5478        11 hours ago        1.22MB
zabbix/zabbix-web-apache-mysql   centos-5.0-latest   5c3418ac3645        31 hours ago        505MB
zabbix/zabbix-agent              centos-5.0-latest   6bd73926b75f        31 hours ago        256MB
zabbix/zabbix-proxy-sqlite3      centos-5.0-latest   4a01689b6f57        32 hours ago        267MB
zabbix/zabbix-server-mysql       centos-5.0-latest   465a30a32216        41 hours ago        360MB
zabbix/zabbix-web-nginx-mysql    centos-5.0-latest   f3a0f8c7659f        46 hours ago        487MB
zabbix/zabbix-java-gateway       centos-5.0-latest   1c3c611d4bb8        46 hours ago        395MB
zabbix/zabbix-proxy-mysql        centos-5.0-latest   91fd7fd05aec        46 hours ago        358MB
zabbix/zabbix-snmptraps          centos-5.0-latest   06c106b449cc        46 hours ago        283MB

开始

YAML文件所在的目录上以分离模式(-d选项)开始。

1
docker-compose up -d

检查状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# docker-compose  ps
WARNING: Some services (zabbix-agent, zabbix-java-gateway, zabbix-proxy-mysql, zabbix-proxy-sqlite3, zabbix-server, zabbix-snmptraps, zabbix-web-apache-mysql, zabbix-web-nginx-mysql) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
            Name                          Command              State               Ports
----------------------------------------------------------------------------------------------------
zabbixdocker_db_data_mysql_1    sh                             Exit 0
zabbixdocker_mysql-server_1     docker-entrypoint.sh mysql     Up
                                ...
zabbixdocker_zabbix-agent_1     /sbin/tini -- /usr/bin/doc     Up
                                ...
zabbixdocker_zabbix-java-       docker-entrypoint.sh /usr/     Up
gateway_1                       ...
zabbixdocker_zabbix-proxy-      /sbin/tini -- /usr/bin/doc     Up       0.0.0.0:10071->10051/tcp
mysql_1                         ...
zabbixdocker_zabbix-proxy-      /sbin/tini -- /usr/bin/doc     Up       0.0.0.0:10061->10051/tcp
sqlite3_1                       ...
zabbixdocker_zabbix-server_1    /sbin/tini -- /usr/bin/doc     Up       0.0.0.0:10051->10051/tcp
                                ...
zabbixdocker_zabbix-            /usr/bin/supervisord -c /e     Up       0.0.0.0:162->1162/udp
snmptraps_1                     ...
zabbixdocker_zabbix-web-        docker-entrypoint.sh           Up       0.0.0.0:80->8080/tcp,
apache-mysql_1                                                          0.0.0.0:443->8443/tcp
zabbixdocker_zabbix-web-        docker-entrypoint.sh           Up       0.0.0.0:8081->8080/tcp,
nginx-mysql_1                                                           0.0.0.0:8443->8443/tcp

* zabbixdocker_db_data_mysql_1处于Exit 0状态,这是正常的。其他是Up

要查看处理状态,请使用docker-compose logs -f。等待以下日志启动Zabbix服务器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
zabbix-server_1            | Starting Zabbix Server. Zabbix 5.0.0 (revision 9665d62).
zabbix-server_1            | Press Ctrl+C to exit.
zabbix-server_1            |
zabbix-server_1            |      6:20200514:164942.480 Starting Zabbix Server. Zabbix 5.0.0 (revision 9665d62).
zabbix-server_1            |      6:20200514:164942.480 ****** Enabled features ******
zabbix-server_1            |      6:20200514:164942.480 SNMP monitoring:           YES
zabbix-server_1            |      6:20200514:164942.480 IPMI monitoring:           YES
zabbix-server_1            |      6:20200514:164942.480 Web monitoring:            YES
zabbix-server_1            |      6:20200514:164942.480 VMware monitoring:         YES
zabbix-server_1            |      6:20200514:164942.480 SMTP authentication:       YES
zabbix-server_1            |      6:20200514:164942.480 ODBC:                      YES
zabbix-server_1            |      6:20200514:164942.480 SSH support:               YES
zabbix-server_1            |      6:20200514:164942.480 IPv6 support:              YES
zabbix-server_1            |      6:20200514:164942.480 TLS support:               YES
zabbix-server_1            |      6:20200514:164942.480 ******************************
zabbix-server_1            |      6:20200514:164942.480 using configuration file: /etc/zabbix/zabbix_server.conf
zabbix-server_1            |      6:20200514:164942.493 current database version (mandatory/optional): 05000000/05000000
zabbix-server_1            |      6:20200514:164942.493 required mandatory version: 05000000
zabbix-server_1            |      6:20200514:164942.555 server #0 started [main process]
zabbix-server_1            |    200:20200514:164942.556 server #1 started [configuration syncer #1]

连接到管理屏幕

在Web浏览器中打开http://<IPアドレスまたはホスト名>

image.png

默认用户信息是用户名Admin和密码zabbix。输入后,单击Sign in

登录后,更改密码。

单击屏幕左下方的User Settings→单击Change password→输入PasswordPassword (once again),然后单击Update。如果您还想将语言更改为日语,请将Language English (en_GB)更改为Japanese (ja_JP)(但是,默认情况下,图像中的日语是乱码)。

解决Zabbix服务器利用不可

登录后,Zabbix Server立即成为"不可用"的障碍。默认情况下,无法通过Zabbix代理获取Zabbix服务器的状态(因为默认情况下Zabbix Server设置为连接到127.0.0.1代理)。

为避免这种情况,请如下更改设置。将监视目标从127.0.0.1更改为zabbix-agent(在Docker的桥接网络中,名称可以通过服务名称来解析,因此,如果指定服务名称为zabbix-agent,则zabbix-agent容器的IP地址将自动设置。将名称解析为)。

单击左侧菜单上的"设置"->"主机",然后单击" Zabbix服务器"的名称。
然后,"接口"的" IP地址"为" 127.0.0.1",但将其删除。然后在DNS名称中输入zabbix-agent,单击DNS作为连接方法,然后单击更新

image.png

要检查操作,请在左侧菜单上单击"监视数据"->"最新数据"。每个项目的值均取自Zabbix服务器。点击图表,您将实时看到值的变化。

image.png

之后,当我返回到仪表板时,它显示" Failure",但3分钟后消失(默认值为3分钟)。

image.png

让我们触摸各种事物。要查看资源列表图,请单击"监视数据"->"主机"->" Zabbix服务器"->选择"图"。

image.png

享受吧!

参考

  • Zabbix官方文档

    • 5从容器安装[Zabbix文档5.0]