在ubuntu docker inflxudb(安裝 使用 備份 還原 以及python編碼) telegraf Grafana 我採用telegraf採集數據, 本文計劃採用zabbix來才採集數據,仍然用grafana來展現數據(爲了節約資源我把telegraf先停掉)php
sudo systemctl enable --now telegraf #添加到開機啓動
sudo systemctl disable --now telegraf #從開機啓動移除
systemctl status telegraf #查看telegraf狀態html
Zabbix Server:負責接收agent發送的報告信息的核心組件,全部配置,統計數據及操做數據均由其組織進行.前端
Zabbix Agent:部署在被監控主機上,負責收集本地數據發往Server端或Proxy端.python
Database Storage:用戶存儲全部配置信息,以及存儲由Zabbix Server收集到的數據.mysql
Web Interface: Zabbix的GUI接口,一般與Server運行在同一臺主機上web
Zabbix Proxy:經常使用於分佈監控環境中,代理Server收集部分被監控的監控數據並統一發往Server端.sql
Agentd安裝在被監控的主機上,Agent負責按期收集客戶端本地各項數據,併發送至Zabbix Server端,Zabbix Server收到數據,將數據存儲到數據庫中,用戶基於Zabbix WEB能夠看到數據在前端展示圖像.docker
當Zabbix監控某個具體的項目,改項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動做,動做包括:發送信息(郵件、微信、短信)、發送命令(SHELL命令、Reboot、Restart、Install等).數據庫
zabbix須要zabbix-server、zabbix-agent、mysql.
其中mysql已經在本機安裝了,在dockercompose文件中
寫上對應的host、user、pwd便可.json
在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-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展現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插件,進入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
而後點擊
在Dashboards中新建一個面板.
把Panel data source數據源改爲zabbix數據源. 可用內存設置面板中參數以下:
Group=Linux servers (這個參數在zabbix設置過)
Host=zabbix-agent-service-a
Application=Memory
Item=Available memory
在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/