搭建 Linux 服務(wù)器監(jiān)控的目的是自己有一臺阿里云服務(wù)器內(nèi)存是 2g 的 , 多開一些軟件就會把內(nèi)存和 CPU 使用率弄的很高,最終導致服務(wù)器卡死。
所以基于這個痛點,想知道當前的 CPU 和內(nèi)存是多少。阿里云 ECS 控制臺中也提供對服務(wù)器的監(jiān)控 , 但是為了學習 Linux 服務(wù)器監(jiān)控系統(tǒng) , 還是打算自己搭建一套 。
當然 Linux 服務(wù)器監(jiān)控也有很多,Zabbix 是一個基于 Web 界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案 .
所以基于 Zabbix+Grafana 打造服務(wù)器監(jiān)控系統(tǒng)。
Zabbix
模塊介紹
- Zabbix Server:?負責接收 agent 發(fā)送的報告信息的核心組件,所有配置,統(tǒng)計數(shù)據(jù)及操作數(shù)據(jù)均由其組織進行 .
- Zabbix Agent:?部署在被監(jiān)控主機上,負責收集本地數(shù)據(jù)發(fā)往 Server 端或 Proxy 端 .
- Database Storage: 用戶存儲所有配置信息,以及存儲由 Zabbix Server 收集到的數(shù)據(jù) .
- Web Interface:Zabbix 的 GUI 接口,通常與 Server 運行在同一臺主機上
- Zabbix Proxy: 常用于分布監(jiān)控環(huán)境中,代理 Server 收集部分被監(jiān)控的監(jiān)控數(shù)據(jù)并統(tǒng)一發(fā)往 Server 端 .
原理介紹
Agentd 安裝在被監(jiān)控的主機上,Agent 負責定期收集客戶端本地各項數(shù)據(jù),并發(fā)送至 Zabbix Server 端,Zabbix Server 收到數(shù)據(jù),將數(shù)據(jù)存儲到數(shù)據(jù)庫中,用戶基于 Zabbix WEB 可以看到數(shù)據(jù)在前端展現(xiàn)圖像 .
當 Zabbix 監(jiān)控某個具體的項目,改項目會設(shè)置一個觸發(fā)器閾值,當被監(jiān)控的指標超過該觸發(fā)器設(shè)定的閾值,會進行一些必要的動作,動作包括:發(fā)送信息(郵件、微信、短信)、發(fā)送命令(SHELL 命令、Reboot、Restart、Install 等).
環(huán)境安裝
Zabbix 需要 zabbix-server、zabbix-agent、mysql. 其中 mysql 已經(jīng)在本機安裝了 , 在 dockercompose 文件中 寫上對應(yīng)的 host、user、pwd 即可 .
在 MySQL 中創(chuàng)建 Zabbix 數(shù)據(jù)庫 , 為了后期儲存數(shù)據(jù)使用 .
使用 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, 出現(xiàn)如下頁面說明安裝成功 .
默認賬號:Admin, 密碼:zabbix, 登錄后出現(xiàn)如下頁面 .
配置
修改語言
默認的語言是英文的 , 點擊頭像后展示修改語言選項 , 選擇中文并且更新即可 .
zabbix-agent 配置
之前配置兩個 zabbix-agent-a 和 zabbix-agent-b, 所以要添加兩個 zabbix-agent 來采集數(shù)據(jù)并發(fā)送給 zabbix-server.
在配置 , 選擇主機 , 創(chuàng)建主機 .
配置 zabbix-agent 需要其容器內(nèi)的 ip 地址 , 可以通過
docker exec -it zabbix-agent-b ip addr 命令查看 .
在創(chuàng)建頁面填寫其 ip 和選擇群組 , 點擊保存即可 .
此時添加了兩臺 zabbix-agent.
另外還需要給 zabbix-agent 配置監(jiān)控模版 , 在模版中選擇 Template OS Linux 并且添加即可 .
配置模版完成后 , 在主機列表中 ZBX 顯示綠色說明添加完成 .
添加監(jiān)控數(shù)據(jù)
在首頁儀表盤上 , 選擇常用的圖形 .
在創(chuàng)建頁面選擇 zabbix-agent-server-b 主機和 cpu jumps 監(jiān)控項 .
監(jiān)控數(shù)據(jù)可以控制縮放比例和時間段 .
Grafana
簡介
grafana 是一個跨平臺的開源的度量分析和可視化工具 , 可以通過將采集的數(shù)據(jù)查詢?nèi)缓罂梢暬恼故?.
配置
安裝 grafana
可以使用 grafana 展示 zabbix 的數(shù)據(jù) , 制作圖表展示 .
使用 docker 啟動 grafana.
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 插件
安裝 zabbix 插件 , 進入 grafana 容器執(zhí)行如下命令
docker exec -it grafana /bin/bash 進入容器
grafana-cli plugins install alexanderzobnin-zabbix-app
docker restart grafana 重啟容器
在插件中的 app 中 , 出現(xiàn) zabbix 說明 zabbix 插件安裝成功 .
zabbix 數(shù)據(jù)源
在 Data Sources 中新增一個數(shù)據(jù)源 .
數(shù)據(jù)源配置:type=Zabbix、url、Zabbix 的賬號、Zabbix 的密碼 .
url 格式為:http://ip:8081/api_jsonrpc.php
grafana 面板
在 Dashboards 中新建一個面板 .
把 Panel data source 數(shù)據(jù)源改成 zabbix 數(shù)據(jù)源 .
可用內(nèi)存設(shè)置面板中參數(shù)如下:
Group=Linux servers (這個參數(shù)在 zabbix 設(shè)置過)
Host=zabbix-agent-service-a
Application=Memory
Item=Available memory
grafana 使用模版
在?https://grafana.com/dashboards?中提供很多第三方模版 , 使用 Dashboard Servers Linux 這個模版
復(fù)制模版的 id.
配置模版信息 .
最終在一個面板中展示了當前 CPU、內(nèi)存等 , 相對原始的數(shù)據(jù)展示更加直觀 .
結(jié)語
Linux 服務(wù)器監(jiān)控在實際工作中大部分是運維的工作 , 隨著測試工程師的職責越來越廣了 , 測試運維這個崗位也會在以后的工作中慢慢展開 .文章來源:http://www.zghlxwxcb.cn/news/detail-810781.html
另外像測試組自己的服務(wù)器和在壓測中使用的壓測機器 , 也可以搭建監(jiān)控系統(tǒng)來監(jiān)控數(shù)據(jù) .文章來源地址http://www.zghlxwxcb.cn/news/detail-810781.html
到了這里,關(guān)于使用 Zabbix + Grafana 搭建服務(wù)器監(jiān)控系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!