第一講 企業級運維監控理 論基礎

2022-06-24 07:48:09 字數 2916 閱讀 7399

prometheus構架圖

監控和報警

prometheus優勢

•監控資料的精細程度 絕對的第⼀ 可以精確到 1~5秒的採集精度  4 5分鐘 理想的狀態 我們來算算

採集精度 (儲存 效能)

• 集群部署的速度 監控指令碼的製作 (指的是熟練之後) ⾮常快速 ⼤⼤縮短監控的搭建時間成本

• 周邊外掛程式很豐富 exporter pushgateway ⼤多數都不需要⾃⼰開發了

• 本⾝基於數學計算模型,⼤量的實⽤函式 可以實現很複雜規則的業務邏輯監控(例如qps的曲線

彎曲 凸起 **的 ⽐例等等模糊概念)

• 可以嵌⼊很多開源⼯具的內部 進⾏監控 資料更準時 更可信(其他監控很難做到這⼀點)

• 本⾝是開源的,更新速度快,bug修復快。⽀持n多種語⾔做本⾝和外掛程式的⼆次開發

• 圖形很⾼⼤上 很美觀 ⽼板特別喜歡看這種業務圖 (主要是指跟grafana的結合)

不足之處

• 因其資料採集的精度  如果集群數量太⼤,那麼單點的監控有效能瓶頸 ⽬前尚不⽀持集群 只能

workaround

• 學習成本太⼤,尤其是其獨有的數學命令⾏(⾮常強⼤的同時 又極其難學《=⾃學的情況下),

中⽂資料極少,本⾝的各種數學模型的概念很複雜(如果沒⼈教 ⾃⼰⼀點點學英⽂官⽹ 得 1-3 個

⽉⼊門)

• 對磁碟資源也是耗費的較⼤,這個具體要看 監控的集群量 和 監控項的多少 和儲存時間的長短

• 本⾝的使⽤ 需要使⽤者的數學不能太差 要有⼀定的數學頭腦

較完善的監控系統體系

1)監控系統設計

設計部分包括以下內容

評估系統的業務流程,業務方向不同,程式**不同,系統構架不同

對於各個地方的細節,都需要一定程度的認知,才是監控設計的源頭

分類列出所需監控項種類

一般可分為: 業務級別監控/系統級別監控/網路監控/程式**監控/日誌監控/使用者行為監控/其他型別監控

大的分類,還有更多細小分類

例如網路監控:對網路狀態的監控,例如丟包率,延遲等等

日誌監控:監控中的重頭戲,往往單獨設計和搭建,各種種類的日誌都需要採集

程式監控:一般需要和開發人員配合,程式中嵌入各種介面,直接獲取資料或者特質的日誌格式

監控技術方案軟體選取

各種監控軟體層出不窮,開源的 商業的 自行開發的幾百種方案可選

架構師憑藉一些因素,開始選材

針對企業的架構特點 大小種類,人員多少等等選取合適的技術方案

監控體系人員安排

運維團隊任務劃分,責任到人,分塊進行

2)監控系統的搭建

3)資料採集的編寫

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

shell:運維入門指令碼,任何和效能,後台,介面無關的邏輯都可以實現最快速的開發

python:各種擴充套件功能,擴充套件庫,功能豐富

awk:本身是乙個實用命令,也是一門龐大的程式語言。結合shell或者獨立都可以使用

lua:多用於nginx模組結合,是比較新的乙個語言

php:老牌子的開發語言,在大型網際網路開發中,目前有退潮趨勢,不過在運維開發中還是很依賴php

perl:傳說中對文字處理最快的工具(但是**可讀性不強)

go:新型的語言 目前在開發和運維中很熱,在各種後端服務邏輯編寫上開發速度快

作為監控資料的採集,首推shell和python

資料採集的形式分類

一次性採集:例如我們使用比較簡單的shell + crontab 按定時任務

優點:穩定性比較好,不容易出現錯誤和效能瓶頸,開發邏輯簡單實現快速

缺點:對於有些採集專案實現起來不夠智慧型,也不到位。例如日誌的實時採集

後台式採集:採集程式以守護程序執行在linux後台,持續不斷地採集資料

優點:後台採集程式 資料準確性高,採集密度精確,管理方便

缺點:如果開發不夠仔細,會出現記憶體洩漏,殭屍程序 效能瓶頸等問題,且開發時間較長

橋接式採集:本身已後台程序執行,單採集過程不能獨立,以橋接方式採集資料

監控的資料和演算法其實非常依賴運維架構師對linux操作系的各種底層知識的掌握

如果我們使用老式傻瓜式的監控nagios,裡面的監控指令碼很全面,生成報警規則和閾值也很簡單,缺點也顯而易見;監控太粗糙,實用性不強,另外也不利於希望提高的同學

業務級別監控的演算法 運維自身無法做到十分專業

監控圖形 曲線qps**,**,qps和歷史資料的比較方法,等等這些都屬於業務級別的監控閾值型別

需要有專業的資料分析人員的協助 才可以算出優良的演算法

例如:如果我現在想針對qps**率進行報警計算,那麼用什麼樣的公式針對我們的業務型別更貼切

計算當前5分鐘內的平均值《乙個固定數值的時候 報警合適

計算當前10分鐘的總量然後和前乙個小時同一時間段比較

計算當前1小時的平均值和過去一周內每一天同一時間段的時間比較合適

這些資料演算法和linux無關,只有非常專業的資料計算團隊,才可以給出乙個合理的演算法

監控穩定測試

不管是一次性採集,還是後台採集,只要是部署在linux都會多多少少產生一定影響

監控自動化

監控客戶端的批量部署,監控服務端的ha安裝,監控專案的修改,監控專案的監控集群變化

這裡給出幾個例項

puppet(配置檔案部署)

jenkins(持續整合)

cmdb(運維自動化的最高資源管理平台和理念)

監控圖形化工作 

採集好的資料和準備好的監控演算法,最終需要乙個好的圖形展示

grafanna的使用和搭建

Nginx運維 企業級優化

一 優化引數 1 引數與linux引數優化一致 2 nginx的健康檢查 二 keepalived介紹 1 keepalived服務介紹 2 keepalived故障切換轉移原理 3 vrrp協議介紹 4 keepalived工作原理 三 安裝keepalived 2 複製keepalived的啟動...

第十講 企業級監控資料採集指令碼開發實踐

第十講內容 pushgateway 的介紹 pushgateway 的安裝和運 和配置 定義編寫指令碼的 法 傳送pushgateway 採集 使 pushgateway的優缺點 pushgateway 的介紹 pushgateway 是另 種採 被動推送的 式 不是exporter 主動獲取 獲取...

企業級自動化運維工具Ansible實戰課程

什麼是ansible?ansible是新出現的自動化運維工具,基於python開發,集合了眾多運維工具 puppet chef func fabric 的優點,實現了批量系統配置 批量程式部署 批量執行命令等功能。ansible是基於 paramiko 開發的,並且基於模組化工作,本身沒有批量部署的...