<返回更多

基于Docker部署Zabbix Server

2021-06-02  富集云科技有限公司  
加入收藏

基于Docker部署Zabbix Server

 安装docker

 关闭selinux

[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config

安装依赖包

[root@localhost ~]# yum install -y yum-utils device-mApper-persistent-data lvm2
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

安装Docker ce

[root@localhost ~]# yum install -y docker-ce

启动Docker服务

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

查看版本号

安装Zabbix镜像

安装MySQL

启动一个单独的数据库mysql用于保存zabbix数据,定义了数据库名zabbix,数据库用户zabbix,密码zabbix,在本地目录/home/zabbix/data中持久化保存mysql容器运行中的数据,确保容器退出运行后,数据不会丢失,最后两条是定义了数据库的字符集为utf8,解决了mysql数据库保存中文的问题。

[root@localhost ~]# docker run --restart=always --name mysql-server -t 
  -e MYSQL_DATABASE="zabbix" 
-e MYSQL_USER="zabbix" 
-e MYSQL_PASSword="zabbix" 
 -e MYSQL_ROOT_PASSWORD="zabbix" 
-v /home/zabbix/data:/var/lib/mysql 
-v /etc/timezone:/etc/timezone 
 -v /etc/localtime:/etc/localtime 
-d mysql:5.7 
--character-set-server=utf8 
--collation-server=utf8_bin

2.2. 安装zabbix-JAVA-gateway

[root@localhost ~]# docker run --restart=always --name zabbix-java-gateway -t 
  -d zabbix/zabbix-java-gateway:centos-4.2.8

2.3. 安装zabbix-server-mysql

启动zabbix server服务,并关联这个服务到上面已经启动的mysql数据库实例上,确保zabbix的数据可以保存到mysql数据库中。

[root@localhost ~]# docker run --restart=always --name zabbix-server-mysql -t 
-e php_TZ="Asia/Shanghai"
  -e DB_SERVER_HOST="mysql-server" 
-e MYSQL_DATABASE="zabbix" 
  -e MYSQL_USER="zabbix" 
-e MYSQL_PASSWORD="zabbix" 
-e MYSQL_ROOT_PASSWORD="zabbix" 
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" 
--link mysql-server:mysql 
--link zabbix-java-gateway:zabbix-java-gateway 
-v /home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts 
-v /etc/timezone:/etc/timezone 
  -v /etc/localtime:/etc/localtime 
-v /home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts 
-v /home/zabbix/modules:/var/lib/zabbix/modules 
-v /home/zabbix/enc:/var/lib/zabbix/enc 
-v /home/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys 
-v /home/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs 
 -v /home/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys 
 -v /home/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca 
-v /home/zabbix/snmptraps:/var/lib/zabbix/snmptraps 
-v /home/zabbix/mibs:/var/lib/zabbix/mibs 
-p 10051:10051 
-d zabbix/zabbix-server-mysql:centos-4.2.8

挂载说明:

  • /usr/lib/zabbix/alertscripts该卷用于保存自定义警报脚本,它是AlertScriptsPath参数conf
  • /usr/lib/zabbix/externalscripts外部检查(项目类型)使用该卷,它是ExternalScripts参数conf
  • /var/lib/zabbix/modules该卷允许加载其他模块并使用LoadModule功能扩展Zabbix服务器。
  • /var/lib/zabbix/enc该卷用于存储TLS相关文件。这些文件的名称使用规定ZBX_TLSCAFILE,ZBX_TLSCRLFILE,ZBX_TLSKEY_FILE和ZBX_TLSPSKFILE变量。
  • /var/lib/zabbix/ssh_keys该卷用作SSH检查和操作的公钥和私钥的位置。它是SSHKeyLocation参数zabbix_server.conf。
  • /var/lib/zabbix/ssl/certs该卷用作客户端身份验证的SSL客户端证书文件的位置。它是SSLCertLocation参数zabbix_server.conf。
  • /var/lib/zabbix/ssl/keys该卷用作客户端身份验证的SSL私钥文件的位置。它是SSLKeyLocation参数zabbix_server.conf。
  • /var/lib/zabbix/ssl/ssl_ca该卷用作SSL服务器证书验证的证书颁发机构(CA)文件的位置。它是SSLCALocation参数zabbix_server.conf。
  • /var/lib/zabbix/snmptraps该卷用作snmptraps.log文件的位置。它可以由zabbix-snmptraps容器共享,并volumes_from在创建Zabbix服务器的新实例时使用Docker选项继承。可以使用共享卷和交换ZBX_ENABLE_SNMP_TRAPS环境变量来启用SNMP陷阱处理功能true。
  • /var/lib/zabbix/mibs该卷允许添加新的MIB文件。它不支持子目录,必须放置所有MIB /var/lib/zabbix/mibs

2.4. 安装zabbix-web-Nginx-mysql

 

基于Docker部署Zabbix Server

 

启动zabbix前端web界面实例,将web界面实例与前面的mysql数据库服务实例

[root@localhost ~]# docker run --restart=always 
--name zabbix-web-nginx-mysql -t 
  -e PHP_TZ="Asia/Shanghai" 
-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 
  -v /etc/timezone:/etc/timezone 
-v /etc/localtime:/etc/localtime 
  -p 80:80 
-d zabbix/zabbix-web-nginx-mysql:centos-4.2.8

备注:

  • --link mysql-server:mysql 连接数据库实例,mysql-server必须要与第一步的--name mysql-server完全一致
  • --link zabbix-server-mysql:zabbix-server 连接zabbix服务器实例,zabbix-server-mysql必须要与第二步的--name zabbix-server-mysql完全一致
  • DB_SERVER_HOST变量的值要与第二步指定的-e DB_SERVER_HOST="mysql-server"一致
  • 3. 检查容器命令
  • 3.1. 查看所有容器列表ID及状态
  • [root@localhost ~]# docker ps -a

 

基于Docker部署Zabbix Server

 


基于Docker部署Zabbix Server

 

3.2. 查看容器日志

[root@localhost ~]# docker logs 容器ID

3.3. 进入容器

[root@localhost ~]# docker exec -it 容器ID /bin/bash

3.4. 查看容器使用cpu、内存、网络、io情况

[root@localhost ~]# docker stats -a
  • 4. Web配置 4.1. 用浏览器访问zabbix http://Zabbix IP账号:Admin 密码:zabbix 4.2.设置中文: 4.3. 图形页面数据字段显示为方框 4.4. 从Window找到相应的字体 控制面板-->字体-->选择一种中文字库例如“楷体”(simkai.ttf),将字体文件simkai.ttf上传进zabbix-web-nginx-mysql容器目录:
  • [root@localhost~]# docker cp simkai.ttf 容器ID:/usr/share/zabbix/assets/fonts/
基于Docker部署Zabbix Server

 

  •  

4.5. 进入zabbix/zabbix-web-nginx-mysql容器

[root@localhost ~]# docker exec -it zabbix-web-nginx-mysql /bin/bash

4.6. 进入容器目录/usr/share/zabbix/assets/fonts

[root@fb635f4ee263 zabbix]# cd /usr/share/zabbix/assets/fonts
[root@4a3af4bb1cbf fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.backup
[root@4a3af4bb1cbf fonts]# mv simkai.ttf DejaVuSans.ttf

 

4.7. 刷新zabbix页面

 

基于Docker部署Zabbix Server

 

5. 宿主机安装Zabbix-agent

5.1. 查看 Zabbix-Server容器IP地址

[root@localhost ~]# docker ps
[root@localhost ~]# docker exec -it zabbix-server-mysql /bin/bash
[root@c6b965eea180 ~]# cat /etc/hosts
基于Docker部署Zabbix Server

 


 
  • 5.2. 使用正常的zabbix-agent的安装 ZBX_SERVER_HOST的值为Zabbix-server的ip,ZBX_HOSTNAME值是唯一的,区分大小写的主机名,-p指定将内部端口10050映射值外部端口10050
[root@localhost ~]# docker run  --restart=always 
  --name zabbix-agent  -t 
  -e "ZBX_SERVER_HOST=192.168.73.233" 
    -e ZBX_HOSTNAME="Zabbix Server" 
    -p 10050:10050 
      -d zabbix/zabbix-agent:centos-4.2.8
    [root@localhost ~]# docker exec -it zabbix-agent /bin/bash
    [root@2510ebd059d0 zabbix]# cat /etc/hosts

 

基于Docker部署Zabbix Server

 

5.3. 在Zabbix的web设置宿主机agent

 

基于Docker部署Zabbix Server

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>