centos上docker部署zabbix
阿新 • • 發佈:2021-12-14
環境
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>