目錄
部署zabbix
1.數據庫准備
- 下載SQL腳本http://coldsmog.cn:9000/blog/create.sql.gz
- 創建mysql數據庫zabbix. 並創建授權用戶zabbix,密碼zabbix,
# 注意編碼格式
create database zabbix character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix.* TO 'zabbix'@'%';
FLUSH PRIVILEGES;
- 數據庫的服務器bash執行
zcat create.sql.gz | mysql -uzabbix -p zabbix
系統將提示您輸入新創建的數據庫密碼
2.安裝主控程序 zabbix-server
要求1:內存大於2G,硬盤大於2G
要求2:能訪問被監控服務器的10050端口
要求3:服務器對外暴露自身的80、8443、10051端口
賬密:Admin/zabbix
# docker-compose.yml
version: '3'
services:
zabbix-server:
image: 'zabbix/zabbix-server-mysql:centos-5.2-latest'
restart: always
container_name: zabbix-server-mysql
environment:
- DB_SERVER_HOST=101.201.XX.XX
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- ZBX_DEBUGLEVEL=2
ports:
- '10051:10051'
volumes:
- /var/lib/zabbix:/var/lib/zabbix
zabbix-web:
image: 'zabbix/zabbix-web-nginx-mysql:centos-5.2-latest'
restart: always
container_name: zabbix-web
links:
- zabbix-server
environment:
- DB_SERVER_HOST=101.201.XX.XX
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- ZBX_SERVER_HOST=101.201.XX.XX
- PHP_TZ=Asia/Shanghai
ports:
- '80:8080'
zabbix5.0中文亂碼問題
zabbinx的web組件 使用了自己的字體,故部分中文會顯示為吅。
字體為/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
解決方案:
-
從window系統
C:\Windows\Fonts目錄下挑選自己喜歡的字體 -
將字體上傳至服務器,此處使用了免費商用字體:阿里普惠體 Alibaba.ttf
-
使用docker cp 覆蓋原字體,參考如下
# 備份原字體 docker cp 52fcd1fc30a1:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf DejaVuSans.ttf.bak # 覆蓋字體 docker cp Alibaba.ttf 52fcd1fc30a1:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf -
重啟docker鏡像
docker restart 52fcd1fc30a1
3.安裝監控子程序
要求1: 內存大於500m,硬盤大於1G
要求2:服務器對外暴露自身的80、8443、10050端口
從二進制包安裝agent2
# 前往http://repo.zabbix.com/zabbix/ 選擇平台和版本的.noarch.rpm文件
# 安裝軟件倉庫配置包,這個包包含了 yum(軟件包管理器)的配置文件
rpm -ivh http://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm
# 國內用戶可以直接下載阿里的zabbix鏡像
# yum localinstall -y https://mirrors.aliyun.com/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-agent2-5.2.6-1.el7.x86_64.rpm
# 安裝agent監控子程序
yum install zabbix-agent2
# 啟動agent
systemctl start zabbix-agent2
# 修改配置 其中172.16.19.XX為server服務器的IP,自行修改
sed -i '/^Server=/cServer=172.16.19.XX' /etc/zabbix/zabbix_agent2.conf
sed -i '/^ServerActive=/cServerActive=172.16.19.XX' /etc/zabbix/zabbix_agent2.conf
sed -i '/^Hostname=/cHostname='$(hostname) /etc/zabbix/zabbix_agent2.conf
sed -i '/^LogFileSize=/cLogFileSize=5' /etc/zabbix/zabbix_agent2.conf
# 重啟agent 並放開端口
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
從docker安裝agent2
version: '3'
services:
zabbix-agent:
image: 'zabbix/zabbix-agent2:alpine-5.2-latest'
restart: always
container_name: zabbix-agent2
privileged: true # 因為是監控軟件,需要開啟特權
environment:
- ZBX_HOSTNAME=zabbix_hostname
- ZBX_METADATAITEM=system.uname
- ZBX_SERVER_HOST=172.16.19.162
ports:
- '10050:10050'
volumes:
- /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
- /var/lib/zabbix/enc:/var/lib/zabbix/enc
- /var/lib/zabbix/modules:/var/lib/zabbix/modules
這個是自行編寫的一鍵腳本,可以參考
mkdir -p /usr/local/zabbix-agent
cd /usr/local/zabbix-agent
# 可以用自己的docker-compose.yml替換
curl -o docker-compose.yml http://coldsmog.cn:9000/xindeco/zabbix-agent2.yml
sed -i 's/zabbix_hostname/'$(hostname)'/' docker-compose.yml
docker-compose up -d
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
# wget http://coldsmog.cn:9000/xindeco/installZabbixAgent.sh
# chmod u+x installZabbixAgent.sh
注意:agent2沒有oracle的客戶端支持,需要自己改造,我寫了一個發布在dockerhub上
version: '3'
services:
zabbix-agent:
image: 'coldsmog/zabbix-agent2-oracle:latest'
restart: always
container_name: zabbix-agent2
privileged: true # 因為是監控軟件,需要開啟特權
environment:
- ZBX_HOSTNAME=zabbix_hostname
- ZBX_METADATAITEM=system.uname
- ZBX_SERVER_HOST=172.16.19.162
ports:
- '10050:10050'
volumes:
- /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
- /var/lib/zabbix/enc:/var/lib/zabbix/enc
- /var/lib/zabbix/modules:/var/lib/zabbix/modules
