您好,登錄后才能下訂單哦!
使用docker如何部署zabbix_agent?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
zabbix_agent部署:
建議:zabbix_agent使用docker-compose方式單獨部署
啟動方式:
1、run方式啟動
docker run --rm --network zabbix --name zabbix_agent--link zabbix_server:zabbix-server -e ZBX_HOSTNAME="mythird" -e ZBX_SERVER_PORT="10051" -e ZBX_SERVER_HOST="172.22.0.3" -p 3998:10050 -d zabbix/zabbix-agent:alpine-3.0-latest
2、docker-compose.yml
目錄結構:
[root@container1 zabbix_agent]# cat etc/env_agent ZBX_SERVER_HOST=172.22.0.3 ZBX_SERVER_PORT=10051 ZBX_HOSTNAME=kgtest ZBX_LISTENPORT=3050 ZBX_LOGTYPE=file ZBX_LOGFILE=/tmp/zabbix_agentd.log
a、與zabbix_server/zabbix_proxy部署在同一個docker-compose.yml時,唯一的區別是:links的設置,其格式:servicename: name of zabbix
zabbix_agent: image: zabbix/zabbix-agent:alpine-3.0-latest container_name: zabbix_agent ports: - "10050:10050" environment: ZBX_HOSTNAME: kg volumes: - /etc/localtime:/etc/localtime:ro links: - zabbix_server:zabbix-server user: root privileged: true restart: always networks: - zabbix
b、單獨部署:
A、docker的bridge模式:如果是在同一個機器上,需要使用和zabbix_server/zabbix_proxy相同的網絡
[root@container1 zabbix_agent]# cat docker-compose.yml version: "3" services: zabbix_agent: image: zabbix/zabbix-agent:alpine-3.0-latest container_name: zabbix_agent3 ports: - "3999:3050" env_file: - ./etc/env_agent volumes: - /etc/localtime:/etc/localtime:ro - ./etc/docker-entrypoint.sh:/usr/bin/docker-entrypoint.sh:ro - ./etc/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d - ./scripts:/data/zabbix/scripts - ./logs:/tmp user: root privileged: true restart: always networks: - zabbix networks: zabbix: external: true
B、使用docker的host模式:為了監控tcp連接數
注意:使用host模式時,一定要需在防火墻中開放zabbix_agent映射在本機的端口
[root@kg zabbix_agent]# cat docker-compose.yml version: "3" services: zabbix_agent: image: zabbix/zabbix-agent:alpine-3.0-latest container_name: zabbix_agent ports: - "3050:3050" env_file: - ./etc/env_agent volumes: - /etc/localtime:/etc/localtime:ro - ./etc/docker-entrypoint.sh:/usr/bin/docker-entrypoint.sh:ro - ./etc/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d - ./scripts:/data/zabbix/scripts - ./logs:/tmp user: root privileged: true restart: always #為了實現tcp連接監控,需要使用host網絡模式 network_mode: host
檢查zabbix_agent是否正常工作:
首先啟動zabbix_agent后,在server/proxy容器中先測試一下該agent是否可到達:
web界面設置:
a、如果未設置為自動發現agent方式時,需要手動添加agent主機
agent和server/proxy在同一臺機器時,這時候的IP一定是docker分配的內網ip,端口為容器中端口,而不是映射到本機的端口
b、設置為自動發現agent機器
注意:如果設置為添加到某個主機群組時,需要先創建該主機群組
可能出現問題:
1、報錯:temporarily disabling Zabbix agent checks on host "kgtest": host unavailable
解決方案:
a、如果是bridge模式,請檢查一下agent的ZBX_HOSTNAME是否和主機配置中的主機名相同
b、如果是host模式,請檢查一下防火墻是否已開放agent映射到本機端口。測試: telnet 本機IP port
2、報錯:Received empty response from Zabbix Agent at [192.168.5.114]. Assuming that agent dropped connection because of access permissions.
其中,192.168.5.114為agent的外網/內網IP
原因:
a、使用zabbix_proxy代理:agent的ZBX_SERVER_HOST設置為zabbix_proxy的IP(172.22.0.6),但是web界面中的主機配置中卻選擇無agent代理程序。
解決方案:
選擇使用指定的agent代理程序即可
b、直連zabbix_server:
A、agent的ZBX_SERVER_HOST設置為127.0.0.1而不是zabbix_server的IP(172.22.0.3)
解決方案:
將agent的ZBX_SERVER_HOST設置為zabbix_server的IP
B、zabbix_agent中日志報錯:Message from 172.20.0.6 is missing header. Message ignored.
原因:這是因為zabbix_agent和zabbix_server版本不同不兼容造成的,zabbix_agent使用了新版本,但是zabbix_server使用舊版本造成的。
解決方案:檢查一下zabbix_agent和zabbix_server版本
3、發現在中文界面進行自動發現時,出現以下報錯:
切換為英文版界面后在操作就沒有任何問題
需要更改zabbix_server中mysql中的character_set_server的編碼格式。發現在線操作mysql方式無法解決,需要更改一下zabbix_server中的mysql服務啟動腳本,解決方案,可以查看一下我的另外一篇文章《docker部署zabbix_server》
關于使用docker如何部署zabbix_agent問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。