zabbixemc存儲監控
① zabbix監控系統是什麼技術
我比較看好zabbix這款監控軟體,理由如下: 1.分布式監控,天生具有的功能,適合於構建分布式監控系統,具有node,proxy2種分布式模式 2.自動化功能,自動發現,自動注冊主機,自動添加模板,自動添加分組,是天生的自動化運維利器的首選,當然於自動化運維工具搭配,puppet+zabbix,或者saltstack+zabbix,那是如魚得水。 3.自定義監控比較方便,自定義監控項非常簡單,支持變數,支持low level discovery,可以參考我寫的文檔自動化運維之監控篇---利用zabbix自動發現功能實現批量web url監控 4.觸發器,也就是報警條件有多重判斷機制,當然,這個需要你去研究一下,這也是zabbix的精華之處, 5.支持多種監控方式,agentd,snmp,ipmi,jmx, 6.提供api功能,二次開發方便,你可以選用zabbix來進行二次深度開發,結合cmdb資產管理系統,業務管理系統,從而使你的自動化運維系統達到新的高度。 7.當然zabbix還有很多其他功能,這里不一一介紹了。 很多人說zabbix不簡單,其實是zabbix的設計理念有些超前,當你都研究到一定程度,你不得不佩服zabbix的團隊是非常強悍的,這種工作機制也是相對先進的。
② zabbix監控項里沒有儲存值選項怎麼辦
用SNMP方式,一般存儲都提供SNMP監控。
__NMP方式,一般存儲都提供SNMP監控,可以找一找MIB或問原廠oid值進行添加。
_abbix通過專用的Agent或者SNMP收集相關的監控數據,然後存儲到資料庫裡面實時在前台展示。Zabbix監控數據主要分為以下兩類: 歷史數據:history相關表,從history_uint表裡面可以查詢到設備監控項目的最大,最小和平均值,即存儲監控數據的原始數據。
③ 如何從Zabbix資料庫中獲取監控數據
Zabbix監控數據主要分為以下兩類:
歷史數據: history相關表,從history_uint表裡面可以查詢到設備監控項目的最大,最小和平均值,即存儲監控數據的原始數據。
趨勢數據: trends相關表,趨勢數據是經過Zabbix計算的數據,數據是從history_uint裡面匯總的,從trends_uint可以查看到監控數據每小時最大,最小和平均值,即存儲監控數據的匯總數據。
Zabbix可以通過兩種方式獲取歷史數據:
1.通過Zabbix前台獲取歷史數據
通過Zabbix前台查看歷史數據非常簡單,可以通過Monitoring->Lastest data的方式查看。也可以點擊右上角的As plain test按鈕保存成文本文件。
2.通過前台獲取的數據進行處理和二次查詢有很多限制,因此可以通過sql語句直接從後台DB查詢數據。
首先大家應該熟悉SQL語句Select 常用用法:
SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]
FROM { Table_name | View_name} [ [,{table2_name | view2_name}
[,...] ]
[ WHERE Serch_conditions ]
[ GROUP BY Group_by_list ]
[ HAVING Serch_conditions ]
[ ORDER BY Order_list [ASC| DEsC] ]
說明:
1)SELECT子句指定要查詢的特定表中的列,它可以是*,表達式,列表等。
2)INTO子句指定要生成新的表。
3)FROM子句指定要查詢的表或者視圖。
4)WHERE子句用來限定查詢的范圍和條件。
5)GROUP BY子句指定分組查詢子句。
6)HAVING子句用於指定分組子句的條件。
7)ORDER BY可以根據一個或者多個列來排序查詢結果,在該子句中,既可以使用列名,也可以使用相對列號,ASC表示升序,DESC表示降序。
8)mysql聚合函數:sum(),count(),avg(),max(),avg()等都是聚合函數,當我們在用聚合函數的時候,一般都要用到GROUP BY 先進行分組,然後再進行聚合函數的運算。運算完後就要用到Having子句進行判斷了,例如聚合函數的值是否大於某一個值等等。
④ 請問zabbix如何監控freenas磁碟信息
自動尋找磁碟
說到底,所有的自動判斷都是人為的設置好所有的可能性,然後根據實際情況從中選擇,方法有很多,看大傢具體要求。在這里,我要對磁碟監控,首先要找出有哪些磁碟,這里使用shell腳本實現。由於zabbix的discovery需要固定的格式,具體可以參考這里,最下面部分。
腳本如下:
rrqm/s: 每秒進行 merge 的讀操作數目。即 delta(rmerge)/s
wrqm/s: 每秒進行 merge 的寫操作數目。即 delta(wmerge)/s
r/s: 每秒完成的讀 I/O 設備次數。即 delta(rio)/sw/s: 每秒完成的寫 I/O 設備次數。即 delta(wio)/s
rsec/s: 每秒讀扇區數。即 delta(rsect)/s
wsec/s: 每秒寫扇區數。即 delta(wsect)/s
rkB/s: 每秒讀K位元組數。是 rsect/s 的一半,因為每扇區大小為512位元組。(需要計算)
wkB/s: 每秒寫K位元組數。是 wsect/s 的一半。(需要計算)
avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。
await: 平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次設備I/O操作的服務時間 (毫秒)。即 delta(use)/delta(rio+wio)%util: 一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因為use的單位為毫秒)
⑤ 如何用zabbix來監控磁碟IO
使用zabbix監控磁碟IO
前面的文章介紹了zabbix簡單的安裝,下面介紹下利用zabbix監控磁碟IO的方法
默認的 Zabbix 監控模板中,對於磁碟主要是剩餘空間之類的監控,對於 IO 方面卻沒有,好在 Zabbix 提供了豐富的定製功能,可自行添加想要監控的任意內容。具體步驟如下:
1、 在被監控伺服器的配置文件(/etc/zabbix/zabbix_agentd.conf)中添加以下內容:
###disk io
UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'
UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
可以先測試看其是否生效,使用如下命令,看是否正常返回數字。注意在命令行運行時,grep 那裡的 $1 需根據自己磁碟設定修改為 sda 或 sdb,awk 那裡需去除一個 $ 符號。
cat /proc/diskstats | grep sda | head -1 | awk '{print $4}'
2、被監控主機重啟 agent
/etc/init.d/zabbix_agentd_ctl restart
3、在 zabbix server 上測試能否接收數據,將其中的 AgentServerIP 修改為被監控伺服器的IP,注意這里是在運行 zabbix 服務端的機器上執行此操作。如果返回的是一串數字則正確,如果返回ZBX_NOTSUPPORTED ,請檢查確認被監控主機的 agent 是否有重啟,網路埠是否開放。
zabbix_get -s AgentServerIP -p 10050 -k custom.vfs.dev.write.ops[sda]
4、在 zabbix web 配置界面的模板中,導入這里提供的模板。並將此模板關聯到要監控的伺服器主機上,很快就可以在 Latest data 中看到獲取的數據並可畫出趨勢圖了。
⑥ 運維監控 zabbix可以做哪些監控
zabbix可以對CPU負荷、內存使用、磁碟使用、網路狀況端實行監控,並且可以埠監視與日誌監視。
zabbix是一個基於WEB界面的提供分布式系統監視以及網路監視功能的企業級的開源解決方案。
zabbix能保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,埠監視等方法提供對遠程伺服器/網路狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
(6)zabbixemc存儲監控擴展閱讀:
要想搭建一個Zabbix的工作環境,需要從伺服器入手。與伺服器通信,管理員需要使用一個Zabbix前端界面,與Zabbix伺服器和資料庫進行通信。三個關鍵(界面、伺服器和資料庫)可以安裝在同一台伺服器上。
但是如果你擁有一個更大更復雜的環境,將它們安裝在不同的主機上也是一個選項。Zabbix伺服器能夠直接監控到同一網路中的設備,如果其他網路的設備也需要被監控,那還需要一台Zabbix代理伺服器。
⑦ zabbix 怎麼監控自己的設備
設備清單:1、前端設備
紅外攝像頭(或者紅外半球),支架,攝像頭電源
2、錄像存儲設備
硬碟錄像機(DVR),硬碟(CIF格式每路每天需硬碟5.3G,D1格式每路每天需硬碟21G)
3、顯示設備
顯示器或者監視器
4、傳輸設備
視頻線,BNC接頭,電源線,PVC管等
5、如需遠程監控
電腦一台、路由器一台
6、原理圖
希望能幫到你
滿意請採納,謝謝!
⑧ 怎麼用zabbix監控c盤空間
Zabbix通過專用的Agent或者SNMP收集相關的監控數據,然後存儲到資料庫裡面實時在前台展示。Zabbix監控數據主要分為以下兩類:
歷史數據:history相關表,從history_uint表裡面可以查詢到設備監控項目的最大,最小和平均值,即存儲監控數據的原始數據。
趨勢數據:trends相關表,趨勢數據是經過Zabbix計算的數據,數據是從history_uint裡面匯總的,從trends_uint可以查看到監控數據每小時最大,最小和平均值,即存儲監控數據的匯總數據。
⑨ 如何通過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中。
參考:
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這個方法。這種方式實際上最終還是由後台資料庫獲取的。方法提供了豐富的參數,使用非常靈活。但對於一次性大規模的取出大量主機大量監控項的大批數據不太適合。