1、zabbix怎麼對設置了密碼的redis進行監控
1、目的
通過自定義腳本獲取redis的性能信息數顯示在zabbix系統上
2、簡要步驟版
2.1 zabbix server端自定義模板權文件
redis
模板文件導出為後綴xml,後附
2.2 zabbix server端定義需要監控的伺服器
這里定義redis組的b103/g12/h12共計3台
凡是充當redis伺服器都應增加2.1中的兩個模板
2.3 zabbix client端配置定義
3台伺服器的zabbix_agentd.conf 增加如下配置:
2、zabbix 3.0.0 如何監控嗎
zabbix基本架構:
1.Server
zabbix系統核心進程,輪詢並捕獲數據、發送通知等。是zabbix agent和zabbix proxy匯報數據的對象。server自身可遠程檢測網路服務。所有的前後端配置、統計信息、可操作數據存儲於此。包含server、前段界面和後端DB幾部分。
2.Agent
部署在被監控主機上用於監控本地資源和應用並向zabbix server匯報結果。使用本地系統調用故非常高效。有主動和被動兩種檢測模式。被動模式下agent根據server或proxy的具體請求來返回數據。主動模式下先主動由server獲取監控項列表在檢測並返回新的數據。採用主動或被動檢測取決於相應監控項的配置。
3.Proxy
可以自由選擇部署或者不部署,主要用於分擔server的負載。在集中化監控遠程位置、分支、網路的場景中是很好的解決方案。可從被監控設備收集數據緩存在proxy本地後傳遞給其所屬的zabbix server。proxy需要單獨的資料庫。
4.Java gateway
java實現的守護進程用於監控JMX類型的應用程序。
5.Sender
命令行工具zabbix_sender,用於向zabbix server發送性能數據和可用性數據。多用於用戶腳本定期向server發送數據。
如:
shell> cd bin
shell> ./zabbix_sender -z zabbix -s 「Linux DB3」 -k db.connections -o 43
6.Get
命令行工具zabbix_get,用於同agent通信從agent獲取數據。可用於zabbix agents的troubleshooting。
如:
shell> cd bin
shell> ./zabbix_get -s 127.0.0.1 -p 10050 -k 「system.cpu.load[all,avg1]」
#zabbix術語表:
host
需要被監控的設備,如交換機、路由器、WEB伺服器、DB伺服器等
host group
被監控設備的邏輯分組,如DB伺服器一組、WEB伺服器一組等。可包含主機和模板。用於許可權控制
item
需要被監控的項,如CPU空閑率、某一塊磁碟的使用率等
trigger
用於評估收到的監控值是否超出設定的閾值的邏輯表達式
event
如trigger狀態改變等值得注意的事件
action
預先定義的響應event的一系列operations
escalation
執行action中的operations的定製場景;一連串的發送通知、執行遠程命令
media
傳遞notification的方式
notification
通過media發送給用戶的關於某個event的消息
remote command
在被監控機器上觸發並自動執行的預定義命令
template
用於簡化和加速主機上大規模監控任務的部署。包含一系列項目,如items, triggers, graphs, screens, applications, low-level discovery rules
application
邏輯組中的一組items
web scenario
一個或多個HTTP request用以檢查web站點可用性
frontend
zabbix的web界面
zabbix api
允許通過JSON RPC 協議創建、更新和獲取zabbix對象如,hosts, items, graphs and others。或者執行其他任務
zabbix server
zabbix核心,履行監控,與zabbix proxies、zabbix client交互、計算trigger、發送notification、存儲數據等任務
zabbix agent
部署在被監控主機上用於監控本地資源和應用
zabbix proxy
可代zabbix server收集數據分擔處理負載
#zabbix配置:
可通過WEB界面或者模板進行配置
需配置內容包括users、user groups、hosts、host groups、items、Triggers、Events、notification、templates、visualisation等。
最終配置會被存儲在後端database中。
參考:
https://www.zabbix.com/documentation/2.4/manual/config
zabbix取數方式
1.zabbix api
基於WEB的API,通過JSON PRC協議獲取或更改zabbix配置,並可用於獲取歷史監控數據。clients和API間的request和response使用JSON格式。包含一系列可從功能上分為不同組別的方法。
發起HTTP請求的格式類似如下:
POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc
{「jsonrpc」:「2.0」,「method」:「apiinfo.version」,「id」:1,「auth」:null,「params」:{}}
其中http://company.com/zabbix/是zabbix前端的地址;Content-Type必須指明且為application/json-rpc, application/json or application/jsonrequest三者之一。{「jsonrpc」:「2.0」,「method」:「apiinfo.version」,「id」:1,「auth」:null,「params」:{}}是請求的具體內容。
一些實例:
*登錄認證
{
「jsonrpc」: 「2.0」,
「method」: 「user.login」,
「params」: {
「user」: 「Admin」,
「password」: 「zabbix」
},
「id」: 1,
「auth」: null
}
其中:
jsonrpc:指明JSON-RPC協議版本,這里是2.0版本
method:指明調用的API方法,這里是用戶登錄
params:需要傳遞給API method的參數,這里是用戶名和密碼
id:本次請求的標識符
auth:用戶認證令牌,目前尚無所以為null
若參數無誤response將會包含用戶認證令牌,如:
{
「jsonrpc」: 「2.0」,
「result」: 「」,
「id」: 1
}
*獲取hosts信息
{
「jsonrpc」: 「2.0」,
「method」: 「host.get」,
「params」: {
「output」: [
「hostid」,
「host」
],
「selectInterfaces」: [
「interfaceid」,
「ip」
]
},
「id」: 2,
「auth」: 「」
}
本例使用可用的用戶認證令牌通過host.get方法獲取所配置的主機的ID 、name等信息,返回如下
{
「jsonrpc」: 「2.0」,
「result」: [
{
「hostid」: 「10084」,
「host」: 「Zabbix server」,
「interfaces」: [
{
「interfaceid」: 「1」,
「ip」: 「127.0.0.1」
}
]
}
],
「id」: 2
}
為了考慮性能影響、盡量僅列出所需項而非返回所有數據
*創建新監控項
例如在上一步獲取的host上建立新的監控項、監控/home/joe/目錄的剩餘空間
{
「jsonrpc」: 「2.0」,
「method」: 「item.create」,
「params」: {
「name」: 「Free disk space on $1」,
「key_」: 「vfs.fs.size[/home/joe/,free]」,
「hostid」: 「10084」,
「type」: 0,
「value_type」: 3,
「interfaceid」: 「1」,
「delay」: 30
},
「auth」: 「」,
「id」: 3
}
其中params參數中的幾個關鍵參數含義如下:
name:監控項的名稱,這個可以自己靈活定義,其中的$1代表key_中的第一個參數,此處為/home/joe/
key_:預定義的監控項,zabbix提供了一系列此類監控內容,此處需從其中進行選擇。
hostid:即上步獲得的hostid
value_type:監控數據值的類型,不同的數字代表不同的類型,此處的3代表整型
delay:zabbix取數時間間隔,此處為30秒取一次
返回結果如下:
{
「jsonrpc」: 「2.0」,
「result」: {
「itemids」: [
「24759」
]
},
「id」: 3
}
itemid為生成的監控項的id
*獲取歷史數據:
從歷史記錄表獲取itemids為23296的按clock降序排列的十條記錄
history參數可能的取值
0 - float;
1 - string;
2 - log;
3 - integer;
4 - text.
{
「jsonrpc」: 「2.0」,
「method」: 「history.get」,
「params」: {
「output」: 「extend」,
「history」: 0,
「itemids」: 「23296」,
「sortfield」: 「clock」,
「sortorder」: 「DESC」,
「limit」: 10
},
「auth」: 「」,
「id」: 1
}
返回結果:
{
「jsonrpc」: 「2.0」,
「result」: [
{
「itemid」: 「23296」,
「clock」: 「1351090996」,
「value」: 「0.0850」,
「ns」: 「563157632」
},
{
「itemid」: 「23296」,
「clock」: 「1351090936」,
「value」: 「0.1600」,
「ns」: 「549216402」
},
…]
}
*錯誤處理
下例忘記了groups這個參數
{
「jsonrpc」: 「2.0」,
「method」: 「host.create」,
「params」: {
「host」: 「Linux server」,
「interfaces」: [
{
「type」: 1,
「main」: 1,
「useip」: 1,
「ip」: 「192.168.3.1」,
「dns」: 「」,
「port」: 「10050」
}
]
},
「id」: 3,
「auth」: 「」
}
返回結果如下,包含的不是result屬性而是error屬性
{
「jsonrpc」: 「2.0」,
「error」: {
「code」: -32602,
「message」: 「Invalid params.」,
「data」: 「No groups for host \」Linux server\「.」
},
「id」: 3
}
對於獲取監控數據來說,比較關心的應該是history.get這個方法。這種方式實際上最終還是由後台資料庫獲取的。方法提供了豐富的參數,使用非常靈活。但對於一次性大規模的取出大量主機大量監控項的大批數據不太適合。
3、zabbix監控怎麼添加報警人
zabbix監控添加主機,報警、監控的設置
根據使用zabbix這么久的經驗,總結了一套zabbix比較實用的添加主機、監控報警的使用流程,供大家參考。
一:添加處理方法,就是如何報警
打開zabbix的管理------處理方法----create media type:
我用的是腳本發郵件的方式來報警的,腳本名字為mail.py。指的一提的是腳本存放位置,我的腳本是放在/usr/local/zabbix/bin/目錄下面,在這里不寫目錄的據對路徑,直接寫腳本名字,他的路徑設置是在zabbix伺服器端的配置文件中設置的,在zabbix_server.conf配置文件中設置:AlertScriptsPath=/usr/local/zabbix/bin/
二:添加zabbix用戶和組,設置其郵箱地址等信息
1:打開zabbix的管理------用戶---選擇用戶組下拉----create user group:
填寫個組名,設置需要的許可權直接保存就成,其他的不用填寫和選擇。
2:打開zabbix的管理------用戶---選擇用戶下拉----create user:
填寫用戶信息
3:添加報警介質,就是報警方式,因為是報警,【信息】那項就不用勾選,信息一般就是伺服器信息發生變化時報警,這個一般沒有什麼意義,所以不勾選,不過你也可以選擇,根據個人喜好。類型的話就是選擇處理發放中的報警介質,選擇你添加的。然後可以保存信息,完成添加用戶(Permissions那項沒有不填寫)。
三:報警觸發器觸發的動作設置
當監控項中的觸發器達到你設置的報警值之後,需要執行操作來發送郵件等動作。具體設置:
1:打開zabbix的系統配置---操作---- 選擇事件源為觸發器------create action:
2:觸發條件設置:
3:詳細操作設置,即滿足觸發條件之後執行什麼動作,這里一般設置為發郵件之類的,設置收郵件的用戶(建議每個組對應一個用戶,這樣發郵件的時候容易設置發送對象):
四:zabbix中常用到的幾個key
Zabbix的key可以理解為zabbix的命令,執行這個key可以得到相應的結果。
1:監控埠的:net.tcp.port[,3306]
/usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 返回1為192.168.8.120的埠3306存在,0為不存在
2:監控進程的:proc.num[mysqld]
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 返回值為192.168.8.120中mysqld的進程數量
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 返回值為192.168.8.120中所有的進程數量
3:查看CPU核數的:system.cpu.num 返回值為伺服器CPU的核數
4:查看系統的系統啟動時間和當前時間:system.boottime、system.localtime 返回值為系統啟動時間和當前時間,為時間戳格式
5:查看系統的簡單信息:system.uname 返回值為192.168.8.120的系統信息,類似於linux系統的uname -a命令
6:查看windowns系統當前網卡的進出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系統的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一樣
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值為IP為192.168.8.120的進流量,此值為計數值,單位為bytes,減去上次取得值,除以時間間隔為此段時間內的平均流量
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值為IP為192.168.8.120的出流量,此值為計數值,單位為bytes,減去上次取得值,除以時間間隔為此段時間內的平均流量
7:查看系統內存大小:vm.memory.size[total],返回值單位bytes
8:查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,單位是:bytes
9:查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1
10:查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回為MD5值(好像只有2.0以上的版本有這個key)
11:自動發現網卡並監控流量和自動發現分區及分區掛載情況的兩個key:net.if.discovery,vfs.fs.discovery,windows和linux監控模板中都有這模板(2.0以上版本),應用即可
以上是常用的key,其實監控伺服器無非就是內存、硬碟佔用、CPU負載、流量、伺服器和埠等情況。如果要監控其他的可以自定義key來實現,本人喜歡自定義key,寫個腳本來返回,得到自己想要的監控結果,zabbix在這塊做的非常好,擴展性很強,支持各種腳本來實現自定義的key。
要啟用自定義key,需要在客戶端的配置文件中啟用UnsafeUserParameters=1參數,然後在配置文件的最下面來定義key,如:
UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk為key的名字,/usr/local/zabbix/bin/disk.py為伺服器端調用free.disk這個key時執行的腳本,其結果就是free.disk的返回值。腳本可以是任何可以運行的腳本語言。
五:創建監控模板和監控項
其實在zabbix伺服器端安裝完成之後,就有許多自帶的監控模板,基本上可以滿足大眾化的監控需求,不過其中有許多是沒有必要的監控項或是自己不感興趣的,比較冗餘,所以要做好監控的話,還是自定義模板和監控項,這個監控模板可以修改zabbix系統自帶的,也可以自己創建。以下為自己創建監控模板。
1:創建監控模板:
打開zabbix的系統配置---模板----create template:
填寫模板名字和模板所在組保存即可。
4、zabbix 部署好後 地址是多少
1、zabbix是一個基copy於WEB界面的,並提供分布式系統監視以及網路監視功能的企業級的開源解決方案。 zabbix能監視各種網路參數,保證伺服器系統的安全運營;並提供柔軟的通知機制以讓運維人員能夠快速定位。
2、zabbix通過C/S模型來收集數據,通過B/S模型模式在web端展示和進行配置。
被監控端:主機設備通過安裝agent收集數據並發送給server端,網路設備通過SNMP收集數據並發送給server端。
server端:通過收集SNMP和agent發送來的數據,將數據寫入到後台資料庫中(例如:mysql,oracle),在通過web展示出來。
3、運行環境
zabbix server 需要運行在LAMP或者是LNMP的環境下;
agent可以部署在目前常見的OS中,例如linux,windows,HPUX,Solaris,Sun;
SNMP可以支持常見的網路設備。
5、如何設置zabbix來監控VMware
zabbix 2.2版本以後(Vmware vCenter or vSphere 最低版本 4.1),開始支持直接監控vmware了, 可以自動搜索到所有的ESXI和VM,並自動把他們列入監控對象。我覺得非常不錯,下面說說我的監控步驟。
理論分析
1.模板在zabbix中已經預先配置好了,對於vcenter的HOST,指定為Template Virt VMware。編譯安裝階段要想支持vmware監控需要在./configure添加--with-libxml2和--with-libcurl其中前一個是在2.2中添加的;
2.安裝完成後,在zabbix_server.conf配置文件需要指定『StartVMwareCollectors』參數,否則啟動zabbix_server是不會啟動vmware相關的進程(配置文件有解釋我就不做詳細敘述);
vi /data/soft/zabbix-2.2.0/etc/zabbix_server.conf
StartVMwareCollectors=5
VMwareFrequency=60
VMwareCacheSize=8M
3.在HOST界面中添加vmwareesxi設備後,需要指定{$URL}、{$USERNAME}和{$PASSWORD}三個變數,因為在調試系統自帶的"TemplateVirtVMware"模板時,模板中的KEY調用的是這三個變數;原則上添加對vcenter的host監控時,不需要zabbix_agent,在web頁面輸入必要的ip信息,關聯好模板,填寫好三個宏(web頁面上叫巨集)即可。
4.當第三步成功的時候不僅能監控esxi物理主機,還能自動發現該esxi上運行的主機並自動添加到監控系統中並載入"Template Virt VMware Guest"模板(模板在下面提供下載)。
操作步驟
1、添加esxi主機監控
2、設置變數
3、關聯模板
配置好HOST後,經過VMware Frequency時間後,zabbix 監控到vmware vcenter機器上管理了哪些ESXI伺服器,並將其加入到HOST中並同Template Virt VMware Hypervisor模板關聯,再進一步監控到哪些vm和volume,也一並將其加入到HOST中並同Template Virt VMware Guest模板關聯。
4、查看host會多出很多監控項
5、自動發現的監控項目
在HOST自動發現並添加後,item的更新是根據每一個項目(item)設置的時間間隔來更新的,但是與VMwareFrequency有關,因為check_simple大多都是從內存中維護的vmware集群結構中獲取的值。
結語:
使用Zabbix的目的,是為了能夠更好的監控MySQL資料庫伺服器,並且能夠生成圖形報表,雖然Nagios也能夠生成圖形報表,但沒有Zabbix這么強大。以上是通過設置zabbix來監控VMware主機的原理以及步驟解析,希望能幫到有需要的朋友。
6、請說明下面zabbix監控項配置的意義,詳細一點,謝謝了
^分開來解釋
userParameter=dns.ration_[*], 用戶參數,dns
/opt/tools/dns_status.sh | grep "^$1:" | awk '{print $$3}' 取值
具體取到的值是什麼我不知道,我需要dns_status.sh腳本文件內版容或者你直權接進入系統輸入/opt/tools/dns_status.sh | grep "^$1:" | awk '{print $$3}' 看看得到的是什麼
7、zabbix監控vmware時該設置哪些報警
需要伺服器上有mail服務,可以發送郵件。
>>>Configuration>>>Action>>>CreateAction Action的信息 >>>Name(可以根據自己的命名規則回) >>>Actionconditions>>>New>>>Trigger>>>」=」>>>Select>>>選擇需要答的Trigger>>>Add >>>DetailsAction>>>New>>>。
8、zabbix怎樣設置監控web頁面的
Zabbix通過專用的Agent或者SNMP收集相關的監控數據,然後存儲到資料庫裡面實時在前台展示。回
Zabbix監控數據主要分為答以下兩類: 歷史數據:history相關表,從history_uint表裡面可以查詢到設備監控項目的最大,最小和平均值,即存儲監控數據的原始數
9、如何通過Zabbix獲取監控數據
zabbix基本架構:
1.Server
zabbix系統核心進程,輪詢並捕獲數據、發送通知等。是zabbix agent和zabbix proxy匯報數據的對象。server自身可遠程檢測網路服務。所有的前後端配置、統計信息、可操作數據存儲於此。包含server、前段界面和後端DB幾部分。
2.Agent
部署在被監控主機上用於監控本地資源和應用並向zabbix server匯報結果。使用本地系統調用故非常高效。有主動和被動兩種檢測模式。被動模式下agent根據server或proxy的具體請求來返回數據。主動模式下先主動由server獲取監控項列表在檢測並返回新的數據。採用主動或被動檢測取決於相應監控項的配置。
3.Proxy
可以自由選擇部署或者不部署,主要用於分擔server的負載。在集中化監控遠程位置、分支、網路的場景中是很好的解決方案。可從被監控設備收集數據緩存在proxy本地後傳遞給其所屬的zabbix server。proxy需要單獨的資料庫。
4.Java gateway
java實現的守護進程用於監控JMX類型的應用程序。
5.Sender
命令行工具zabbix_sender,用於向zabbix server發送性能數據和可用性數據。多用於用戶腳本定期向server發送數據。
如:
shell> cd bin
shell> ./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43
6.Get
命令行工具zabbix_get,用於同agent通信從agent獲取數據。可用於zabbix agents的troubleshooting。
如:
shell> cd bin
shell> ./zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
#zabbix術語表:
host
需要被監控的設備,如交換機、路由器、WEB伺服器、DB伺服器等
host group
被監控設備的邏輯分組,如DB伺服器一組、WEB伺服器一組等。可包含主機和模板。用於許可權控制
item
需要被監控的項,如CPU空閑率、某一塊磁碟的使用率等
trigger
用於評估收到的監控值是否超出設定的閾值的邏輯表達式
event
如trigger狀態改變等值得注意的事件
action
預先定義的響應event的一系列operations
escalation
執行action中的operations的定製場景;一連串的發送通知、執行遠程命令
media
傳遞notification的方式
notification
通過media發送給用戶的關於某個event的消息
remote command
在被監控機器上觸發並自動執行的預定義命令
template
用於簡化和加速主機上大規模監控任務的部署。包含一系列項目,如items, triggers, graphs, screens, applications, low-level discovery rules
application
邏輯組中的一組items
web scenario
一個或多個HTTP request用以檢查web站點可用性
frontend
zabbix的web界面
zabbix api
允許通過JSON RPC 協議創建、更新和獲取zabbix對象如,hosts, items, graphs and others。或者執行其他任務
zabbix server
zabbix核心,履行監控,與zabbix proxies、zabbix client交互、計算trigger、發送notification、存儲數據等任務
zabbix agent
部署在被監控主機上用於監控本地資源和應用
zabbix proxy
可代zabbix server收集數據分擔處理負載
#zabbix配置:
可通過WEB界面或者模板進行配置
需配置內容包括users、user groups、hosts、host groups、items、Triggers、Events、notification、templates、visualisation等。
最終配置會被存儲在後端database中。