天天看點

Prometheus監控(3)

Prometheus監控報警系統

三豐,公衆号:soft張三豐​​Prometheus監控報警系統​​

監控分類可以參考這篇文章下半部分

三豐,公衆号:soft張三豐​​Prometheus監控(2)​​

Prometheus監控(3)

監控系統搭建

• 單點服務端的搭建(prometheus) 

• 單點用戶端的部署 

• 單點用戶端伺服器測試 

• 采集程式單點部署 

• 采集程式批量部署 

• 監控服務端HA / cloud (⾃⼰定制) 

• 監控資料圖形化搭建(Grafana) 

• 報警規則測試 

• 監控+報警聯合測試

Prometheus監控(3)

• 可選⽤腳本作為資料采集途徑

例如: shell / python / awk / lua (Nginx 安全控制,功能分類) / php / perl/ go 等等

shell :運維的⼊門腳本,任何和性能/背景/界⾯⽆關的邏輯 都可以實作最快速的開發

(shell 是在運維領域⾥ 開發速度最快 難度最低的)

python: 各種擴充功能 擴充庫 功能豐富 ,伴随各種程式的展⽰+開發架構(如django)等 可以

實作快速的中⾼檔次的平台邏輯開發. ⽬前在運維屆 除去shell這個所有⼈必須會的腳本之外,⽕爆程度就屬python了

awk: 本⾝是⼀個實⽤指令 也是⼀門龐⼤的程式設計語⾔. 結合shell腳本 或者獨⽴ 都可以使⽤。

在⽂本和标準輸出處理上 有很⼤的優勢

lua: 多⽤于nginx的子產品結合 是⽐較新型的⼀個語⾔

php:⽼牌⼦的開發語⾔,在⼤型互聯⽹開發中,⽬前有退潮的趨勢 (PHP語⾔, php-fpm)不過在運維中⼯具開發還是很依賴PHP

perl: 傳說中 對⽂本處理最快的腳本語⾔ (但是代碼可讀性不強)

go: 新型的語⾔ ⽬前在開發和運維中 炒的很熱 ⼯資也⾼ C語⾔ 在各種後端服務邏輯的編寫上 開發速度快 成⾏早

作為監控資料采集, ⾸推 shell + python , 如果說資料采集選取的模式對性能/背景/界⾯不依賴,那麼shell速度最快 成本最低(公司往往喜歡快的)。

采集形式分類

⼀次性采集

Prometheus監控(3)

例如我們使⽤⽐較簡單的 shell ./monitor.sh (ps -ef | grep, netstats -an | wc )+ crontab的形式

按10秒 / 30秒 / ⼀分鐘 這樣的頻率去 單詞采集

  • 優點 ⼀次性采集的模式 穩定性較好 不容易出現各種錯誤 和性能瓶頸,且開發邏輯簡單 實

    現快速

  • 缺點 ⼀次性采集 對于有些采集項⽬ 實作起來不夠智能 也不夠到位 例如 ⽇志的實時采集

(使⽤⼀次性采集 ⽇志⽂件 200/5xx diff grep 也可以實作 但是很low 不夠準确 不夠直覺)

背景式采集

Prometheus監控(3)

采集程式以守護程序運⾏在Linux背景,持續不斷的采集資料:pormetheus exporter 例如

python/go開發的daemon程式 背景持續不斷的采集

  • 優點:背景采集程式 資料準确性⾼ 采集密度精細 管理⽅便
  • 缺點:背景采集程式 如果開發過程不夠仔細 可能會出現各種 記憶體洩漏 僵⼫程序 性能瓶頸的問題, 且開發周期較長

橋接式采集

本⾝以背景程序運⾏ 但是采集不能獨⽴ 依然跟伺服器關聯 以橋接⽅式收集采集資料

例如:NRPE for nagios

NRPE是Nagios Remote Plugin Executor的簡稱,它是nagios的一個擴充工具,用在被監控主機上。通過它可以向nagios監控伺服器提供該主機的一些本地資訊。例如:cpu負載、記憶體使用情況、磁盤容量、登陸使用者數、總程序數、僵屍程序數、swap分區使用情況等等。

注意:NRPE方式的監控,隻能監控主機本地的資訊,并不能監控資料庫。

Prometheus監控(1)

三豐,公衆号:soft張三豐​​Prometheus監控(1)​​

Prometheus監控(2)

三豐,公衆号:soft張三豐​​Prometheus監控(2)​​

微服務核心之服務編排

三豐,公衆号:soft張三豐​​服務編排​​

了解service mesh

三豐,公衆号:soft張三豐​​一文看懂service mesh​​

微服務之劃分原則

三豐,公衆号:soft張三豐​​微服務之劃分原則​​