Linux學習(第十七週)

第十七週學習內容:zabbix

第十七週作業:

1、描述常見監控系統及SNMP協議。

      運維工作中有這麼一句話“不應該允許沒有監控的系統上線”,由此可知監控系統在整個運維工作中的重要性。監控指標有硬件(如cpu使用率、內存佔有率等);軟件(如進程工作是否正常等);業務(如併發在線數量、數據庫查詢數量等)。

      監控所應該具有的功能包括:採樣,週期性獲取某個關注的指標的數據,可以基於agent形式,也可以基於ssh/telnet形式、IDMI硬件形式、SNMP形式、JMX形式等;存儲,一般會存儲兩種數據,歷史數據(每次採樣的結果)和趨勢數據(一段時間內數據計算後的結果),前者存儲時間短,佔用空間大,後者正好相反,可以基於關係型數據庫、輪詢數據庫、nosql、時間序列數據庫等進行存儲;報警:當監控的設備發生問題及時報告管理員,可以用郵件,短信,調用腳本等;展示:一般會通過web gui,gui,app等進行展示。

      開源的監控項目有cacti、nagios、ganglia和zabbix等,其中zabbix是現在最流行也是最強大的一款了。

      關於SNMP(Simple Network Management Protocol)簡單網絡管理協議,由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關注的情況。對於路由器、交換機、打印機這種不支持安裝agent的設備只能使用SNMP來監控了,SNMP協議也有守護進程,負責在監控者與被監控者之間交互報文。在其內部內建了許多OID來標識出具體的監控內容。OID是一個倒置的樹狀結構,可以標識出計算機領域內大多數信息。如:.1.3.6.1.2.1.1.1.0表示系統基本信息、.1.3.6.1.2.1.25.2.2.0表示內存大小等等。OID與具體管理信息就是以這樣的一一對應的方式來關聯的,這個信息庫叫做MIB。

