zabbix專題(2)

今日學習目標:

  1. 可以實現一個web頁面的監測html

  2. 可以實現自動發現遠程linux主機mysql

  3. 可以經過動做在發現主機後自動添加主機並連接模板linux

  4. 可以建立一個模版並添加相應的元素(監控項,圖形,觸發器等)web

  5. 可以將主機或模板的配置實現導出和導入sql

  6. 可以實現至少一種報警方式(郵件,微信等)數據庫

  7. 可以經過zabbix_proxy來實現監控

web監測

web監測:相似一個監控項,能夠對一個url頁面進行監測(監測它的狀態碼,下載速度等)vim

下面來作個例子(監測agent1的httpd的主頁)bash

1,
web管理界面--》配置--》主機--》web監測(選agent1的web監測)--》右上角點建立web場景
服務器

mark

2,再點步驟,填上名稱與監測的URL(你能夠添加多個步驟,我這裏只加這一個)微信

mark

3,繼續在步驟界面的最下面填上200狀態碼,而後點添加,出來後再點添加

mark

4,建立完後,去下圖中查看驗證

若是看到是鏈接失敗,則表示agent1的httpd沒有啓動若是是404錯誤,則表示服務啓動了,但找不到主頁

mark

5, 去agent1上安裝httpd,並作一個主頁,再重啓服務

[root\@agent1 \~]# yum install httpd httpd-devel

  1. [root\@agent1 \~]# echo "agent1 主頁" \> /var/www/html/index.html

  2. [root\@agent1 \~]# systemctl restart httpd

  3. [root\@agent1 \~]# systemctl enable httpd

mark

6,再去查看驗證

練習:

  1. 爲上面的web監測建立一個圖形

  2. 爲上面的web監測建立一個觸發器,狀態碼不爲200就觸發(選監控項的時候要注意看清楚,一個web監測會產
    生好幾個小的監控項,選狀態碼的那一個)

自動發現與動做

發現:假設我如今須要添加監控100臺主機,這個工做量有點大。因此我能夠把這100臺連好網絡,配置並啓動好

zabbix-agent服務。而後在zabbix
server上配置一個自動發現規則,自動發現這100臺主機。

自動發現是由服務端主動發起,Zabbix
Server開啓發現進程,定時掃描網絡中符合條件的主機。

動做:自動發現了這100臺主機,可是還要添加監控主機和連接模板啊。這時能夠經過動做來達到此目的。

我們前面早就準備了一臺agent2,一直還沒使用,這裏就嘗試自動發現這臺agent2。

1,在agent2上安裝zabbix-agent包

1 [root\@agent2 \~]# yum install zabbix-agent

2,配置zabbix-agent端的配置文件,啓動服務並作成開機自動啓動

147 Hostname=agent2.cluster.com --修改爲agent2的主機名

[root\@agent2 \~]# systemctl restart zabbix-agent [root\@agent2 \~]# systemctl
enable zabbix-agent [root\@agent2 \~]# systemctl status zabbix-agent

[root\@agent2 \~]# lsof -i:10050

--修改爲zabbix監控服務器的IP(被動監控)

97 Server=10.1.1.11

[root\@agent2 \~]# vim /etc/zabbix/zabbix_agentd.conf

思考: 若是100臺服務器都要裝系統,而後再作上面兩步,也挺累的。用什麼方法來作更高效?

答:
安裝系統可使用pxe(kickstart)或cobbler.安裝軟件,修改配置可使用cobbler的postscript,再或者使用

ansible,saltstack這種軟件。

3, web管理界面--》配置--》自動發現

mark

mark

zabbix專題(2)

4, 自動發現規則啓用後,按下圖顯示的去驗證

mark

5,發現了agent2,但有一個問題,並無把agent添加到監控的主機列表中,以下圖所示

mark

6,經過動做,將發現的主機添加到監控主機列表,並加上監控模板。

web管理界面--》配置--》動做--》右上角事件源選自動發現--》有一個叫Auto
discovery. Linux servers

的動做,直接啓用就好

mark

思考: 若是我發現主機後,還想要添加ftp,ssh相關的監控模板,怎麼作?

1

mark

7,
再次驗證就OK了(這裏等待比較久,你也能夠嘗試把自動發現規則關閉一下,再次打開)

課外拓展:自動註冊

自動註冊:
與自動發現實現的功能相同,區別在於自動發現是由zabbixserver去發現被監控機器。而自動註冊是由被監控機器去找zabbixserver註冊。

請問: 若是有大量的被監控機器,哪種方式性能更好?

模板

模板(template):
就是包括監控項,應用集,觸發器,圖形,聚合圖形,自動發現規則,web監測等的一組實體。使用模板能夠方便應用到主機,更改模板也會將更改應用到全部連接的主機。

mark

參 考 :
https://www.zabbix.com/documentation/3.4/zh/manual/config/templates
web管理界面--》配置--》模板--》建立模板

