摘要:監控方案監控方案我選擇了,要實現對每個容器信息的監控,需要插件。宿主機直接運行容器的方式運行不支持數據的監控,想要監控數據,得直接在宿主機上運行,并加載,參看。代理程序的接口填寫要監控的。在監控最新數據中查看監控數據。
前言
監控方案這兩天研究了一下容器監控的問題,配置的過程中網上基本上找不到成型的教程文章,所以這篇文章記錄一下,希望能給有需要的人帶來幫助。
監控方案我選擇了 Zabbix,要實現對每個容器信息的監控,需要 zabbix-docker-monitoring 插件。
配置服務端Zabbix 是 C/S 架構,服務端最好能配置在一臺獨立的宿主機上。
服務端 docker-compose 文件:
version: "2" services: zabbix: image: monitoringartist/zabbix-xxl ports: - 8080:80 - 10051:10051 volumes: - /etc/localtime:/etc/localtime:ro depends_on: - zabbix.db environment: ZS_DBHost: zabbix.db ZS_DBUser: zabbix ZS_DBPassword: zabbix_password zabbix.db: image: monitoringartist/zabbix-db-mariadb volumes: - /backups:/backups - /etc/localtime:/etc/localtime:ro volumes_from: - zabbix-db-storage environment: MARIADB_USER: zabbix MARIADB_PASS: zabbix_password zabbix-db-storage: image: busybox:latest volumes: - /var/lib/mysql容器方式運行 Zabbix-agent
可以無需在宿主機安裝 Zabbix-agent,直接運行官方的容器即可。
運行 Zabbix-agent 容器:docker run --name=zabbix-agent-xxl -h $(hostname) -p 10050:10050 -v /:/rootfs -v /var/run:/var/run -e "ZA_Server=配置容器" -d monitoringartist/zabbix-agent-xxl-limited:latest
修改 ZA_Server,直接改成服務器 ip。
如果想覆蓋容器中 agent 的配置變量,可以在 run 的時候使用 -e ZA_Variable=value 的方法,但是對 AllowRoot, LoadModulePath, LoadModule, LogType 的配置無法覆蓋,其中 AllowRoot 的默認值就是 1,參看 Github Issue。
宿主機直接運行 Zabbix-agent容器的方式運行 zabbix-agent 不支持 docker.xnet 數據的監控,想要監控 docker.xnet 數據,得直接在宿主機上運行 zabbix-agent,并加載 zabbix_module_docker.so,參看 Github Issue。
1. 添加 zabbix 用戶和組groupadd zabbix useradd -g zabbix zabbix2. 編譯安裝 zabbix-agent
apt-get install -y wget autoconf automake gcc subversion make pkg-config cd ~ mkdir zabbix32 cd zabbix32 svn co svn://svn.zabbix.com/branches/3.2 . ./bootstrap.sh ./configure --enable-agent make install3. 編譯 zabbix_module_docker.so:
cd ~/zabbix32 mkdir src/modules/zabbix_module_docker cd src/modules/zabbix_module_docker wget https://raw.githubusercontent.com/monitoringartist/Zabbix-Docker-Monitoring/master/src/modules/zabbix_module_docker/zabbix_module_docker.c wget https://raw.githubusercontent.com/monitoringartist/Zabbix-Docker-Monitoring/master/src/modules/zabbix_module_docker/Makefile make cp zabbix_module_docker.so /usr/local/lib/zabbix/agent/4. 啟動 zabbix_agentd
使用 systemd 管理進程,關于 systemd 可參考 阮一峰的網絡日志 ,創建 /lib/systemd/system/zabbix-agentd.service 文件:
[Unit] Description=Zabbix Agent After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf" Type=forking Restart=on-failure PIDFile=/tmp/zabbix_agentd.pid KillMode=control-group ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s [Install] WantedBy=multi-user.target
執行下面命令告知 systemctl 如何啟動 zabbix-agentd
sudo systemctl enable zabbix-agentd.service5. 配置加載項
修改 zabbix-agentd 配置文件 /usr/local/etc/zabbix_agentd.conf 中的下面幾個參數:
Server=Zabbix-Server-IP ServerActive=Zabbix-Server-IP Hostname=Current-Host-Name Timeout=30 LoadModulePath=/usr/local/lib/zabbix/agent LoadModule=zabbix_module_docker.so
運行下面命令啟動 zabbix-agentd
systemctl start zabbix-agentd.service6. 啟動失敗分析
如果啟動失敗,查看 /tmp/zabbix_agentd.log 文件,如不存在,可手動創建,所屬用戶為 zabbix:zabbix。
報錯:
zabbix_agentd [xxxxx]: cannot attach to existing shared memory: [13] Permission denied cannot allocate shared memory for collector
可能是 zabbix_module_docker.so 編譯錯誤,重新編譯一次即可。
設置監控 1. 登錄管理系統瀏覽器訪問 http://ZabbixServerIP:Port,可以看到 zabbix 服務器 web 管理界面,默認登錄帳號是 Admin/zabbix (注意 Admin 首字母大寫)。
為了方便操作,可將系統語言設置為中文。
2. 導入模板在 配置 > 模板 里面導入監控模板:zabbix-template-app-docker.xml。
注:模板里有一些已經配置好的監控方案,可以參考取舍。
3. 創建主機群組在 配置 > 主機群組 里創建主機群組,命名為 Docker Servers。
4. 創建主機在 配置 > 主機 里面創建一個主機。
群組選擇 Docker Servers。
agent代理程序的接口 填寫要監控的 agent ip。
模板 選項卡中選擇第二步中導入的模板,添加更新。
在 監控 > 最新數據 中查看監控數據。
參考How To Install Zabbix on Ubuntu & Configure it to Monitor Multiple VPS Servers
monitoringartist/zabbix-3.0-xxl
monitoringartist/zabbix-agent-xxl-limited
zabbix-docker-monitoring
如何選擇Docker監控方案
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27946.html
摘要:方案匯總一開源方案采集展示報警二商業方案三云廠商騰訊云阿里云百度云華為云四主機監控五日志監控六服務監控七存儲后端腦圖本文為容器監控實踐系列文章,完整內容見 概述 隨著越來越多的線上服務docker化,對容器的監控、報警變得越來越重要,容器監控有多種形態,有些是開源的(如promethues),而另一些則是商業性質的(如Weave),有些是集成在云廠商一鍵部署的(Rancher、谷歌云)...
摘要:使用有一段時間了,打算把自己實踐過程中的一些理解和感悟記錄下來。目錄實踐一了解架構實踐二使用教程實踐三下構建開發環境實踐四環境容器化實踐五生產環境容器化實踐六容器監控實踐七提升幸福感實踐八構建開發環境實踐九生產環境優化參考源碼分析系列文章 使用 docker 有一段時間了,打算把自己實踐過程中的一些理解和感悟記錄下來。 系列文章發布在 SegmentFault 上我的專欄 Tairy,...
摘要:此刻的后手指依舊飛速地敲打鍵盤,絲毫沒有要停不下來意思。閱讀本期技術周刊,你不光能弄明白什么是,使用的意義何在,還將被傳授秘籍,以達的境界。周刊篩選的每篇內容,是作者的獨到見解,踩坑總結和經驗分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,聽到后排動感十足的清脆鍵盤響,我就能猜到公司程序員定...
摘要:在和未普及之前,要實現的搭建確實要費一番工夫的,不過現在則很簡單就可以實現的監控了。下載鏡像使用方式下載極為方便,只需要執行如下命令即可,當然前提是需要安裝了。 一、背景 對于LNMP環境下的開發者來說,mysql是非常重要的一環,同時mysql的性能監控也是開發者所需要關注的一環;如果大家使用阿里云的RDS會感覺到其監控功能非常好用,但如果開發者使用的是自建數據庫,該怎么去搭建則需則...
閱讀 1173·2021-09-10 10:51
閱讀 905·2019-08-30 15:53
閱讀 2732·2019-08-30 12:50
閱讀 983·2019-08-30 11:07
閱讀 1997·2019-08-30 10:50
閱讀 3604·2019-08-29 18:47
閱讀 1317·2019-08-29 18:44
閱讀 1604·2019-08-29 17:01