1. 程式人生 > >配置和管理Zabbix(一)

配置和管理Zabbix(一)

trigge zabbix serve 名稱 net rep accept discover 不同的

四、添加監控客戶端
1、監控Linux服務器
首先安裝zabbix-agent客戶端
CentOS6客戶端:

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
# yum install zabbix-agent      #安裝的過程自動創建zabbix用戶和組
# chkconfig --level 345 zabbix-agent on     #設置自啟動級別
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.100.3.66                #本機和監控端IP,需用逗號隔開
ServerActive=10.100.3.66:10051          #監控端IP和端口號
Hostname=commission-server              #客戶端主機名,添加主機時要使用
註:Server和ServerActive都指定zabbix server的IP地址,不同的是,前者是被動取數據,後者是主動上傳數據。
# service zabbix-agent start                    #啟動agent
# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
# service iptables restart
# service iptables save
# netstat -anpl|grep 10050

技術分享圖片
CentOS7客戶端:

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# yum install zabbix-agent          #安裝的過程自動創建zabbix用戶和組
# cat /etc/passwd|grep zabbix
zabbix:x:998:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.100.3.66
ServerActive=10.100.3.66:10051
Hostname=3d-gold-server
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
# firewall-cmd --permanent --add-port=10050/tcp --zone=public 
# firewall-cmd –reload
# netstat -anpl|grep 10050

技術分享圖片
配置監控端(服務端):

# firewall-cmd --permanent --add-port=10051/tcp --zone=public 
# firewall-cmd --permanent --add-port=10050/tcp --zone=public 
# firewall-cmd --reload

配置-->主機-->創建主機,輸入主機名稱(客戶端名稱,zabbix_agentd.conf配置的名稱)、可見的名稱(別名,外部顯示的名稱)、群組(主機要加入的主機群組)、agent代理程序的接口(客戶端IP和端口,默認為IP地址,也可以選擇DNS輸入域名),默認啟用即可。
技術分享圖片
在模板界面,輸入linux搜索可用的鏈接指示器,選擇Template OS Linux

技術分享圖片
先點擊第一個添加(添加鏈接模板),再點擊第二個添加(添加主機),完成主機的創建。
zabbix_get -s 10.100.2.200 -p 10050 -k agent.ping #返回1表示正常
可通過zabbix_get -h獲取幫助文檔。
查看主機,可以看到ZBX顯示為綠色,表示監控正常。否則就要檢查日誌。
技術分享圖片
查看客戶端日誌,如果有以下錯誤提示:
active check configuration update from [10.100.3.66:10051] started to fail (cannot connect to [[10.100.3.66]:10051]: [113] No route to host)
請檢查監控端防火墻配置是否正確,10051端口是否可以訪問。
此時在監控中-->最新數據,可以看到剛添加的客戶端的監控數據。
技術分享圖片
打開監測中-->圖形,選擇群組、主機、圖形即可查看想要的圖表了。如下圖:
技術分享圖片
在添加第2臺主機3d-gold時,可以點擊已有的主機,選擇克隆,再修改主機名稱、可見的名稱、IP地址,點擊添加即可。其他主機相同操作。
技術分享圖片
2、監控Windows服務器
下載zabbix_agent:
下載地址:https://www.zabbix.com/download_agents,下載並解壓縮
技術分享圖片
解壓後的目錄:bin、conf
bin文件夾:dev文件夾、zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe
註:有win32和win64兩個文件夾,分別用於32位和64位系統(文件相同)。
conf文件夾:zabbix_agentd.win.conf
在C盤新建文件夾:C:\Program Files\Zabbix_agent(自定義路徑和文件夾名),並復制“dev文件夾、zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe”(根據操作系統版本選擇win32或win64)和“zabbix_agentd.win.conf”到此目錄。如下圖:
技術分享圖片
配置zabbix_agented.win.conf:
以文本方式打開(如notepad++,格式不會亂),修改以下幾項:和Linux客戶端類似

LogFile=C:\Program Files\Zabbix_agent\zabbix_agentd.log     #日誌文件路徑
EnableRemoteCommands=1              #允許在本地執行遠程命令
LogRemoteCommands=1                 #執行遠程命令是否保存操作日誌
Server=10.100.3.66                      #監控端IP,被動模式
ServerActive=10.100.3.66:10051          #監控端IP,主動模式
Hostname=oa-server                      #客戶端名稱(需和監控端一致)

