zabbix入門知識

来源:http://www.cnblogs.com/shenxm/archive/2017/11/26/7900571.html
-Advertisement-
Play Games

zabbix入門知識 zabbix中文手冊 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介紹 2.zabbix系統架構圖 3.zabbix的組件 4.zabbix支持的通訊協議 5.zabbix的工作模式 6.zabbix的監控過 ...


zabbix入門知識

zabbix中文手冊
https://www.zabbix.com/documentation/3.4/manual/

1.zabbix介紹

    Zabbix 是一個企業級的分散式開源監控方案。
    Zabbix是一款能夠監控各種網路參數以及伺服器健康性和完整性的軟體。
    Zabbix使用靈活的通知機制,提供了出色的報告和數據可視化功能
    Zabbix支持主動輪詢和被動捕獲。
    Zabbix基於Web的前端頁面進行訪問。
    Zabbix是免費的。
    特點:
        數據收集
        靈活的閥值定義
        高度可配置化的告警
        實時圖表繪製
        Web監控功能
        豐富的可視化選項
        歷史數據存儲
        配置簡單
        使用模板
        網路發現
        簡潔的Web界面
        Zabbix API
        許可權管理系統
        功能強大並易於擴展的監控代理
        二進位代碼
        為複雜環境準備

2.zabbix系統架構圖

![1.png](C:\Users\shenpc\Desktop\1.png)

![4.png](C:\Users\shen\Desktop\4.png)

![2.png](C:\Users\shenpc\Desktop\2.png)

![3.png](C:\Users\shenpc\Desktop\3.png)

![5.png](C:\Users\shenpc\Desktop\5.png)

3.zabbix的組件

    zabbix agent:部署在被監控主機上,負責收集本地數據併發往server端或porxy端。
    zabbix server:負責接收agent發送的報告信息的核心組件,所有配置信息、統計數據及操作數據都由其組織進行。
    zabbix database:用於存儲所有zabbix的配置信息、監控數據的資料庫。
    zabbix web:zabbix的web界面,通過web界面管理zabbix的配置以及查看zabbix相關的監控信息,可以單獨部署在獨立的伺服器上,是server的一部分,通常是在一臺物理機上,若使用使用SQLite則必須在一臺上。
    zabbix proxy:用於分散式監控環境中,zabbix proxy某程度上相當於server端,完成局部區域內的信息收集,最終統一發往server端。可幫server分擔負載壓力。
    zabbix數據流:
        為了創建一個監控項用於採集數據,必須先創建一個主機。轉換到Zabbix功能的其他部分,你必須先有一個監控項來創建觸發器,你必須有一個觸發器來創建動作。 因此,如果你想收到X伺服器CPU負載過高的告警,你必須先為X伺服器創建一個主機實體並關聯一個用於對CPU進行監控的監控項,然後如果CPU負載太高便會激活觸發器,接著會執行一個動作,給你發送告警郵件。雖然看起來有很多步驟,但是使用模板的話可以會很簡單。同時,這個設計可以創建一個非常靈活的配置。

4.zabbix支持的通訊協議

    理論上,zabbix能夠監控幾乎所有與業務相關的硬體資源。但是,能監控的前提是能相互間穩定通信。而zabbix支持的協議如下。
    agent:通過專用的代理程式進行監控,與常見的master/agent模型類型。若支持的話,優先選用agent。
    ssh、telnet:通過遠程式控制制協議進行通信。
    SNMP:simple network management protocol,通過snmp協議進行監控,大部分網路設備都支持這種協議,與常見的master/agent模型類型,一般是在這些設備中內置有snmp的agent。
    IPMI:通過IPMI介面進行監控,來監控對象的物理特征,如電壓,溫度等。
    JMX:java management extensions,通過jmx監控jvm虛擬機。

5.zabbix的工作模式

    被動(passive)模式和主動(active)模式
    工作模式是對於agent端來說的。
    當agent端將採集完的數據主動發往server端的模式為主動模式。
    當agent端等待server端來垃圾數據的模式為被動過模式。
    主動模式與被動模式在agent端並不衝突,可以同時存在。
    agent端使用zabbix_sender工具測試能否向server端發數據,server端使用zabbix_get工具測試能否從agent端拉取數據。

