转 docker 部署zabbix服务

Posted jeroen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转 docker 部署zabbix服务相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/root0/p/9812789.html
1 官方地址
官方写的很详细并且是中文的,一步步按照操作就可以

https://www.zabbix.com/documentation/3.4/zh/manual/installation/containers

2 启动一个空的mysql服务器实例

docker run --name mysql-server -t       -e MYSQL_DATABASE="zabbix"       -e MYSQL_USER="zabbix"       -e MYSQL_PASSWORD="zabbix"       -e MYSQL_ROOT_PASSWORD="zabbix"       -d mysql:5.7  --character-set-server=utf8 --collation-server=utf8_bin  #这里注意, 如果没有的话, 输入中文保存时可能会出现错误

3 启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例

docker run --name zabbix-server-mysql -t       -e DB_SERVER_HOST="mysql-server"       -e MYSQL_DATABASE="zabbix"       -e MYSQL_USER="zabbix"       -e MYSQL_PASSWORD="zabbix"       -e MYSQL_ROOT_PASSWORD="zabbix"       --link mysql-server:mysql       -p 10051:10051       -d zabbix/zabbix-server-mysql:latest

4 启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix server实例关联

docker run --name zabbix-web-nginx-mysql -t       -e DB_SERVER_HOST="mysql-server"       -e MYSQL_DATABASE="zabbix"       -e MYSQL_USER="zabbix"       -e MYSQL_PASSWORD="zabbix"       -e MYSQL_ROOT_PASSWORD="zabbix"       --link mysql-server:mysql       --link zabbix-server-mysql:zabbix-server       -p 8080:80       -d zabbix/zabbix-web-nginx-mysql:latest

5 查看容器启动情况

[root@zabbix_server ~]# docker ps
CONTAINER ID        IMAGE                                  COMMAND                  CREATED              STATUS              PORTS                           NAMES
98cbe8d8a6bd        zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   6 seconds ago        Up 5 seconds        443/tcp, 0.0.0.0:8080->80/tcp   zabbix-web-nginx-mysql
de040d43d60f        zabbix/zabbix-server-mysql:latest      "docker-entrypoint.sh"   59 seconds ago       Up 59 seconds       0.0.0.0:10051->10051/tcp        zabbix-server-mysql
3276f18def8d        mysql:5.7                              "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp                        mysql-server

6 查看docker镜像

[root@zabbix_server ~]# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
zabbix/zabbix-web-nginx-mysql   latest              4db891b4393a        10 hours ago        177MB
zabbix/zabbix-server-mysql      latest              f5e58dafe9ac        10 hours ago        62.2MB
mysql                           5.7                 f0f3956a9dd8        7 days ago          409MB

7 访问web界面
http://10.0.3.57:8080

帐号密码:
Admin
zabbix

已经可以访问了

问题:

  1. zabbix的服务器时间与宿主机不一致.需要进容器更改配置文件,并重启服务

    在zabbix-web-nginx-mysql 上发现了问题所在

    grep -r "timezone" /etc/php7/
    

    /etc/php7/conf.d/99-zabbix.ini 将 data.timezone=Asia/Shanghai

    cat /etc/php7/conf.d/99-zabbix.ini
    
    
    max_execution_time=600
    memory_limit=128M
    post_max_size=16M
    upload_max_filesize=2M
    max_input_time=300
    ; always_populate_raw_post_data=-1
    max_input_vars=10000
    ; date.timezone=Europe/Riga
    date.timezone=Asia/Shanghai    //修改此处的
    ; session.save_path=/var/lib/php7    
    

由于修改此配置重启容器之后,修改的内容会被还原,所以直接使用kill 了php-fpm7的进程杀掉
由于容器中有supervisord管理php-fpm kill掉fpm主进程很快也会被重启此时发现zabbix的页面时间已经和系统时间一致
pkill php7

2.zabbix 部分中文出现方块的问题

百度回答:zabbix web端缺少中文字库, 需要进docker替换掉字体

wget http://down1.chinaunix.net/distfiles/ttf-arphic-uming_0.0.20050501-1.tar.gz
tar xf /root/ttf-arphic-uming_0.0.20050501-1.tar.gz
cd /usr/local/apache/htdocs/zabbix/fonts  ## 注意此处为zabbix web文件所在路径
mv DejaVuSans.ttf /root/        ## 备份原有字体文件
cp /root/ttf-arphic-uming_0.0.20050501/uming.ttf  ./DejaVusans.ttf # 将下载的字体替换到此处;

在docker中的目录为 /usr/share/zabbix/assets/fonts/

以上是关于转 docker 部署zabbix服务的主要内容,如果未能解决你的问题,请参考以下文章

docker部署zabbix

用docker部署zabbix

Zabbix实现Docker监控的全自动注册

docker部署zabbix后监控局域网内的路由器snmp通讯失败

Zabbix实战之部署篇使用Docker部署Zabbix 6.2.7监控平台

通过docker搭建zabbix监控系统