首页 > 监控 > zabbix > centos7.5通过docker安装zabbix server
2018
06-29

centos7.5通过docker安装zabbix server

操作系统环境:centos7.5 x64版本

安装wget

yum -y install wget

如果有之前安装的版本,删除之前安装的版本

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

下载docker-ce的源

wget --no-check-certificate https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

更新本缓存文件

yum makecache

安装docker-ce

yum -y install docker-ce

下面这个示例展现了如何运行支持MySQL数据库的Zabbix server,基于Nginx web服务器运行Zabbix web接口,以及Zabbix Java gateway。

1. 启动一个空的MySQL服务器实例

# docker run --name mysql-server -t --restart=always \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -d mysql:5.7 \
      --character-set-server=utf8 --collation-server=utf8_bin

2. 启动Zabbix Java gateway实例

# docker run --name zabbix-java-gateway -t --restart=always \
      -d zabbix/zabbix-java-gateway:latest

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

# docker run --name zabbix-server-mysql -t --restart=always \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:latest

Zabbix server实例暴露10051/TCP端口(Zabbix trapper)给主机。

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

# docker run --name zabbix-web-nginx-mysql -t --restart=always \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 80:80 \
      -d zabbix/zabbix-web-nginx-mysql:latest

Zabbix web 接口暴露80/TCP端口(HTTP)给主机。

安装完成后,直接浏览主机地址:

http://服务器ip

安装完成后账号信息

登录账号:Admin
登录密码:zabbix

添加防火墙策略

[root@bogon ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="80" accept"
success
[root@bogon ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="10051" accept"  
success
[root@bogon ~]# firewall-cmd --reload 
success
[root@bogon ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.1.1/24" port port="80" protocol="tcp" accept
        rule family="ipv4" source address="192.168.1.1/24" port port="10051" protocol="tcp" accept

查看安装好的zabbix容器

[root@bogon ~]# docker ps 
CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS              PORTS                         NAMES
8837ffd9b392        zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp, 443/tcp   zabbix-web-nginx-mysql
fd28b058c957        zabbix/zabbix-server-mysql:latest      "docker-entrypoint.sh"   3 hours ago         Up 3 hours          0.0.0.0:10051->10051/tcp      zabbix-server-mysql
359ee145f77c        zabbix/zabbix-java-gateway:latest      "docker-entrypoint.sh"   3 hours ago         Up 3 hours          10052/tcp                     zabbix-java-gateway
9486971f9167        mysql:5.7                              "docker-entrypoint.s…"   3 hours ago         Up 3 hours          3306/tcp                      mysql-server

解决zabbix网页改中文后,显示乱码问题
simkai.ttf从windows的 C:\Windows\Fonts\ 目录下复制出来的“楷体 常规”这个字体文件

centos7.5通过docker安装zabbix server - 第1张  | 劳福喜-专注Linux服务器运维技术

将字体文件拷贝到zabbix网页的容器里

docker cp simkai.ttf 8837ffd9b392:/usr/share/zabbix/fonts/

进入容器

docker exec -it 8837ffd9b392 /bin/bash

修改备份原有链接,创建新链接

cd /usr/share/zabbix/fonts
mv graphfont.ttf graphfont.ttf.bak
ln -sv simkai.ttf graphfont.ttf

主机名称用中文解决方法
进入容器

docker exec -it 8837ffd9b392 /bin/bash

修改源码文件

vi /usr/share/zabbix/include/defines.inc.php
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-]+)'); // !!! Don't forget sync code with C !!!
修改为
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-\x{80}-\x{ff}]+)');/* !!! Don't forget sync code with C !!! */

正常演示页面

centos7.5通过docker安装zabbix server - 第2张  | 劳福喜-专注Linux服务器运维技术

最后编辑:
作者:劳福喜
这个作者貌似有点懒,什么都没有留下。

留下一个回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据