6.zabbix的監控過程

    zabbix agent部署在被監控的主機上,由agent採集數據並報告給負責監控的中心主機,中心主機就是master/agent中的master;
    負責監控的中心主機為zabbix server,server將從agent端接收信息並存儲到zabbix database中;
    管理員是從zabbix web支持的web GUI上查看各種監控信息的,而zabbix web是有php編寫,所以依賴與LAMP環境;
    zabbix server和zabbix web都需要與zabbix database相互通信來獲取數據。
    當監控規模非常龐大時,就需要用到分散式監控,使用zabbix proxy作為代理來接收agent的提交的數據信息,然後將數據統一發送給zabbix server處理,在局部proxy就相當於server。

7.zabbix常用術語

    主機 (host):要監控的網路設備,用IP或DNS名錶示
    主機組 (host group):主機的邏輯組;它包含主機和模板。一個主機組裡的主機和模板之間並沒有任何直接的關聯。通常在給不同用戶組的主機分配許可權時候使用主機組。
    監控項 (item):要接收的主機的特定數據,一個度量數據,某個監控指標。
    鍵(key):想要獲取監控項對應的數據,就需要通過某個key去獲取,可以把key當然調用命令的對應的命令別名。
    觸發器 (trigger):一個被用於定義問題閾值和“評估”監控項接收到的數據的邏輯表達式。當接收到的數據高於閾值時,觸發器從“OK”變成“Problem”狀態。當接收到的數據低於閾值時,觸發器保留/返回一個“OK”的狀態。
    事件 (event):單次發生的需要註意的事情,例如觸發器狀態改變或發現有監控代理自動註冊
    異常 (problem):一個處在“異常”狀態的觸發器
    動作 (action): 一個對事件做出反應的預定義的操作,由操作(例如發出通知)和條件(當時操作正在發生)組成
    升級 (escalation): 一個在動作內執行操作的自定義場景; 發送通知/執行遠程命令的序列
    媒介 (media):發送告警通知的手段;告警通知的途徑
    通知 (notification):利用已選擇的媒體途徑把跟事件相關的信息發送給用戶
    遠程命令 (remote command):一個預定義好的,滿足一些條件的情況下,可以在被監控主機上自動執行的命令
    模版 (template):一組可以被應用到一個或多個主機上的實體(監控項,觸發器,圖形,聚合圖形,應用,LLD,Web場景)的集合,模版的任務就是加快對主機監控任務的實施;也可以使監控任務的批量修改更簡單。模版是直接關聯到每台單獨的主機上。
    應用 (application):一組監控項組成的邏輯分組
    web 場景 (web scenario):利用一個或多個HTTP請求來檢查網站的可用性
    前端 (frontend):Zabbix提供的web界面
    Zabbix API:Zabbix API允許你使用JSON RPC協議來創建、更新和獲取Zabbix對象(如主機、監控項、圖形和其他)信息或者執行任何其他的自定義的任務
    Zabbix server:Zabbix軟體實現監控的核心程式,主要功能是與Zabbix proxies和Agents進行交互、觸發器計算、發送告警通知;並將數據集中保存等
    Zabbix agent:一個部署在監控對象上的,能夠主動監控本地資源和應用的程式
    Zabbix proxy:一個幫助Zabbix Server收集數據,分擔Zabbix Server的負載的程式

8.zabbix安裝

1)配置倉庫

    wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm(這是個配置倉庫的安裝包,會自動倉庫)
    配置好倉庫後,使用yum install來進行安裝