技術分享圖片
註冊和啟動服務:以管理員模式啟動cmd命令行
註冊服務:"c:\Program Files\Zabbix_agent\zabbix_agentd.exe" -i -c "c:\Program Files\Zabbix_agent\zabbix_agentd.win.conf"
註:刪除服務為zabbix_agentd.exe -d -c zabbix_agented.win.conf
技術分享圖片
啟動服務:"c:\Program Files\Zabbix_agent\zabbix_agentd.exe" -s -c "c:\Program Files\Zabbix_agent\zabbix_agentd.win.conf"
也可在服務裏,選擇Zabbix Agent服務,點擊啟動
技術分享圖片
通過netstat -an命令可以看到端口已起來:
技術分享圖片
配置防火墻:允許10050(TPC/UDP)端口進來
最好把允許zabbix_agentd.exe程序通過防火墻通信也打開
技術分享圖片
監控端配置:
同Linux客戶端操作類似,添加主機模板時,可以搜索windows,選擇Template OS Windows模板。
技術分享圖片
遠程操作命令:
管理-->腳本-->創建腳本,如下圖:輸入名稱,命令,描述,點擊添加。
技術分享圖片
打開拓撲圖,點擊需要重啟的Win服務器,選擇重啟命令即可。
技術分享圖片
3、監控網絡設備連通性
通過ICMP PING監控網絡設備的連通性:
Zabbix使用外部命令fping處理ICMP ping的請求,在3.4.2中默認已安裝好,直接使用即可。
技術分享圖片
1>添加網絡設備
配置-->主機-->創建主機,輸入主機名稱、可見的名稱、選擇群組、輸入IP地址
技術分享圖片
2>在模板頁面,添加Template Module ICMP Ping模板
在鏈接指示器中,點擊選擇,在Templates群組中選中Template Module ICMP Ping,然後添加即可
技術分享圖片
3>添加圖形
在圖形頁面,點擊創建圖形
技術分享圖片
添加完成後,即可看到監控圖:
技術分享圖片
4>監控項和觸發器
在最新數據中可看到監控項中的最新數據:
技術分享圖片
默認已有觸發器模板,添加設備後默認已啟用
技術分享圖片
4、資產管理
配置-->主機,打開某臺主機的配置-->主機資產記錄,如下圖(截取部分內容):
默認停用的,可以選擇手動或自動(自動的僅獲取名稱和操作系統),然後補充相應的數據,最後更新即可。
技術分享圖片
查看資產記錄:
打開資產記錄?主機,選擇相應主機,即可查看主機的概述,打開細節可查看所有記錄項。
技術分享圖片
五、監控項管理
Items是從主機裏面獲取的所有數據。通常情況下叫item為監控項,item由key+參數組成,例如監控項中需要獲取cpu信息,則需要一個對應的監控key:system.cpu.load [avg5],avg5是對應的參數,表示5分鐘的負載情況。
創建監控項:
例如:獲取CPU的內核數:
打開:配置-->主機-->監控項,如下圖:
技術分享圖片
技術分享圖片
點擊創建監控項,輸入名稱(如CPU Core Num),選擇鍵值(system.cpu.num),添加到應用集(CPU),填入主機資產記錄欄位(硬件)
技術分享圖片
註意:在創建Item過程中,選擇Key時,要將選擇的system.cpu.num[<type>]的key值修改成system.cpu.num,否則會報Invalid first parameter的錯誤。
最後點擊添加即可。
但這僅僅是針對某一臺服務器添加的監控項,如果要對所有服務器都使用,可在“配置”?“模板”?“監控項”(如Template OS Linux)中添加即可。
技術分享圖片
最新數據可以看到cpu是4核的。
技術分享圖片
Key格式:Item key格式包含key名稱和參數,參數必須符合規範
技術分享圖片
首先驗證key名是否合法,如果存在參數那麽驗證參數是否合法,如果沒有參數那直接跳過。
key名稱規範:0-9a-zA-Z_-.,即允許字符:所有數字、大小寫字母、下劃線、減號、點。
key可以有多個參數,他們之間用逗號分開,key參數可以是帶引號的字符串、不帶引號的字符串以及數組。參數如果為空,那麽將會使用他設置的默認值。

