用docker來安裝zabbix總結


在操作系統上直接部署安裝zabbix太麻煩了,正好借這個機會研究學習下docker。

使用CentOS7最小安裝進行后續配置。

配置各種源加快部署安裝的速度

配置CentOS源和Zabbix安裝程序的yum源

 

#安裝系統需要的管理工具
yum install -y bind-utils net-tools wget unzip 
yum install -y yum-utils device-mapper-persistent-data lvm2
#配置使用阿里的centos源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#使用阿里的docker源安裝docker
sudo yum-config-manager --add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum makecache fast
#安裝免費社區版
sudo yum -y install docker-ce
systemctl start docker
#設置開機自動啟動
systemctl enable docker

讓Docker使用國內的倉庫

#編輯docker配置文件,使用國內倉庫進行鏡像下載
vi /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
#重啟docker加載配置
systemctl restart docker

 

創建Docker容器

創建MySQL容器

注意!指定UTF8字符集為重要參數,否則安裝后在配置過程中,不能使用中文字符。

 

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" \
-v /data/zabbix/mysql:/var/lib/mysql \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
 

創建Zabbix數據庫容器

 

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" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

 

創建Zabbix Web容器

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:80 \
-d zabbix/zabbix-web-nginx-mysql:latest

這樣你就可以通過IP地址直接訪問到Zabbix了。用戶名和密碼是:Admin/zabbix

設置這些容器可以跟隨Docker啟動

#可以試用docker ps查看容器的id號
docker update --restart=always 容器id號

安裝后續問題

Zabbix繪制圖形中文字符亂碼

需要安裝中文字體來解決

#找個地方下載文泉驛中文字體
wget http://xze.197946.com/wenquanyiziti.zip
unzip wenquanyiziti.zip
#將解壓縮的字體拷貝到容器中
docker cp ~/文泉驛點陣正黑.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/wqy.ttf
#進入容器返回的終端進行之后配置,我覆蓋了默認字體文件
docker exec -it zabbix-web-nginx-mysql bash
cp DejaVuSans.ttf DejaVuSans.ttf.bak
mv wqy.ttf DejaVuSans.ttf

Zabbix繪制圖形的時間不正確

#進入容器的終端執行下面命令修改時區
docker exec -it zabbix-web-nginx-mysql bash
vi /usr/share/zabbix/include/config.inc.php
#第一行添加如下內容,無需重啟直接生效
date_default_timezone_set('Asia/Shanghai');

Zabbix儀表板提示“Zabbix agent is not available (for 3m)”

這其實是因為默認安裝好Zabbix之后自帶一個監視本地系統的配置“Zabbix Server”。使用Docker安裝幾個容器后默認沒有安裝zabbix-agent,自然無法鏈接到本機自己的代理。

解決的辦法是直接在真機上安裝個zabbix-agent不就解決了嗎?沒有必要再創建一個zabbix-agent容器。這里我直接把zabbix-agent安裝在Centos上了,沒有創建容器。

配置–主機–Zabbix server將agent代理程序的接口更改為“172.17.0.1”即可。

#安裝zabbix 軟件源
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# 安裝zabbix-agent
yum install zabbix-sender zabbix-agent zabbix-get
#在/etc/zabbix/zabbix_agentd.conf中更改:

Server=<zbx-server的ip例如172.17.0.3>
ServerActive=<zbx-server的ip例如172.17.0.3>
Hostname=<本機的名字> Zabbix server我沒有改動
 
#設置啟動和開機項
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
#允許訪問本地的10050端口
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
#配置是否正確,可以進入容器中測試
docker exec -it zabbix-server-mysql bash
zabbix_get -s 172.17.0.1 -k system.cpu.num

 

 


免責聲明!

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



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