2)zabbix server的安裝

    yum install mariadb mariadb-libs mariadb-server zabbix-get zabbix-server-mysql.x86_64 ##(根據安裝的資料庫來選擇包)                                     
    初始化zabbix資料庫
        安裝mysql數據
        創建zabbix資料庫和用戶
            MariaDB [(none)]> create database zabbix charset 'utf8';
            MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'xm1234';  ##這裡設置的本地
            MariaDB [(none)]> flush privileges;
        初始化zabbix資料庫
            通過rpm -ql zabbix-server-mysql找到create.sql.gz。
            解壓得到create.sql腳本
                gunzip crete.sql.gz
            進行初始化
                mysql -uroot -p -Dzabbix < create.sql
            查看初始情況
                msyql -uroot -p
                MariaDB [(none)]> use zabbix
                MariaDB [zabbix]> show tables;
        根據需要配置/etc/zabbix-server.conf
            DBPassword=
        啟動服務
            systemctl start zabbix-server

3)zabbix proxy的安裝

    yum install zabbix-get zabbix-proxy-mysql.x86_64(根據安裝的資料庫來選擇包)
    初始化配置和server差不多

4)zabbix web的安裝

    yum install zabbix-web.noarch  zabbix-web-mysql ##依賴了很多包,包括httpd和php
    初始化
        創建lamp環境
            安裝httpd和php(應該是在安裝zabbix-web時,由依賴關係的原因以下都已安裝,僅需要配置啟動)
                yum install httpd php(php-fpm)php-mysql  maradb mariadb-libs mariadb-server
            啟動httpd
                systemctl enable httpd
                systemctl start httpd
            啟動maradb
            配置啟動php
                兩種方法,選其一。
                    1)modules:
                        yum install php php-mysql
                        vim /etc/httpd/conf/httpd.conf
                            在文件尾部加兩行
                                AddType application/x-httpd-php .php
                                AddType application/x-httpd-php-source .phps
                            添加修改下麵行
                                <IfModule dir_module>
                                    DirectoryIndex index.php index.html
                                </IfModule>
                        systemctl restart httpd
                    2)fastcgi:
                        yum install php-fpm php-mysql
                        vim /etc/httpd/conf/httpd.conf
                            在文件尾部加四行
                            AddType application/x-httpd-php .php
                            AddType application/x-httpd-php-source .phps
                            ProxyRequests Off 
                            ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
                            修改下麵行
                            <IfModule dir_module>
                                DirectoryIndex index.php index.html
                            </IfModule>
                        systemctl restart httpd
                        systemctl start php-fpm

        配置/etc/httpd/conf.d/zabbix.conf
            vim  /etc/httpd/conf.d/zabbix.conf
                在文件頭部添加
                    <VirtualHost 192.168.213.175:80>
                    servername zabbix-server
                    documentroot /usr/share/zabbix
                在文件尾部添加
                    </VirtualHost>
                修改
                    php_value date.timezone Asia/Shanghai
        重啟httpd服務
    systemctl restart httpd

5)zabbix agent的安裝

    agent 的運行
        Zabbix agent運行在被監控主機上。
        Zabbix agent在linux上以守護進程運行。
        Zabbix agent是是設計在非root賬戶下的。它會以其他任何非root用戶啟動的進程一樣的方式運行。所以,您可以使用任意非root用戶運行agent,且不會產生任何問題。
        如果您在’root’賬戶下運行,它將切換到硬編碼的“zabbix”用戶,該用戶必須存在於您的系統上。如果您只想以’root’方式運行proxy,您必須在proxy配額文件里修改‘AllowRoot‘參數。
        Zabbix agent成功退出時退出碼為0,異常則退出碼為1。
    安裝
        yum install zabbix-agent zabbix-sender
    配置
        vim /etc/zabbix/zabbix_agentd.conf|
        ##### Passive checks related  ##被動監控相關配置
            Server=IP1, IP2, ...##允許那台伺服器拉取當前伺服器的數據,用於實現基於ip的訪問控制,若多個ip可用逗號隔開。
            ListenPort=10050 ##server端訪問的監聽埠,預設為10050
            ListenIP=0.0.0.0  ##本地監聽的地址,預設為0.0.0.0,表示監聽本地所有地址
            StartAgents=3  ##用於指定預生成的agent進程數量
        ##### Active checks related  ##主動監控相關配置,agent端主動向server周期性發送數據;
            ServerActive=IP1[:port], IP2[:port], ... ##信息推送到那台server伺服器上,若多個ip可用逗號隔開。
            Hostname=Unique_HOSTNAME  ##指定當前主機名,用於server端的識別。
                必須與伺服器配置的監控主機的主機名稱保持一致;
    啟動
        systemctl start zabbix-agent