通過自動發現,監控CPU每個核心:
1、創建模板或使用已有的模板。
2、創建自動發現規則
  配置-->模板-->自動發現-->創建發現規則:
技術分享圖片
3、創建監控項原型
  配置-->模板-->自動發現-->監控項原型-->創建監控項原型:
技術分享圖片
註:Windows中監控項原型略有不同,鍵值改為:system.cpu.util[{#CPU.NUMBER},,],否則會報Invalid second parameter的錯誤,其他類似。
在最新數據中顯示效果:
技術分享圖片
4、創建圖形原形(可省略)
配置-->模板-->自動發現-->圖形原型-->創建圖形原型:
技術分享圖片
這樣,就可以在監測中-->圖形,看到每個核心的使用百分比圖形了。
如果想把多個核心放在一張圖上,則還需要針對具體主機創建圖形。
配置-->主機-->圖形-->創建圖形:
技術分享圖片
效果如下:
技術分享圖片

六、觸發器管理
默認大部分監控項都在模板中配置了觸發器,但有些監控項需要根據個人需要自已去創建。另外像上面例子在自動發現規則中創建了CPU core discovery,但卻沒有創建觸發器類型。
創建觸發器可以在模板的觸發器中創建,如定義了自動發現規則也可以在自動發現規則的觸發器中創建觸發器類型。
具體的觸發器定義規則,可參考官方文檔:
觸發器、自動發現
例如:5分鐘內CPU使用率的平均值超過85%時報警
配置-->模板-->Template OS Linux-->觸發器-->創建觸發器,
在監控項中可以看到system.cpu.util[,,]表示CPU使用率,返回浮點數
技術分享圖片
其中有一個cpu idle時間(system.cpu.util[,idle]),即cpu的空閑時間,當空閑時間小於15%的時候就是cpu大於85%的時候。如下圖:
輸入名稱:{HOST.NAME} cpu use percent 5m avg > 85%
選擇嚴重性:如一般嚴重
選擇表達式:直接輸入,或點擊添加插入以下表達式都可以
{Template OS Linux:system.cpu.util[,idle].avg(5)}&lt;15
技術分享圖片
其他值默認,選擇啟用,添加即可。
技術分享圖片
另外,還可以在自動發現規則裏創建觸發器原型。
例如:監控每個CPU core 10分鐘內平均使用率超過90%時觸發嚴重告警
配置-->模板-->Template OS Linux-->自動發現規則-->CPU core discovery-->觸發器類型-->創建觸發器原型,
輸入名稱:{HOST.NAME} CPU core {#CPU.NUMBER} 10m avg > 90%
選擇嚴重性:如自定義為嚴重
表達式:{Template OS Linux:system.cpu.util[{#CPU.NUMBER},user,avg1].avg(10)}>90
其他默認,選擇啟用,添加即可。
註:Windows模板和Linux略有不同,表達式改為:{Template OS Windows:system.cpu.util[{#CPU.NUMBER},,].min(10m)}>90
技術分享圖片
可以把報警值調低(如50%),平均時間設為1分鐘,然後通過計算圓周率來進行壓力測試,觸發告警。
[root@zabbix ~]# echo "scale=8000; 4*a(1)" | bc -l -q
技術分享圖片
默認網卡自動發現規則Network interface discovery沒有觸發器原型,可以手動創建。
例如:網卡流出流量5分鐘內平均流量超過30M時報警
配置-->模板-->Template OS Linux-->自動發現規則-->Network interface discovery-->觸發器類型-->創建觸發器原型,
輸入名稱:{HOST.NAME} Outgoing network traffic on {#IFNAME} 5m avg > 30M
選擇嚴重性:如警告
表達式:{Template OS Linux:net.if.out[{#IFNAME}].avg(5)}>30M
註:30M為bps,如想使用Bps(byte),可以用net.if.out[{#IFNAME},bytes]。
其他默認,選擇啟用,添加即可。
技術分享圖片
用此規則可以監控服務器上傳下載文件的流量。
從FTP服務器下載一個大文件,觸發告警。
技術分享圖片
參考:官方文檔:觸發器表達式、官方文檔:支持的觸發器函數
其他參考:觸發器相關、觸發器詳解

配置和管理Zabbix(一)