在ubuntu docker inflxudb(安裝 使用 備份 還原 以及python編碼) telegraf Grafana 我采用telegraf采集數據, 本文計划采用zabbix來才采集數據,仍然用grafana來展示數據(為了節約資源我把telegraf先停掉)
sudo systemctl enable --now telegraf #添加到開機啟動
sudo systemctl disable --now telegraf #從開機啟動移除
systemctl status telegraf #查看telegraf狀態
zabbix
模塊介紹
Zabbix Server:負責接收agent發送的報告信息的核心組件,所有配置,統計數據及操作數據均由其組織進行.
Zabbix Agent:部署在被監控主機上,負責收集本地數據發往Server端或Proxy端.
Database Storage:用戶存儲所有配置信息,以及存儲由Zabbix Server收集到的數據.
Web Interface: Zabbix的GUI接口,通常與Server運行在同一台主機上
Zabbix Proxy:常用於分布監控環境中,代理Server收集部分被監控的監控數據並統一發往Server端.
原理介紹
Agentd安裝在被監控的主機上,Agent負責定期收集客戶端本地各項數據,並發送至Zabbix Server端,Zabbix Server收到數據,將數據存儲到數據庫中,用戶基於Zabbix WEB可以看到數據在前端展現圖像.
當Zabbix監控某個具體的項目,改項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動作,動作包括:發送信息(郵件、微信、短信)、發送命令(SHELL命令、Reboot、Restart、Install等).
環境安裝
zabbix需要zabbix-server、zabbix-agent、mysql.
其中mysql已經在本機安裝了,在dockercompose文件中
寫上對應的host、user、pwd即可.
在mysql中創建zabbix數據庫,為了后期儲存數據使用.
使用docker安zabbix裝,docker-compose.yaml文件如下:
version: '2' services: zabbix-server-service: image: monitoringartist/zabbix-xxl:3.2.6 container_name: zabbix-server-service restart: always ports: - "9999:80" environment: - ZS_DBHost=192.168.100.3 - ZS_DBUser=root - ZS_DBPassword=root zabbix-agent-a: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-a restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-a - ZBX_SERVER_HOST=zabbixserverhost zabbix-agent-b: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-b restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-b - ZBX_SERVER_HOST=zabbixserverhost
啟動命令: docker-compose up -d
查看日志命令: docker logs -f zabbix-server-service
若果mysql是8.0 zabbix 是3.*的版本可能會有如下錯誤 syntax to use near 'identified by 'root'':
網上說下載最新版本也是扯淡,建議用mysql5.7 就能解決了
在這個過程中千萬不要重啟容器 當看到如下圖就表示服務已經啟動了
大概啟動后1到2分鍾登錄zabbix web地址,http://192.169.100.3:9999,出現如下頁面說明安裝成功.
默認賬號:Admin,密碼:zabbix,登錄后出現如下頁面.
配置
修改語言
默認的語言是英文的,點擊頭像后展示修改語言選項,選擇中文並且更新即可.
zabbix-agent配置
之前配置兩個zabbix-agent-a和zabbix-agent-b,所以要添加兩個zabbix-agent來采集數據並發送給zabbix-server.
在配置,選擇主機,創建主機.
配置zabbix-agent需要其容器內的ip地址,可以通過
docker exec -it zabbix-agent-b ip addr命令查看.
在創建頁面填寫其ip和選擇群組,點擊保存即可.
此時添加了兩台zabbix-agent.
另外還需要給zabbix-agent配置監控模版,在模版中選擇Template OS Linux並且添加即可.(這里要點擊添加按鈕)
配置模版完成后,在主機列表中ZBX顯示綠色說明添加完成.
添加監控數據
在首頁儀表盤上,選擇常用的圖形.,在創建頁面選擇zabbix-agent-server-b主機和cpu jumps監控項.
監控數據可以控制縮放比例和時間段.
grafana
簡介
grafana是一個跨平台的開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示.
配置
安裝grafana
可以使用grafana展示zabbix的數據,制作圖表展示.
使用docker啟動grafana.
docker run -d --name=grafana2 -p 3000:3000 -v /var/lib/grafana:/var/lib/grafana grafana/grafana:3.0.4
啟動鏡像完成后,等大概1到2分鍾,在瀏覽器訪問:http://192.168.100.3:300 admin默認賬號和密碼都是.
安裝zabbix插件
安裝zabbix插件,進入grafana容器執行如下命令
docker exec -it grafana /bin/bash #進入容器
grafana-cli plugins install alexanderzobnin-zabbix-app
docker restart grafana #重啟容器
在插件中的app中,出現zabbix說明zabbix插件安裝成功.
這里需要啟動該插件
zabbix數據源
在Data Sources中新增一個數據源.
數據源配置:type=Zabbix、url、Zabbix的賬號、Zabbix的密碼.
url格式為:http://192.168.100.3:9999/api_jsonrpc.php
然后點擊
grafana面板
在Dashboards中新建一個面板.
把Panel data source數據源改成zabbix數據源. 可用內存設置面板中參數如下:
Group=Linux servers (這個參數在zabbix設置過)
Host=zabbix-agent-service-a
Application=Memory
Item=Available memory
grafana使用模版
在https://grafana.com/grafana/dashboards中提供很多第三方模版 Servers Linux這個模版
下載模版的json文件.
配置模版信息.
(我不知道為什么必須要把Zabbix數據源設置為default,不然選擇不了)最終在一個面板中展示了當前cpu、內存等,相對原始的數據展示更加直觀.
參考:
https://testerhome.com/topics/18364
https://www.lengyuewusheng.com/2018/03/18/00032_influxdb-telegraf-Grafana%E7%9B%91%E6%8E%A7%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E4%B8%8Ezabbix%E7%9B%91%E6%8E%A7%E7%9A%84%E5%AF%B9%E6%AF%94/