mark

mark

導入導出

辛辛苦苦配置了一個模板或一個主機,我想給另外一臺zabbix服務器使用或者我想保存下來(備份防止誤刪除),如何
實現?

導入導出能夠幫你輕鬆實現,導出的是xml格式文件.

配置--》主機--》選取要導出的主機(前面打勾)--》下面選擇導出

mark

mark

配置--》模版--》選取要導出的模版(前面打勾)--》下面選擇導出

配置--》主機--》右上角導入

mark

mark

配置--》模板--》右上角導入

練習: 導入導出練習

  1. 把本機的一個模版刪除

  2. 而後從同桌的zabbix服務器那導出成xml文件,並拷貝過來導入(裏面有IP參數的要記得修改相應的IP)

報警

觸發器:觸發報警

zabbix的報警媒介支持email,jabber,sms(短信),微信,電話語音等。

mark

經過報警平臺實現報警

本身配置報警比較複雜,並且郵件容易被拒或當作垃圾郵件。有些專業的報警平臺就能夠幫你簡單實現。
如:onealeart 參考:<http://www.onealert.com/>;

咱們這裏之前面都定義過的"agent1遠程登陸用戶數"來測試報警,當agent1遠程登陸用戶數大於20個就會觸發器,
而後報警。(注意:請在測試前先把agent1的登陸用戶數調整到20個如下)

簡單過程:

1,去http://www.onealert.com/申請一個帳號,在我的中心綁定:手機,微信,郵箱等

2,在應用里加zabbix應用,產生一個key(我這裏的key爲51c35554-939f-5c4d-604d-53ecdf3d7e2e);設置
報警的策略(設置報警郵箱或微信等)

3,按照它的提示,進行安裝

# cd /usr/lib/zabbix/alertscripts

# wget
<http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz>;
#若是上述地址沒法下載,請使用官方連接。

# tar xf oneitsm_zabbix_release-1.2.0.tar.gz # cd oneitsm/bin/

# bash install.sh 51c35554-939f-5c4d-604d-53ecdf3d7e2e

start to create config file...

  1. Zabbix管理地址: <http://10.1.1.11/zabbix/>;

  2. Zabbix管理員帳號: admin

  3. Zabbix管理員密碼:

  4. 4,安裝完後,zabbix_server的web界面直接就配置好了報警媒介,報警用戶,報警動做;你什麼都不用再配置了

  5. 5,測試;你能夠故意觸發一些警告(觸發器達到臨界值),就會自動按照報警策略報警

mark

mark

mark

mark

mark

mark

配置完onealert後,咱們能夠驗證下它安裝後到底對zabbix作了啥。簡單來講,它作了三件事:

  1. 增長了一個報警媒介類型

  2. 增長了一個用戶和一個用戶組用於報警

  3. 增長了一個報警動做

mark

mark

mark

mark

mark

mark

驗證: 將agent1遠程登陸用戶數調整成大於20個,讓觸發器觸發。也會觸發報警。

mark

分佈式監控

當監控機主機特別多,甚至分散在不一樣的地域機房。這個時候zabbix
server壓力很大,因此能夠經過增長zabbix
proxy來代理收集每一個機房裏的主機信息,再統一給zabbix server.

參考網址:
<https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitoring/proxies>;

mark

mark

zabbix proxy的兩個主要應用場景總結:

  1. 分佈式監控,爲zabbix server分擔壓力

  2. zabbix
    server監控有防火牆的內網各服務器時,須要防火牆開放各個端口。使用zabbix
    proxy在內網統一監控,而後與zabbix
    server經過公網鏈接,此時防火牆只須要開放zabbix server與zabbix
    proxy的鏈接就能夠了。



實驗環境準備:

我這裏把原來的agent2用來模擬zabbixproxy

  1. 先在web界面把agent2的配置刪除(並把先前作的自動發現規則禁用,報警也禁用)

  2. 把agent2主機名改爲zabbixproxy.cluster.com而且三臺從新綁定/etc/hosts

zabbixserver.cluster.com agent1.cluster.com

zabbixproxy.cluster.com

10.1.1.11

10.1.1.12

10.1.1.13

# hostnamectl set-hostname --static zabbixproxy.cluster.com

# vim /etc/hosts

  1. 把agent2上的zabbix-agent服務先停一下

mark

實驗過程:

  1. 在zabbixproxy上安裝相關軟件包

1 [root\@zabbixproxy \~]# yum install mariadb-server zabbix-proxy-mysql
zabbix-agent

2,啓動數據庫,受權並導入數據

[root\@zabbixproxy \~]# zcat
/usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz

|mysql zabbix_proxy -u zabbix -p123

MariaDB [(none)]\> create database zabbix_proxy default charset utf8;

MariaDB [(none)]\> grant all privileges on zabbix_proxy.* to
'zabbix'\@'localhost' identified by '123';

MariaDB [(none)]\> flush privileges;

8

9

10

[root\@zabbixproxy \~]# mysql

[root\@zabbixproxy \~]# systemctl restart mariadb

[root\@zabbixproxy \~]# systemctl enable mariadb

3, 修改zabbix_proxy上的配置文件,並重啓服務

253 DataSenderFrequency=5
--主動模式下zabbix_proxy多久發送一次收集的數據給zabbix_server

--打開註釋,並寫上密碼(與前面受權一致)

--主動模式下zabbix_proxy多久從zabbix_server接收一次配置數據

190 DBPassword=123

244 ConfigFrequency=60

--主動模式

--zabbix_server的ip

--這個名字最好和你的主機名還有後面在web界面配置代理

13 ProxyMode=0

24 Server=10.1.1.11

43 Hostname=zabbixproxy.cluster.com

的名字保持一致

156 DBHost=localhost

167 DBName=zabbix_proxy

182 DBUser=zabbix

1 [root\@zabbixproxy \~]# vim /etc/zabbix/zabbix_proxy.conf 2

3

4

1 [root\@zabbixproxy \~]# vim /etc/zabbix/zabbix_agentd.conf 2 64
SourceIP=10.1.1.13

3 97 Server=10.1.1.13

4 138 ServerActive=10.1.1.13

5 149 Hostname=zabbixproxy.cluster.com

  1. [root\@zabbixproxy \~]# systemctl restart zabbix-proxy

  2. [root\@zabbixproxy \~]# systemctl restart zabbix-agent

  3. [root\@zabbixproxy \~]# systemctl enable zabbix-agent

  4. [root\@zabbixproxy \~]# systemctl enable zabbix-proxy

4, 修改agent1上的服務並重啓服務

[root\@agent1 \~]# systemctl restart zabbix-agent

把服務器的ip改爲zabbix_proxy的ip,而不是zabbix_server的ip

[root\@agent1 \~]# vim /etc/zabbix/zabbix_agentd.conf 97 Server=10.1.1.13

138 ServerActive=10.1.1.13

149 Hostname=agent1.cluster.com

mark

mark

mark

zabbix專題(2)

驗證測試:

在agent1上找一個監控項作改變(好比登陸用戶數),而後在zabbix_server的圖形界面能看到這個改變,說明proxy
成功.

主動監控和被動監控(拓展)

mark

agent被動模式

相對於agent的被動,也就是表示是server或proxy去找agent拿數據(這也是zabbix
server的默認模式)

配置方法以下:

[root\@agent1 \~]# systemctl restart zabbix-agent

--IP爲zabbix_proxy的ip(若是沒有proxy,則直接爲zabbix_server的ip)

Server=10.1.1.13

agent端配置被動模式的參數以下

[root\@agent1 \~]# vim /etc/zabbix/zabbix_agentd.conf

agent主動模式

相對於agent的主動,也就是表示是agent主動把數據傳給server或proxy

agent主動模式的優勢是:
當agent太多的狀況下,server或proxy去找這麼多agent蒐集數據,壓力負載過大。用主動模式就能夠緩解server或proxy的壓力。

但用主動模式的問題是:
監控項也要轉爲主動式才行,並且不少zabbix自帶模板裏的監控項不支持轉爲主動式.

agent端配置主動模式的參數以下

  1. [root\@agent1 \~]# vim /etc/zabbix/zabbix_agentd.conf

  2. Serveractive=10.1.1.13
    --IP爲zabbix_proxy的ip(若是沒有proxy,則直接爲zabbix_server的ip)

  3. [root\@agent1 \~]# systemctl restart zabbix-agent

mark

mark

mark

zabbix專題(2)

驗證測試:

在agent1上把登陸用戶數再次調整,而後在zabbix_server的圖形界面能看到這個改變,說明主動監控成功.

proxy主動模式

zabbix_proxy主動發數據給zabbix_server(proxy的默認模式)

# vim /etc/zabbix/zabbix_proxy.conf

  1. ProxyMode=0 --此參數爲0表示proxy主動模式

proxy被動模式

zabbix_server找zabbix_proxy爲收集數據

# vim /etc/zabbix/zabbix_proxy.conf

  1. ProxyMode=1 --此參數爲1表示proxy主動模式

場景

場景:
公司大概十幾臺服務器(主要是lnmp環境),如今須要你來設計並使用zabbix監控它們,而且要考慮之後的擴展,
儘可能使用自動的方式實現.

傳智要作一個宣傳網站--》1臺--\>
架構(高可用,負載均衡)--》監控(安裝監控軟件並鏈接)
--》按需求設置監控模板--》因公司發展,業務增加,服務器增長,咱們得基礎擴展監控模板
》公司再發展,有多個機房,咱們要實現分佈式


監控+自動註冊+主動被動模式的優化

相關文章
相關標籤/搜索