2、搭建企業級zabbix,實現自動以郵件和短信報警。

      zabbix作爲開源監控系統的集大成者,從1998年項目立項以來一直髮展良好,有免費版和收費版,通過官網(https://www.zabbix.com/)即可下載最新版本,官網上也提供瞭如何安裝的步驟和操作指南。特性有數據採樣支持前面所說的所有形式,在條件允許的情況下建議使用agent形式;報警不僅支持郵件、短信、調用腳本,還開發了升級形式,也就是一層一層的向上級報警;存儲支持mysql和pgsql;展示是以php開發的web  gui爲主,可以做到實時繪圖,包括單序列、多序列、翻轉等等。除此之外,還有監控模板,網絡自動發現,分佈式監控,支持二次開發等等。

      通過官網上提供的方法進行安裝:

      (1)# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm。創建yum倉庫,並指向了此rpm包,下載並安裝。

      image.png

      (2)# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent。除了主安裝包,服務器端需安裝這3個包,分別提供連接mysql、web頁面和agent端3個功能。

      image.png

      (3)準備數據庫,包括下載mariadb並啓動,登錄後創建用戶名和建庫等。

      image.png

      (4)# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uxiaomao -p123456。將下載安裝的程序包提供的SQL腳本導入mariadb中,生成數據庫中的具體表項,一般下載下來的腳本爲.gz格式,要先使用gzip -d命令解壓後方可導入。

      image.png

      (5)配置/etc/zabbix/zabbix_server.conf,將其中的DBName改爲庫名,默認爲zabbix、DBuser和DBpassword改爲連接數據庫的用戶名和密碼。

      image.png

      (6)準備http環境,直接安裝帶php模塊的httpd就可以了。

      image.png

      (7)編輯/etc/httpd/conf.d/zabbix.conf文件,將其中的時區修改爲Asia/Shanghai。

      image.png

      (8)啓動服務,httpd、zabbix_server、mariadb,就可以訪問了。第一次訪問時會是一張配置頁面,填上各選項以後就可以到主頁面了。

      image.png

      默認用戶名爲admin,密碼爲zabbix,就可以正常登錄了。

      image.png

      客戶端配置:需要安裝zabbix_agent和zabbix_sender程序包,配置文件爲/etc/zabbix/zabbix_agentd.conf,其中hostname爲主機名或ID,必須唯一,且要與zabbix_server的web gui上配置一致,因爲agent就是拿着這個主機名去找sever上傳數據的。啓動服務後,可以看到10050端口已處於監聽狀態。

      image.png

      zabbix的web界面具體配置:先可以通過administrator-users,把語言切換成中文,再進行具體配置。配置順序一般爲創建主機,創建監控項,創建觸發器,創建動作,創建視圖,多個視圖組成屏幕,多個屏幕組成幻燈片,最終把以上的內容導入模板,這樣可以給以後的主機直接套用。

      創建主機:配置-主機-創建主機,其中最重要的一項就是agent代理程序接口,可以是agent主機的主機名也可以是IP地址,除了最常用的agent外,還可以SNMP、JMX、IPMI接口。

      image.png

      創建監控項:配置-主機-監控項-創建監控項,在此處有一個重要的概念叫鍵值key,agent進程在收到server端發來的監控指令時是通過調用外部命令來具體獲取信息的,比如想要監控入站流量,需要調用ifconfig命令並送給awk或grep找出相應的信息併發送給server端,命令很長且每個具體監控項的命令都不相同,所以就可以使用key來代替這一長串命令,zabbix內建了許多鍵值,都是見名思意的。當內建key無法滿足用戶監控需求時,還可以自定義鍵,這需要在agent的配置文件中定義。創建監控向頁面上需要定義名字,鍵,數據保存格式等,而應用集可以理解爲監控組,是將一大堆監控項歸在其中的。

      image.png

      在內建key選擇界面中,[]表示可選項,<>表示必輸項。如:net.if.in[if,<mode>]表示接口入向流量統計,就需寫成net.if.in[ens33,packets]表示統計ens33接口的入向流量,並以數據包爲單位。

      image.png

      創建觸發器:配置-主機-觸發器-創建觸發器,觸發器是一個表達式一般用來定義不合理的區間,表達式爲真則說明工作異常,觸發事件。一個監控項可定義多個具有不同閾值的觸發器,從而實現不同級別報警功能,也就是前面所說的升級。觸發器的表達式可以寫爲{主機名:鍵.函數(參數)}操作符+常數,其中常用函數有avg,count,last,max,min等,而參數在大多數函數中是以秒爲單位的,也可以在參數前加“#”表示最近幾次的取值,比如:{www.ilinux.io:system.cpu.load[all,avg1].last(0)}>3,表示該主機上所有cpu過去一分鐘內的平均負載的最後一次取值大於3時觸發事件,這裏的last(0)=last(#1)。

      image.png

      在具體配置中,zabbix爲了讓管理員方便使用表達式,提供了表達式構造器,可以直接在後麪點擊添加,填入各項信息,就能自動生成表達式了,方便了許多。

      image.png

      創建動作:配置-動作-創建動作,需要定義三塊內容:動作、條件、操作。動作是用來定義自身屬性的,一般只要取個名字就行了;條件用來定義在什麼情況下執行操作,默認已添加了兩個條件A和B,A爲維護時間排出,B爲觸發器狀態爲PROBLEM,一般只需要再添加條件C,也就是具體觸發器名稱就可以了;操作是用來定義當發生問題時具體做什麼的,操作類型有發送消息,遠程指令等,其中發送消息具體發給誰需要通過定義媒介後方可使用了。

      image.png

      創建媒介:管理-報警媒介類型-創建媒介,主要就是通過電子郵件,調用腳本等。

      image.png

      創建好媒介後,別忘了還要調用,方式是管理-用戶-報警媒介,把新建的媒介添加進去。

      image.png

      返回動作配置頁面,把此用戶添加進操作中即可。

      image.png

      創建圖形:配置-主機-圖形-創建圖形,圖形多種多樣,也可以多條線進行比較等。

      image.png

      創建屏幕:監測中-聚合圖形-創建聚合圖形,可以將多個視圖組成屏幕。

      創建幻燈片:監測中-聚合圖形-幻燈片演示-創建幻燈片演示,可以將多個屏幕組成幻燈片。

      image.png

       創建模板:配置-模板-創建模板或導入模板,可以將前面定義導入,也可以重新創建。默認也存在着許多種模板,包含了大多數的監控項,其實有時也無需前面如此辛苦的配置,只要直接導入個Linux模板,稍微刪改一下就可以了。

      image.png

      一臺完整的被監控主機就有下面這些配置,當觸發器觸發事件,則會引發動作,發送郵件到指定郵箱,如果要發送短信之類的,還需要調用外部其他程序實現。

      image.png

      image.png

      

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章