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、开源