Docker安裝Zabbix5.2


       生產環境中一直用3.4和4.0版本的zabbix在進行監控服務器和網絡設備狀態。最近想體驗一下新版本,以前都是用二進制進行安裝,一安裝就要好幾個小時甚至更久,畢竟有好些坑要踩。這次采用Docker的方式進行部署,真是應了那句話"我X,真香!早應該用這種方式部署了"。

0、安裝Docker基礎環境:

官方源比較慢,改用國內鏡像源:

 阿里雲

$ sudo yum-config-manager --add-repo \

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

或:清華大學源

$ sudo yum-config-manager --add-repo \

https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

 

systemctl start docker

systemctl enable docker

 

1、拉取鏡像

docker pull mysql:5.7

docker pull zabbix/zabbix-server-mysql:centos-latest

docker pull zabbix/zabbix-web-nginx-mysql:latest

docker pull zabbix/zabbix-java-gateway:latest

docker pull zabbix/zabbix-agent:latest

 不要下載最新版本的mysql,不然后面server 無法在mysql上進行注冊,會報 “MySQL server is not available. ” 錯誤

 

2、配置網絡(docker的網橋)

docker network create --subnet 172.18.0.0/16 -d bridge  zabbix_net

 

3、安裝mysql

docker run -p 3306:3306 --name zabbix-mysql \

--network zabbix_net --ip 172.18.0.2 \

-v /usr/local/docker/mysql/conf:/etc/mysql \

-v /usr/local/docker/mysql/logs:/var/log/mysql \

-v /usr/local/docker/mysql/data:/var/lib/mysql \

-v /etc/localtime:/etc/localtime \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="123456" \

-e MYSQL_ROOT_PASSWORD="123456" \

--restart=always \

-d mysql:5.7 \

--character-set-server=utf8 --collation-server=utf8_bin

 #注:--restart=always寫在-d mysql:5.7的前面,要不然容器啟動后自動關閉。

         --restart=always跟隨Docker啟動

 

4、安裝java-gateway

docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name zabbix-java-gateway --network zabbix_net --ip 172.18.0.5 zabbix/zabbix-java-gateway:latest

 

5、安裝zabbix-server-mysql

docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix \

-v /etc/localtime:/etc/localtime \

-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \

--name=zabbix-server-mysql --restart=always --network zabbix_net --ip 172.18.0.6 \

-e DB_SERVER_HOST="zabbix-mysql" \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="123456" \

-e MYSQL_ROOT_PASSWORD="123456" \

-e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-latest

 

6、安裝zabbix-nginx

docker run -dit -p 8888:8080 -v /etc/localtime:/etc/localtime \

--name zabbix-nginx \

--restart=always --network zabbix_net --ip 172.18.0.3 \

-e DB_SERVER_HOST="zabbix-mysql" \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="123456" \

-e MYSQL_ROOT_PASSWORD="123456" \

-e PHP_TZ="Asia/Shanghai" \

-e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:latest

 

7、部署zabbix-agent端(指定zabbix-server地址或者ip地址)

docker run -dit --name zabbix-agent -e ZBX_HOSTNAME="zabbix-server-mysql" --restart=always --link zabbix-server-mysql --network zabbix_net --ip 172.18.0.4 -e ZBX_SERVER_HOST="zabbix-server-mysql" -p 10050:10050 --privileged -e ZBX_SERVER_PORT=10051 -d zabbix/zabbix-agent:latest

 

8、登陸zabbix web

http://宿主機IP:8888/

用戶:Admin 密碼: zabbix

 

 

相關問題

問題1:中文亂碼問題解決       

 

 docker部署zabbix-web和源碼安裝zabbix-web一樣,字體都是存儲在/usr/share/zabbix/assets/fonts/

 從windown拷貝MSYH.TTC(微軟雅黑 )文件到docker的zabbix-web里面

 1、字體存在於Windows的路徑

 C:\Windows\Fonts\MSYH.TTC          微軟雅黑 

 2、上傳字體到服務器/data下面

 3、拷貝字體到docker 容器內部

 # docker cp /data/MSYH.TTC 36:/usr/share/zabbix/assets/fonts/

 4、進入容器

#docker exec -it zabbix-nginx bash

 5、備份以前的字體文件

 cd /usr/share/zabbix/assets/fonts/

 # mv DejaVuSans.ttf DejaVuSans.ttf_bak

 報錯:

 bash-5.0$ mv DejaVuSans.ttf DejaVuSans.ttfbak

 mv: can't rename 'DejaVuSans.ttf': Permission denied

 解決方法:

 docker exec -it -u root  zabbix-nginx /bin/bash

 6、創建鏈接

 ln -s MSYH.TTC DejaVuSans.ttf

 

另一種方法,一鍵替代法

用微軟雅黑字體替代DejaVuSans字體

[root@localhost fonts]# \cp /data/MSYH.TTC `docker inspect zabbix-nginx | grep MergedDir |awk -F '"' '{print $4}'`/usr/share/zabbix/assets/fonts/DejaVuSans.ttf

 

 

 

問題2:監控Zabbix Server

錯誤現象 Zabbix agent is not available (for 3m)

Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused

默認安裝好Zabbix之后自帶一個監視本地系統的配置“Zabbix Server”,無法被檢測到。

 主要原因就是我們是將Zabbix服務器和Zabbix客戶端都安裝到了Docker上

 解決方法:

 打開配置-主機,接口那的ip為127.0.0.1,這個IP是宿主機的IP,需要修改為 zabbix-agent 容器的IP

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM