摘要:監(jiān)控方案監(jiān)控方案我選擇了,要實現(xiàn)對每個容器信息的監(jiān)控,需要插件。宿主機直接運行容器的方式運行不支持數(shù)據(jù)的監(jiān)控,想要監(jiān)控數(shù)據(jù),得直接在宿主機上運行,并加載,參看。代理程序的接口填寫要監(jiān)控的。在監(jiān)控最新數(shù)據(jù)中查看監(jiān)控數(shù)據(jù)。
前言
監(jiān)控方案這兩天研究了一下容器監(jiān)控的問題,配置的過程中網(wǎng)上基本上找不到成型的教程文章,所以這篇文章記錄一下,希望能給有需要的人帶來幫助。
監(jiān)控方案我選擇了 Zabbix,要實現(xiàn)對每個容器信息的監(jiān)控,需要 zabbix-docker-monitoring 插件。
配置服務(wù)端Zabbix 是 C/S 架構(gòu),服務(wù)端最好能配置在一臺獨立的宿主機上。
服務(wù)端 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,直接改成服務(wù)器 ip。
如果想覆蓋容器中 agent 的配置變量,可以在 run 的時候使用 -e ZA_Variable=value 的方法,但是對 AllowRoot, LoadModulePath, LoadModule, LogType 的配置無法覆蓋,其中 AllowRoot 的默認值就是 1,參看 Github Issue。
宿主機直接運行 Zabbix-agent容器的方式運行 zabbix-agent 不支持 docker.xnet 數(shù)據(jù)的監(jiān)控,想要監(jiān)控 docker.xnet 數(shù)據(jù),得直接在宿主機上運行 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 管理進程,關(guān)于 systemd 可參考 阮一峰的網(wǎng)絡(luò)日志 ,創(chuàng)建 /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
執(zhí)行下面命令告知 systemctl 如何啟動 zabbix-agentd
sudo systemctl enable zabbix-agentd.service5. 配置加載項
修改 zabbix-agentd 配置文件 /usr/local/etc/zabbix_agentd.conf 中的下面幾個參數(shù):
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 文件,如不存在,可手動創(chuàng)建,所屬用戶為 zabbix:zabbix。
報錯:
zabbix_agentd [xxxxx]: cannot attach to existing shared memory: [13] Permission denied cannot allocate shared memory for collector
可能是 zabbix_module_docker.so 編譯錯誤,重新編譯一次即可。
設(shè)置監(jiān)控 1. 登錄管理系統(tǒng)瀏覽器訪問 http://ZabbixServerIP:Port,可以看到 zabbix 服務(wù)器 web 管理界面,默認登錄帳號是 Admin/zabbix (注意 Admin 首字母大寫)。
為了方便操作,可將系統(tǒng)語言設(shè)置為中文。
2. 導(dǎo)入模板在 配置 > 模板 里面導(dǎo)入監(jiān)控模板:zabbix-template-app-docker.xml。
注:模板里有一些已經(jīng)配置好的監(jiān)控方案,可以參考取舍。
3. 創(chuàng)建主機群組在 配置 > 主機群組 里創(chuàng)建主機群組,命名為 Docker Servers。
4. 創(chuàng)建主機在 配置 > 主機 里面創(chuàng)建一個主機。
群組選擇 Docker Servers。
agent代理程序的接口 填寫要監(jiān)控的 agent ip。
模板 選項卡中選擇第二步中導(dǎo)入的模板,添加更新。
在 監(jiān)控 > 最新數(shù)據(jù) 中查看監(jiān)控數(shù)據(jù)。
參考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監(jiān)控方案
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27946.html
摘要:方案匯總一開源方案采集展示報警二商業(yè)方案三云廠商騰訊云阿里云百度云華為云四主機監(jiān)控五日志監(jiān)控六服務(wù)監(jiān)控七存儲后端腦圖本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 概述 隨著越來越多的線上服務(wù)docker化,對容器的監(jiān)控、報警變得越來越重要,容器監(jiān)控有多種形態(tài),有些是開源的(如promethues),而另一些則是商業(yè)性質(zhì)的(如Weave),有些是集成在云廠商一鍵部署的(Rancher、谷歌云)...
摘要:方案匯總一開源方案采集展示報警二商業(yè)方案三云廠商騰訊云阿里云百度云華為云四主機監(jiān)控五日志監(jiān)控六服務(wù)監(jiān)控七存儲后端腦圖本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 概述 隨著越來越多的線上服務(wù)docker化,對容器的監(jiān)控、報警變得越來越重要,容器監(jiān)控有多種形態(tài),有些是開源的(如promethues),而另一些則是商業(yè)性質(zhì)的(如Weave),有些是集成在云廠商一鍵部署的(Rancher、谷歌云)...
摘要:使用有一段時間了,打算把自己實踐過程中的一些理解和感悟記錄下來。目錄實踐一了解架構(gòu)實踐二使用教程實踐三下構(gòu)建開發(fā)環(huán)境實踐四環(huán)境容器化實踐五生產(chǎn)環(huán)境容器化實踐六容器監(jiān)控實踐七提升幸福感實踐八構(gòu)建開發(fā)環(huán)境實踐九生產(chǎn)環(huán)境優(yōu)化參考源碼分析系列文章 使用 docker 有一段時間了,打算把自己實踐過程中的一些理解和感悟記錄下來。 系列文章發(fā)布在 SegmentFault 上我的專欄 Tairy,...
摘要:此刻的后手指依舊飛速地敲打鍵盤,絲毫沒有要停不下來意思。閱讀本期技術(shù)周刊,你不光能弄明白什么是,使用的意義何在,還將被傳授秘籍,以達的境界。周刊篩選的每篇內(nèi)容,是作者的獨到見解,踩坑總結(jié)和經(jīng)驗分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,聽到后排動感十足的清脆鍵盤響,我就能猜到公司程序員定...
摘要:在和未普及之前,要實現(xiàn)的搭建確實要費一番工夫的,不過現(xiàn)在則很簡單就可以實現(xiàn)的監(jiān)控了。下載鏡像使用方式下載極為方便,只需要執(zhí)行如下命令即可,當然前提是需要安裝了。 一、背景 對于LNMP環(huán)境下的開發(fā)者來說,mysql是非常重要的一環(huán),同時mysql的性能監(jiān)控也是開發(fā)者所需要關(guān)注的一環(huán);如果大家使用阿里云的RDS會感覺到其監(jiān)控功能非常好用,但如果開發(fā)者使用的是自建數(shù)據(jù)庫,該怎么去搭建則需則...
閱讀 1169·2021-09-10 10:51
閱讀 903·2019-08-30 15:53
閱讀 2728·2019-08-30 12:50
閱讀 982·2019-08-30 11:07
閱讀 1996·2019-08-30 10:50
閱讀 3601·2019-08-29 18:47
閱讀 1314·2019-08-29 18:44
閱讀 1602·2019-08-29 17:01