Grafana & Graphite & Collectd:監控系統


簡介


  • 監控是運維工作中的一個重要組成部分,今天介紹一套新的監控工具,方便好用,擴展性強,這套工具有三個組件,Grafana & Graphite & Collectd;

  • Grafana 是一個開源的強有力的數據展示、量化分析工具,數據源包括 graphite、prometheus、mysql、influxdb 等等,可以直接在頁面上組裝語句,另外還可以對資源實現可用性和性能監控報警,同時還支持集成OpenLDAP;

  • Graphite 是一個用Python寫的開源的監控繪圖工具,由三個組建組成,分別是 carbon(基於 Twisted 的進程,用來接收數據)whisper(專門存儲時間序列類型數據的小型數據庫)graphite-web(基於 Django 的網頁應用程序),我們這里使用其存儲監控數據;

  • Collectd 是一個用C語言開發的守護進程,能夠周期性的收集系統和應用程序的性能指標,同時給各種存儲方式提供不同的存儲機制,我們這里使用其收集數據並將數據推送到 graphite 中存儲;

  • 目前雲平台使用普遍且方便,大多數雲平台有完善詳盡的監控預警系統,但對於業務需要使用多種雲平台或混合雲的情況卻較難應對;這套監控體系可綜合各種系統監控、業務監控、業務數據展示等功能,統一入口,可謂運維必備利器;現將該系統的創建分享方向給大家,希望對需要的小伙伴有所幫助;

  • 邏輯結構圖如下:
    img-w500

  • 下圖為grafana 可以接收的數據源列表
    img-w500

graphite 部署


  • 數據做持久存儲
docker run -d \
 --name ops-graphite \
 --restart=always \
 -p 8880:80 \
 -p 2003-2004:2003-2004 \
 -p 2023-2024:2023-2024 \
 -p 8125:8125/udp \
 -p 8126:8126 \
 -v /opt/graphite_data/whisper:/opt/graphite/storage/whisper:rw \
 -v /opt/graphite_data/redis:/var/lib/redis:rw \
 -v /opt/graphite_data/log:/var/log:rw \
 graphiteapp/graphite-statsd
  • 可通過瀏覽器訪問 graphite 頁面,http://10.0.0.1:8880,默認用戶名:root,密碼:root,后續要將其加入到grafana的數據源

collectd 部署


  • 替換 GRAPHITE_HOST 為你graphite的主機地址,我這里使用域名,方便管理
docker run -d \
 --name ops-collectd \
 --net=host \
 --privileged \
 --restart always \
 -v /:/hostfs:ro \
 -e GRAPHITE_HOST=collectd.ops.glinux.top \
 williamguozi/collectd:latest

grafana 部署


  • 數據做持久存儲,可通過 -v /opt/grafana/grafana.ini:/etc/grafana/grafana.ini -v /opt/grafana/ldap.toml:/etc/grafana/ldap.toml 將配置放置外部管理(可選)
docker run -d \
  --name ops-grafana \
  -p 3000:3000 \
  -v /opt/grafana:/var/lib/grafana \
  grafana/grafana

grafana 配置


  • 經過上訴配置,就可以打開grafana的管理界面了,http://10.0.0.1:3000,默認用戶名:admin,密碼:admin

  • 添加 graphite 數據源,配置用戶名密碼,測試連接狀態
    img-w500

  • 設置告警通知方式,這里使用slack方式通知到頻道,也可嘗試其他通知方式
    img-w500

  • 左側列表添加 Dashboard -> Panel,編輯Panel,添加數據,比如cpu利用率
    img-w500

  • 調整單位
    img-w500

  • 修改 Panel 名稱,添加報警規則
    img-w500

效果展示


  • 當資源指標達到閾值就會報警到Slack相應的頻道
    img-w500

  • 另外,可以通過安裝 dashboards 模版使數據展示更漂亮
    img-w500

總結


  • 本文主要就操作系統的基礎監控做例子,展示整個部署過程及展示和報警;
  • 當然其也能夠對時下比較流行的kubernetes進行詳細的監控,后面會寫文介紹;
  • 另外,grafana可以直接將mysql作為數據源,將業務數據圖標展示,體現DevOps價值;

參考文檔



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM