• <dd id="hdgin"><track id="hdgin"></track></dd>
  • <em id="hdgin"><tr id="hdgin"></tr></em>
  • <th id="hdgin"><track id="hdgin"><noframes id="hdgin"></noframes></track></th>
        <rp id="hdgin"><ruby id="hdgin"></ruby></rp>

        <legend id="hdgin"><noscript id="hdgin"><video id="hdgin"></video></noscript></legend>
          <dd id="hdgin"><track id="hdgin"></track></dd>
            首頁 運維干貨最全面系統的Zabbix講解 _ 含源碼&監控類型整理

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理

            運維派隸屬馬哥教育旗下專業運維社區,是國內成立最早的IT運維技術社區,歡迎關注公眾號:yunweipai
            領取學習更多免費Linux云計算、Python、Docker、K8s教程關注公眾號:馬哥linux運維

            主講人:王鴻杰,云智慧/企業效能部/架構師
            講師簡介:云智慧架構師,PHP/PECL 開發組成員,PECL/SeasClick、PECL/SeasLog Maintainer。6 年研發經驗,2018 年加入透視寶團隊,致力于 APM 產品的架構與研發,專注于服務的性能分析與優化。2021 年加入效能工程團隊,為高效而生,立足于使用最少的資源來解決最大的問題,研究各種不同的 bot 技術,讓整個團隊更高效運轉。

            公司簡介:云智慧集團成立于2009年,是國內領先的全棧智能業務運維解決方案服務商。經過多年自主研發,公司形成了從IT運維、電力運維到IoT運維的產業布局,覆蓋ITOM、ITOA、ITSM、DevOps以及IoT幾大領域,為金融、政府、運營商、能源、交通、制造等上百家行業的客戶,提供了數字化運維體系建設及全生命周期運維管理解決方案。云智慧秉承Make Digital Online的使命,致力于通過先進的產品技術,為企業數字化轉型和提升IT運營效率持續賦能。

            從本篇內容你能得到:

            1. Zabbix是什么、能做到什么
            2. Zabbix組件詳解、架構和處理工作流程
            3. Zabbix各監控項類型的采集實現(SNMP、ICMP、Ping、簡單檢查等)
            4. Zabbix 模板組成結構與實現
            5. Zabbix Agent源碼結構與實現分析
            6. Zabbix 自動發現邏輯的源碼結構與實現詳解

            全棧監控是什么?

            監控一切需要監控的東西,只要能夠想到,能夠用命令實現的都能用來監控。

            基礎層:主要偏硬件,監控主機和底層資源。比如cpu、 內存、網絡吞吐、硬盤I/O、硬盤使用等

            中間層:包括nginx、Redis、MQ、MySQL、 Tomcat等

            應用層: HTTP訪問的吞吐量、響應時間、 返回碼、調用鏈路分析、性能瓶頸, 還包括用戶端的監控等

            日志:syslog、nginx log、mysql log等

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖

            為什么使用Zabbix?

            目前開源的解決方案中,Zabbix和Prometheus是使用較多的兩個方案,這兩個方案的區別和優勢是什么?

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖1

            對于偏傳統的行業,云環境較少的場景下,是比較適合于Zabbix的使用,當然Prometheus是未來發展的方向。

            Zabbix是什么?

            Zabbix源碼主要組成:

            frontends:php,主要負責前端的業務操作

            Zabbix agent:采集數據

            Zabbx server:同步配置,處理數據,分析告警等。

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖2

            Zabbix處理流程:

            主要由四部分組成:

            Portal-DB-Server-Agent

            詳細的工作流程如下:

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖3

            詳細流程可查看下圖:

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖4

            Zabbix是怎么做的?

            Zabbix Process

            1. 當添加(自動發現)一個 host,并且為 host 添加對應的模板的時候,Portal 會解析出來對應的 item, preprocess,trigger 然后放在對應的 Db 表里面。
            2. Server 的 dbconfig_thread 會從 Db 拿到對應的數據放在共享內存中,然后poller_thread 進程讀取到對應的 items,開啟與 Agent 建立連接,遍歷 items 從 Agent(snmp,簡單檢查 等) 獲取到對應的指標數據
            3. 然后將 指標數據給 preprocessing_manager_thread 進程,preprocessing_manager_thread 進程會安排對應的preprocessing_worker 進程對數據進行 preprocess
            4. 最后由 dbsyncer_thread 進程將數據放入 Db 中,Portal 界面從 Db 拿到對應的數據信息繪制和顯示
            5. dbsyncer_thread 同步數據到DB,遍歷數據 并計算 expression 表達式計算指標,最后觸發 escalator_thread 和 alerter_thread 做出相應的動作。
            6. 對于可監控指標,Agent 自帶多種可監控指標 cmd,Agent 只能監控內置的監控指標,可以通過插件拓展 可監控指標。

            Zabbix Server

            • dbconfig_thread: 配置同步到共享內存,保證所有進程都可讀
            • poller_thread: 主動監控,解析 items 調用 Agent
            • *trapper_thread: 收集 Agent 上報上來的數據
            • pinger_thread: 定期 ping 所有監控主機,簡單檢查 ICMP
            • *alerter_thread: 告警消息處理進程從 IPC 讀出需要發動的消息,發出告警
            • housekeeper_thread: 管家進程,過期數據清理
            • discoverer_thread: 主機、服務的自動發現
            • escalator_thread: 根據觸發器的值判斷是否告警,具體執行什么動作
            • dbsyncer_thread:同步數據到 db,并計算觸發器值也同步到db
            • selfmon_thread: 自監控
            • preprocessing_worker_thread: 數據預處理進程,數據從 poller 和 trapper 進程過來

            Zabbix Agent

            • collector_thread 周期采集基礎信息,主要是內存和 CPU,儲存于共享內存中
            • listener_thread 用于接收 server 或者 proxy 分配的的采集任務,被動采采集
            • active_checks_thread 主動采集上報

            指標類型

            按進程(處理方式)劃分指標類型

            Poller 進程(被動)

            1. snmp|SNMP代理檢查
            2. simple_checks|簡單檢查(應用層狀態檢查)
            3. calculated|計算監控項
            4. internal|Zabbix內部檢查
            5. ssh_checks|SSH檢查
            6. telnet_checks|Telnet檢查
            7. external|外部檢查
            8. aggregate|匯總檢查
            9. odbc_checks|ODBC監控

            httppoller 進程(被動)

            • http|HTTP 檢查

            ipmi_poller_thread 進程(被動)

            • ipmi|IPMI檢查

            icmp pinger 進程(被動)

            • simple_checks|簡單檢查(icmp 檢查)

            trapper 進程(主動)

            1. trapper|捕捉器監控項
            2. log_items|日志文件監控
            3. snmptrap|SNMP traps

            preprocess 進程(Follow me)

            • dependent_items|相關項目(從屬監控項)

            按客戶端依賴劃分指標類型

            無依賴

            1. snmp|SNMP代理檢查
            2. ipmi|IPMI檢查
            3. simple_checks|簡單檢查
            4. external|外部檢查
            5. odbc_checks|ODBC監控

            依賴其他監控項

            1. calculated|計算監控項
            2. aggregate|匯總檢查

            依賴第三方

            1. zabbix_agent|Zabbix代理檢查 (Agent)
            2. snmptrap|SNMP traps (snmptrap)
            3. log_items|日志文件監控 (Agent)
            4. ssh_checks|SSH檢查 (ssh 秘鑰或密碼)
            5. telnet_checks|Telnet檢查 (Telnet Server和 Telnet 密碼)
            6. trapper|捕捉器監控項 (Zabbix Sender)
            7. http|HTTP 檢查 (http 接口)

            IDEA

            被動監控對 Zabbix Server 來說會有大的壓力

            從監控類型來看,Zabbix 更多的是被動監控,主動監控只有 Agent Active、SnmpTrap,Sender,但是由于 Zabbix Agent 的強大,很多場景下主動監控的指標覆蓋度完全能跟被動監控硬懟。

            所以要根據具體監控場景,主動和被動互相搭配,耗時的指標更加傾向于主動監控。

            Zabbix監控項類型梳理

            Zabbix的自動發現

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖5

            自動發現是伴隨著指標監控來的,當發現能有采集到預設的指標時,這臺主機就會被標記為可用,然后觸發預設的Action,通知或者自動添加監控模板等。

            自動發現分類

            1. 簡單檢查類
            2. Agent 類型
            3. snmp 類型
            4. ICMP (ping) 類型

            自動發現流程

            1. 配置 IP 段
            2. 配置自動發現指標
            3. 配置發現動作 Action
            4. 發現主機后添加 event
            5. escalator_thread 進程處理對應的 event

            Zabbix的模板結構

            模板結構

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖6

            從屬指標

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖7

            計算指標

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖8

            Agent源碼

            最全面系統的Zabbix講解 _ 含源碼&監控類型整理插圖9

            寫在最后

            近年來,在AIOps領域極速發展的背景下,IT工具、平臺能力、解決方案、AI場景及可用數據集的迫切需求在各行業迸發?;诖?,云智慧在2021年8月發布了AIOps社區,旨在樹起一面開源旗幟,為各行業客戶、用戶、研究者和開發者們構建活躍的用戶及開發者社區,共同貢獻及解決行業難題、促進該領域技術發展。

            成立近半年,社區先后開源了數據可視化編排平臺-FlyFish、運維管理平臺OMP、云服務管理平臺-摩爾平臺、Hours算法等產品。其中FlyFish斬獲中國開源云聯盟2021優秀開源項目獎。OMP運維管理平臺入選2021 年度 OSC 中國開源項目「最受歡迎項目」榜單。并在業內首次開源了智能運維開源數據集-GAIA數據集,填補了AIOps開源集數據領域的空白。

            本文鏈接:http://m.abandonstatusquo.com/40816.html

            網友評論comments

            發表評論

            您的電子郵箱地址不會被公開。

            暫無評論

            Copyright ? 2012-2022 YUNWEIPAI.COM - 運維派 京ICP備16064699號-6
            掃二維碼
            掃二維碼
            返回頂部
            久久久久亚洲国内精品|亚洲一区二区在线观看综合无码|欧洲一区无码精品色|97伊人久久超碰|一级a爱片国产亚洲精品