docker 部署zabbix

官网:https://www.zabbix.com/documentation/current/manual/installation/containers

 

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com","https://nrbewqda.mirror.aliyuncs.com","https://dmmxhzvq.mirror.aliyuncs.com"]
}


systemctl restart docker

 

#启动一个空的MySQL服务器实例
docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -d mysql:8.0 \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password
注:该容器未使用-v选项,也就是说所有的数据库都在容器中,容器的数据库中的表在/var/lib/mysql/zabbix/中


#启动Zabbix Java gateway实例
docker run --name zabbix-java-gateway -t \
      -d zabbix/zabbix-java-gateway:latest

#启动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_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 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_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 80:8080 \
      -d zabbix/zabbix-web-nginx-mysql:latest

 

#安装zabbix客户端agent(安装完agent后监控本机时会异常,暂未排查出原因)
docker run --name zabbix-agent \
-e ZBX_HOSTNAME="self" \                      #该名称可自定义,监控本地宿主机时用该项
-e ZBX_SERVER_HOST="172.17.0.1" \                #宿机上使用ip a命令查看到docker0网卡的IP
-e ZBX_METADATA="client" \                    #这个是设置元数据,在server上配置自动注册的时候用,可自定义
-p 10050:10050 \
-d zabbix/zabbix-agent:latest

=================   以上都在docker中执行安装   ==================

 

         登录账密:Admin/zabbix

 

客户端安装zabbix_agent(客户端为Centos7.4,非docker)

关闭防火墙
iptables -F && setenforce 0
systemctl stop firewalld && systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config

官网包下载:http://repo.zabbix.com/zabbix/5.0/

wget http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf
  PidFile=/var/run/zabbix/zabbix_agentd.pid
  LogFile=/var/log/zabbix/zabbix_agentd.log
  LogFileSize=0
  DenyKey=system.run[*]
  Server=172.16.186.20      #服务端IP
  ServerActive=172.16.186.20    #服务端IP
  Hostname=client1          #可自定义
  Include=/etc/zabbix/zabbix_agentd.d/*.conf

 

systemctl restart zabbix-agent.service

 

web端添加主机

注:上图中主机名称是zabbix_agentd.conf中Hostname定义的名称,可见的名称、群组都可自定义,interface中的客户端是客户端IP,端口是10050

 

注:上图中的模板选择Template OS Linux by Zabbix agent(其他模板也可以)

监控本机的配置

 

修改图标中的乱码

字体下载

docker  cp  simkai.ttf  <docker_nginx_ID>:/usr/share/zabbix/assets/fonts/
docker exec -it <docker_nginx_ID> /bin/bash

            注:在容器中zabbix用户没有mv和cp的权限

注:进入到nginx那个容器中打开/usr/share/zabbix/include/defines.inc.php文件,将原来的DejaVuSans更换为通过docker  cp复制进来的字体名字,然后刷新下web页面即可,如下

 
 

      欢迎一起讨论linux、开源

 

posted @ 2020-06-08 16:50  Linux大魔王  阅读(505)  评论(0编辑  收藏  举报