1. 程式人生 > 其它 >centos上docker部署zabbix

centos上docker部署zabbix

環境

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

普通安裝

  1. 新增源
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
  1. 安裝
yum install zabbix-agent
  1. 啟動
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

  1. 安裝
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>