9.zabbix web界面初始化

http://zabbix_web_ip/zabbix
    1)進入安裝界面,點擊next step
    2)進入check of pre-requisites,確認所有狀態都為ok,點擊next step
    3)進入configure DB connection,配置資料庫類型,ip,埠,資料庫名,用戶密碼,點擊next step
        
        埠0表示使用預設埠3306
    4)進入zabbix server details,配置ip地址,埠,servername,添加name,這個name是你在/etc/httpd/conf.d/zabbix.conf中配置的servername,點擊next step。
    5)進入pre-installation summary,檢查,點next step
    6)進程如install,點擊finish
        
    7)進入登錄界面,預設username為admin,password為zabbix。
    8)登錄後,可以修改英文為中文。
        若出現部分字體不能顯示的情況
            1》確保/usr/share/zabbix/include/locales.inc.php 中的
                'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true]
            2》上傳你喜歡的字體文件到/usr/share/zabbix/fonts,文件是以.ttf結尾的,不是也修改成。
                編輯/usr/share/zabbix/include/defines.inc.php中的
                    define('ZBX_GRAPH_FONT_NAME',       'simkai'); // font file name
                    define('ZBX_FONT_NAME', 'simkai');
            確保simkai是你上傳的字體文件的文件名

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這個系列大致想跟大家分享以下篇章(我會持續更新的↖(^ω^)↗): 1、mongo 3.4分片集群系列之一:淺談分片集群 2、mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3、mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全 4、mongo 3.4分片集群系列之 ...
  • 什麼是資料庫系統? 資料庫系統=資料庫(DataBase(DB))+資料庫管理系統(Database Management System (DBMS))+資料庫應用程式(Database Application (DBA)) 資料庫:為了滿足一個機構的信息需求而設計的邏輯上相關的可共用的數據及數據描 ...
  • 最近有個需求,需要整合所有店鋪的數據做一個離線式分析系統,曾經都是按照店鋪分庫分表來給各自商家通過highchart多維度展示自家的店鋪經營 狀況,我們知道這是一個以店鋪為維度的切分,非常適合目前的線上業務,這回老闆提需求了,曾經也是一位數據分析師,sql自然就溜溜的,所以就來了 一個以買家維度展示 ...
  • 給大家介紹一下虛擬機和Xshell5連接的基本配置1.安裝虛擬機,跟著提示一步一步安裝即可,註意添加鏡像文件,虛擬機就完成了.2.下載一個Xshell5,安裝好之後.要修改虛擬機的網卡狀態 1).編輯ifcfg-eth0, 2).點一下i,出現--inner--,修改ONBOOT=YES,Esc退出 ...
  • 1.創建mysql用戶,mysql組. # useradd -s /bin/nologin -M mysql 查看是否創建成功. # id mysql 2.講mysql的二進位包解壓到/usr/local/目錄下. # cd /usr/local/ # tar -zxvf mysql-5.7.20- ...
  • Mysql的許可權 mysql中存在4個控制許可權的表,分別為user表,db表,tables_priv表,columns_priv表。 mysql許可權表的驗證過程為: 先從user表中的Host,User,Password這3個欄位中判斷連接的ip、用戶名、密碼是否存在,存在則通過驗證。 通過身份認證 ...
  • grep 簡介 grep(Global search REgular expression and Print out the line)是Linux上的文本處理三劍客之一,另外兩個是sed和awk. grep是文本搜索工具,根據用戶指定的pattern(由文本字元及正則表達式元字元編寫的過濾條件) ...
  • 首先安裝expect # yum -y install expect 命令格式 # ./expect IP COMM #expect是獨立的工具,所以不能用sh來執行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #!/usr/bin/expect ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...