环境
centos7,docker,zabbix-server5.4,zabbix-agent4.0
一、zabbix-server
1. 安装mysql
docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="填写你的密码" \ -e MYSQL_ROOT_PASSWORD="填写你的密码" \ -d mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_bin
2. 安装java监控
docker run --name zabbix-java-gateway -t \ -d zabbix/zabbix-java-gateway:latest
3. 安装zabbix-server
docker run --privileged=true -v /home/zabbix-server:/etc/zabbix --name zabbix-server-mysql -t \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="填写你的密码" \ -e MYSQL_ROOT_PASSWORD="填写你的密码" \ -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
**ps:挂载本地卷启动,本地需要提前创建好目录和放好zabbix_server.conf,不然无法启动容器。如果不进行挂载启动,则修改配置文件会比较麻烦。
4. 安装zabbix-nginx
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="填写你的密码" \ -e MYSQL_ROOT_PASSWORD="填写你的密码" \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -p 8088:8080 \ -d zabbix/zabbix-web-nginx-mysql:latest
ps:注意docker的nginx镜像里面配置默认为8080端口,所以要映射到8080端口。
二、zabbix-agent
普通安装
- 添加源
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
- 安装
yum install zabbix-agent
- 启动
systemctl start zabbix-agent
ps:配置文件路径一般在/etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1 # zabbix-server 地址 ServerActive=127.0.0.1 # zabbix-server 地址 Hostname=Zabbix server # 在zabbix-server面板里添加的主机名,需要对应。
docker安装zabbix-agent
- 安装
docker run --name zabbix-agent --privileged=true \ -e ZBX_HOSTNAME="Zabbix server" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" \ -p 10050:10050 \ --restart unless-stopped \ -d zabbix/zabbix-agent:latest
ps:从docker安装的,配置文件都需要进到容器里查看。
三、注意事项
1. server与agent通信
有2种方式
- docker安装的server与agent,想要监控本机,本机的agent配置需要加上公网ip和docker内网ip。server的面板里则需要使用公网ip,不可使用127.0.0.1。
- 搭建之前先创建docker网络,把2个容器都加入到docker网络里面
以下是不在一个docker网络的agent安装示例:
docker run --name zabbix-agent --privileged=true \ -e ZBX_HOSTNAME="Zabbix server" \ -e ZBX_SERVER_HOST="45.63.23.91,172.17.0.1" \ -p 10050:10050 \ --restart unless-stopped \ -d zabbix/zabbix-agent:latest
2. docker日志
1> 找出docker container日志文件所在的路径docker inspect --format='{{.LogPath}}' <container_name_or_id>
2>删除或者清空日志文件内容echo |sudo tee $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)
3>查看日志
docker logs -f <container_name_or_id>