天天看點

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

搭建 Linux 伺服器監控的目的是防止以下現象:自己有一台阿裡雲伺服器記憶體是 2g 的 , 多開一些軟體就會把記憶體和 CPU 使用率弄的很高,最終導緻伺服器卡死。

是以基于這個痛點,想知道目前的 CPU 和記憶體是多少。阿裡雲 ECS 控制台中也提供對伺服器的監控 , 但是為了學習 Linux 伺服器監控系統 , 還是打算自己搭建一套。

當然 Linux 伺服器監控也有很多,Zabbix 是一個基于 Web 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。

是以基于 Zabbix+Grafana 打造伺服器監控系統。

Zabbix

子產品介紹

  • Zabbix Server: 負責接收 agent 發送的報告資訊的核心元件,所有配置,統計資料及操作資料均由其組織進行。
  • Zabbix Agent: 部署在被監控主機上,負責收集本地資料發往 Server 端或 Proxy 端。
  • Database Storage:使用者存儲所有配置資訊,以及存儲由 Zabbix Server 收集到的資料。
  • Web Interface:Zabbix 的 GUI 接口,通常與 Server 運作在同一台主機上。
  • Zabbix Proxy:常用于分布監控環境中,代理 Server 收集部分被監控的監控資料并統一發往 Server 端。

原理介紹

Agent 安裝在被監控的主機上,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,dockercompose 檔案如下:

version: '2'
services:
zabbix-server-service:
image: monitoringartist/zabbix-xxl:3.2.6
container_name: zabbix-server-service
restart: always
ports:
- "8081:80"
environment:
- ZS_DBHost=192.168.1.103
- ZS_DBUser=root
- ZS_DBPassword=123321
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

           

大概啟動後 1 到 2 分鐘登入 zabbix web 位址 http://127.0.0.1:80801, 出現如下頁面說明安裝成功。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×813 98.1 KB

預設賬号:Admin,密碼:zabbix,登入後出現如下頁面。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×565 86.1 KB

配置

修改語言

預設的語言是英文的 , 點選頭像後展示修改語言選項 , 選擇中文并且更新即可。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×479 83 KB

zabbix-agent 配置

之前配置兩個 zabbix-agent-a 和 zabbix-agent-b,是以要添加兩個 zabbix-agent 來采集資料并發送給 zabbix-server。

在配置,選擇主機,建立主機。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×295 49.3 KB

配置 zabbix-agent 需要其容器内的 ip 位址 , 可以通過

docker exec -it zabbix-agent-b ip addr 指令檢視。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×301 92.4 KB

在建立頁面填寫其 ip 和選擇群組 , 點選儲存即可。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×808 63.5 KB

此時添加了兩台 zabbix-agent。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×350 60.3 KB

另外還需要給 zabbix-agent 配置監控模版 , 在模版中選擇 Template OS Linux 并且添加即可。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×472 49.9 KB

配置模版完成後 , 在主機清單中 ZBX 顯示綠色說明添加完成。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×382 67.6 KB

添加監控資料

在首頁儀表盤上 , 選擇常用的圖形。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×651 80.5 KB

在建立頁面選擇 zabbix-agent-server-b 主機和 cpu jumps 監控項。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×235 43.8 KB

監控資料可以控制縮放比例和時間段。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×513 77.7 KB

Grafana

簡介

grafana 是一個跨平台的開源的度量分析和可視化工具 , 可以通過将采集的資料查詢然後可視化的展示。

配置

安裝 grafana

可以使用 grafana 展示 zabbix 的資料 , 制作圖表展示。

使用 docker 啟動 grafana。

1、docker run -d --name=grafana2 -p 7777:3000 -v /var/lib/grafana:/var/lib/grafana grafana/grafana:3.0.4

啟動鏡像完成後 , 等大概 1 到 2 分鐘 , 在浏覽器通路:http://127.0.0.1:7777。 預設賬号和密碼都是 admin。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×638 87.5 KB

安裝 zabbix 插件

安裝 zabbix 插件 , 進入 grafana 容器執行如下指令

docker exec -it grafana /bin/bash 進入容器
grafana-cli plugins install alexanderzobnin-zabbix-app
docker restart grafana 重新開機容器

           

在插件中的 app 中 , 出現 zabbix 說明 zabbix 插件安裝成功。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×246 66.5 KB

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×683 61.3 KB

zabbix 資料源

在 Data Sources 中新增一個資料源。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×668 95.1 KB

資料源配置:type=Zabbix、url、Zabbix 的賬号、Zabbix 的密碼。

url 格式為:http://ip:8081/api_jsonrpc.php

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×1002 55.4 KB

grafana 面闆

在 Dashboards 中建立一個面闆。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×785 101 KB

把 Panel data source 資料源改成 zabbix 資料源。

可用記憶體設定面闆中參數如下:

Group=Linux servers (這個參數在 zabbix 設定過)

Host=zabbix-agent-service-a

Application=Memory

Item=Available memory

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×404 41.8 KB

grafana 使用模版

在 Dashboards | Grafana Labs 中提供很多第三方模版 , 使用 Dashboard Servers Linux 這個模版

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×406 48.5 KB

複制模版的 id

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×650 61.6 KB

配置模版資訊

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×592 46.2 KB

最終在一個面闆中展示了目前 CPU、記憶體等,相對原始的資料展示更加直覺。

技術分享 | 使用 Zabbix + Grafana 搭建伺服器監控系統

image1080×582 77.9 KB

結語

Linux 伺服器監控在實際工作中大部分是運維的工作,随着測試工程師的職責越來越廣了,測試運維這個崗位也會在以後的工作中慢慢展開。

另外像測試組自己的伺服器和在壓測中使用的壓測機器,也可以搭建監控系統來監控資料。

更多技術文章:

https://qrcode.ceba.ceshiren.com/link?from=toutiao&name=toutiao&project_id=qrcode&author=Muller

繼續閱讀