主要包括如下3个部分:
- Docker组件的安装(zabbix-server-mysql/zabbix-web-apache-mysql/zabbix-agent)
- 注意事项
- 启动相关log
组件安装
Zabbix主要包括3个基本组成部分:
zabbix-server-mysql
zabbix-web-apache-mysql
zabbix-agent
分别代表后端、前端和数据采集器。本文主要采用的是mysql数据的形势,实际上zabbix官方海提供了pgsql的数据库存储形式。详细的见docker hub上的官方介绍:https://hub.docker.com/r/zabbix/
安装的命令较为简单,本文采用的docker版本一致为alpine-3.2.5(agent版本和后端版本不一致是否会出现一定的问题目前海不太确定)。
# zabbix-server-mysql
docker run --add-host=dockerhost:`docker network inspect --format='{
{range .IPAM.Config}}{
{.Gateway}}{
{end}}' bridge` --name some-zabbix-server-mysql -p 10051:10051 -e DB_SERVER_HOST=docker.for.mac.host.internal -e DB_SERVER_PORT=3306 -e MYSQL_USER="root" -e MYSQL_PASSWORD="admin" -d zabbix/zabbix-server-mysql:alpine-3.2.5
# zabbix-web-apache-mysql
docker run --name some-zabbix-agent --add-host=dockerhost:`docker network inspect --format='{
{range .IPAM.Config}}{
{.Gateway}}{
{end}}' bridge` -p 10050:10050 -e ZBX_HOSTNAME="localhost" -e ZBX_SERVER_HOST=`docker network inspect --format='{
{range .IPAM.Config}}{
{.Gateway}}{
{end}}' bridge` -e ZBX_SERVER_PORT=10051 -d zabbix/zabbix-agent:alpine-3.2.5
# zabbix-agent
docker run --name some-zabbix-web-apache-mysql --add-host=dockerhost:`docker network inspect --format='{
{range .IPAM.Config}}{
{.Gateway}}{
{end}}' bridge` -p 8088:80 -e DB_SERVER_HOST=docker.for.mac.host.internal -e DB_SERVER_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASSWORD=admin -e ZBX_SERVER_HOST=`docker network inspect --format='{
{range .IPAM.Config}}{
{.Gateway}}{
{end}}' bridge` -e TZ="Asia/Shanghai" -d zabbix/zabbix-web-apache-mysql:alpine-3.2.5
# ps: 上述命令中的--add-host 和 docker.for.mac.host.internal 是为了解决docker访问本地数据库而添加的,如果IP地址固定的情况下,更改成相应的IP地址即可。
注意事项
特别注意,上述的SERVER_HOST千万不要配置127.0.0.1哦,因为这个是docker的虚拟化网络决定的。详细可以看下我的另一篇文章Docker内如何访问本机(宿主机)
其二,可以通过docker logs 查看zabbix启动时候的日志。还有,其它的docker参数,可以查看相应的zabbix-docker 主页面。https://hub.docker.com/r/zabbix/zabbix-server-mysql/
其三,mysql 连接不上。
sh-3.2# docker logs 9515eb39b8b0
** Deploying Zabbix server with mysql database
** Preparing the system
** Preparing Zabbix server
********************
* DB_SERVER_HOST: dockerhost
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
* DB_SERVER_ZBX_USER: root
* DB_SERVER_ZBX_PASS: admin
********************
**** MySQL server is not available. Waiting 5 seconds...
**** MySQL server is not available. Waiting 5 seconds...
**** MySQL server is not available. Waiting 5 seconds...
这个问题是上文的docker访问了本地的ip:127.0.0.1所导致,具体还是看下docker访问本机这片文章即可解决上述问题。
其四,docker初始化的数据库名称为zabbix, 账户和密码为Admin/zabbix
其五,web连接不上host,肯定是因为apache-web镜像启动的时候没有配置正确的host地址导致。
启动相关log
# docker zabbix-mysql
localhost:~ Sean$ docker logs 0aab68a67f1c
** Deploying Zabbix server with mysql database
** Preparing the system
** Preparing Zabbix server
********************
* DB_SERVER_HOST: docker.for.mac.host.internal
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
* DB_SERVER_ZBX_USER: root
* DB_SERVER_ZBX_PASS: admin
********************
** Database 'zabbix' already exists. Please be careful with database COLLATE!
** Table 'zabbix.dbversion'