zabbix伺服器端通過與zabbix agent通信來擷取用戶端伺服器的資料,agent分為兩個版本,在配置主機我們可以看到一個是agent,另一個是agent(active)。
agent:zabbix server向zabbix agent讨要資料。
agent(active):zabbix agent送出資料給zabbix server。
監控項keys清單
以下表格是zabbix agent所支援的所有key清單,添加一向監控的時候,首先想到的應該是zabbix agent是否已經有相關的key存在,而不是自己去寫腳本來擷取key。
agent.hostname
傳回被監控端名稱(字元串)
agent.ping
檢測被監控端是否存活(1:運作中 其他:未運作)-使用函數 nodata()檢測用戶端是否正在運作
agent.version
zabbix agent版本字元串
kernel.maxfiles
系統支援最大的open files整數
kernel.maxproc
系統支援最大的程序數量整數
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>]
監控日志檔案
file - 檔案詳細路徑
regexp - 正則
encoding - 編碼
maxlines - zabbix agent向server或者proxy發送最大的行數。
這個參數覆寫配置檔案zabbxi_agentd.conf中的’MaxLinesPerSecond’
mode - 可選值:all (預設), skip (跳過處理老資料).mode參數從2.0版本開始支援
output - 可選項,輸出格式模闆.
示例: log[/var/log/syslog] log[/var/log/syslog,error] log[/home/zabbix/logs/logfile,,,100]
logrt[file_pattern,<regexp>,<encoding>,<maxlines>,<mode>,<output>]
Monitoring of log file with log rotation support.
file_pattern - 檔案絕對路徑
net.dns[<ip>,zone,<type>,<timeout>,<count>]
檢測DNS服務是否開啟0 – DNS挂了 1 - DNS運作中
ip - DNS伺服器的ip位址(留白表示使用本地DNS, ignored onWindows)
zone - 需要測試的域名
type - 記錄類型 (預設為 SOA),type可選值: ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (除了windows), HINFO, MINFO, TXT, SRV SRV
timeout (ignored on Windows) – 逾時時間(預設1秒)
count (ignored on Windows) – 重試次數 (預設值2)
示例key: net.dns[8.8.8.8,zabbix.com,MX,2,1]
net.dns.record[<ip>,zone,<type>,<timeout>,<count>]
執行一個DNS查詢擷取DNS查詢資料.
ip - DNS伺服器的ip位址(留白表示使用本地DNS, ignored on Windows)
type - 記錄類型 (預設SOA,可選值同net.dns)
示例key: net.dns.record[8.8.8.8,ttlsa.com,MX,2,1]
net.if.collisions[if]
Out-of-window collision.Number of collisions. Integer.if - 網卡
net.if.discovery
列出網卡.通常用于低級别的discovery.JSON對象
net.if.in[if,<mode>]
網卡入口流量整數.
if - 網卡名稱
mode - 可用值: bytes - 位元組數 (預設)
packets - 包數量
errors - 錯誤數量
dropped - 丢包數量
示例keys: net.if.in[eth0,errors] net.if.in[eth0]
net.if.out[if,<mode>]
網卡出口流量(參數參見net.if.in)
net.if.total[if,<mode>]
網卡進/出流量的總和(參數參見net.if.in)
net.tcp.listen[port]
檢測端口是否開啟0 – (not listen) 1 – in LISTEN stateport
示例: net.tcp.listen[80]
net.tcp.port[<ip>,port]
是否可以連接配接到指定的TCP端口0 – cannot connect 1 – can connect
ip - IP位址(預設是 127.0.0.1)
port - 端口
範例: net.tcp.port[,80] 檢測web伺服器端口是否運作中
net.tcp.service[service,<ip>,<port>]
檢測服務是否開啟,并且端口可用0 – 服務挂了 1 – 服務運作中
service - 如下:ssh, ntp, ldap, smtp, ftp, http, pop, nntp,imap, tcp, https, telnet
ip - IP位址 (預設127.0.0.1)
port - 端口 (預設情況為标準端口号)
示例key: net.tcp.service[ftp,,45]
net.tcp.service.perf[service,<ip>,<port>]
檢測伺服器性能0 – 服務挂了; seconds – 連結到伺服器端口消耗的時間
service - 如下:ssh, ntp, ldap, smtp, ftp, http, pop, nntp,imap, tcp, https, telnet
ip - IP位址 (預設127.0.0.1)
port - 端口 (預設情況為标準端口号)
示例key: net.tcp.service.perf[ssh]
net.udp.listen[port]
proc.mem[<name>,<user>,<mode>,<cmdline>]
使用者程序消耗的記憶體記憶體使用量 (位元組機關).
name - 程序名 (預設值 “all processes”)
user - 使用者名 (預設值“all users”)
mode - 可選值: avg, max, min, sum (預設)
cmdline - 指令行過濾(正則表達時)
示例keys: proc.mem[,root] – root的程序消耗了多少記憶體
proc.mem[zabbix_server,zabbix] – zabbix使用者運作的zabbix_server使用了多少記憶體
proc.mem[,oracle,max,oracleZABBIX]
proc.num[<name>,<user>,<state>,<cmdline>]
某使用者某些狀态的程序的數量程序數量
name - 程序名稱 (預設“all processes”)
user - 使用者名 (預設 “all users”)
state - 可用值: all (預設), run,sleep, zomb
示例keys: proc.num[,mysql] – MySQL使用者運作的程序數量
proc.num[apache2,www-data] – www-data運作了多少個apache2程序
proc.num[,oracle,sleep,oracleZABBIX]
備注:Windows系統隻支援name和user兩個參數
sensor[device,sensor,<mode>]
讀取硬體傳感器
device - 裝置名稱
sensor - 傳感器名稱
mode - 可選值:avg, max, min
示例key: sensor[w83781d-i2c-0-2d,temp1] Prior to Zabbix 1.8.4, the sensor[temp1] format was used. On Linux 2.6+, 讀取/sys/class/hwmon. On OpenBSD, 讀取hw.sensors MIB.示例keys: sensor[cpu0,temp0] – CPU0的溫度 sensor[cpu[0-2]$,temp,avg] – cpu平均溫度Zabbix 1.8.4開始支援OpenBSD
system.boottime
系統啟動的時間戳整數.unix時間戳
system.cpu.intr
裝置中斷整數
system.cpu.load[<cpu>,<mode>]
CPU負載浮點數
cpu - 可用值: all (預設), percpu (所有線上cpu的負載)
mode - 可用值:avg1 (1分鐘 預設值), avg5(5分鐘平均), avg15 (15分鐘平均值)
範例key: system.cpu.load[,avg5]
system.cpu.num[<type>]
CPU數量處理器個數type - 可用值: online (預設值), max範例: system.cpu.num
system.cpu.switches
上下文交換交換次數老命名方式: system[switches]
system.cpu.util[<cpu>,<type>,<mode>]
CPU使用率百分比
cpu - cpu數量 (預設是所有cpu),0或為空就代筆CPU所有核心
type - 可用值: idle, nice, user (預設), system (windows系統預設值), iowait, interrupt, softirq,steal
mode - 可用值: avg1 (一分鐘平均,預設值), avg5(5分鐘平均, avg15 (15分鐘平均值)
範例key: system.cpu.util[0,user,avg5]
system.hostname[<type>]
傳回主機名字元串
type (僅用于windows系統) – 可用值: netbios(預設) or host
system.hw.chassis[<info>]
傳回機架資訊字元串
info - full (預設), model, serial, type 或vendor
例如: system.hw.chassis
Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop]
備注:要root權限,因為這些資訊是從記憶體中讀取的。
system.hw.cpu[<cpu>,<info>]
傳回CPU資訊字元/數字
cpu - cpu數量或者all (預設)
info - full (預設), curfreq, maxfreq, model 或者vendor
例如: system.hw.cpu[0,vendor] AuthenticAMD 從/proc/cpuinfo、/sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq擷取資訊. 如果指定了CPU數量和 curfreq或者maxfreq, 将會傳回數值(Hz).
system.hw.devices[<type>]
列出PCI或者USB文本值
type - pci (預設) or usb
範例: system.hw.devices[pci] 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge [..] 傳回lspci或者lsusb (不帶參數)
system.hw.macaddr[<interface>,<format>]
列出MAC位址字元串
interface - all (預設) 或者正規表達式
format - full (預設) 、short
範例: system.hw.macaddr["eth0$",full] [eth0] 00:11:22:33:44:55 列出指定接口mac位址 如果format指定為short,MAC位址相同的将會被忽略掉
system.localtime[<type>]
系統時間.數字或者字元串
system.run[command,<mode>]
在制定的主機上運作指令文本
command - 指令
mode - wait (預設值, 執行逾時時間), nowait (不等待)最大可用傳回512KB資料,包含空白資料。 指令輸出資料必須是文本
例如: system.run[ls -l /] – 列出/的檔案和目錄.
Note: 啟用這個方法, agent配置檔案必須配置 EnableRemoteCommands=1選項
system.stat[resource,<type>]
虛拟記憶體狀态數字ent
system.sw.arch
傳回軟體資訊字元串
範例: system.sw.arch i686
system.sw.os[<info>]
傳回系統資訊字元串
info - full (default), short ,name
範例: system.sw.os[short] Ubuntu 2.6.35-28.50-generic 2.6.35.11
資訊來自如下檔案:
/proc/version [short]
/proc/version_signature [name]
/etc/issue.net
system.sw.packages[<package>,<manager>,<format>]
已安裝軟體清單文本值
package - all (預設)或者正規表達式
manager - all (預設) or a package manager
format - full (預設) ,short
範例: system.sw.packages[mini,dpkg,short]
system.swap.in[<device>,<type>]
交換分區IN(磁盤交換到記憶體)數字
device - 交換分區裝置 (預設all)
type - 可選值: count (swapins數量), sectors(sectors swapped in), pages (pages swapped in).
示例key: system.swap.in[,pages]
資料采集自: Linux 2.4: /proc/swaps, /proc/partitions, /proc/stat
Linux 2.6: /proc/swaps, /proc/diskstats, /proc/vmstat
system.swap.out[<device>,<type>]
Swap out (f記憶體到磁盤) .數字
device - swap裝置 (預設all)
type - count (number of swapouts), sectors(sectors swapped out), pages (pages swapped out). 示
例key: system.swap.out[,pages]
system.swap.size[<device>,<type>]
交換分區大小位元組或者百分比
device - 交換分區 (預設值 all)
type - free (free swap space, default), pfree (free swap space, in percent), pused (used swap space, in percent), total (total swap space), used (used swap space)
示例 system.swap.size[,pfree] – 空閑swap百分比
system.uname
傳回主機相信資訊.字元串
system.uptime
系統運作時長(秒)多少秒使用s/uptime來擷取
system.users.num
登陸使用者數量多少使用者agent使用who指令擷取
vfs.dev.read[<device>,<type>,<mode>]
磁盤讀取狀态整數,浮點數(如果type為如下)
device - 磁盤裝置 (預設值 “all”)
type - 可選值:sectors, operations, bytes, sps, ops, bps(必須指定, 不同作業系統下不同). sps, ops, bps stand for: sectors, operations, bytes per second, respectively
mode - 可選值: avg1, avg5, avg15.
備注: 隻有type為sps, ops, bps的時候,第三個參數才被支援。
不同作業系統的TYPE參數: FreeBSD – bps Linux – sps OpenBSD – operations Solaris – bytes
示例key: vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]
磁盤寫入狀态整數,
device - 磁盤裝置 (預設 all)
type - sectors, operations, bytes, sps, ops, bps
mode - one of avg1 (default),avg5 , avg15.
example: vfs.dev.write[,operations] Old naming: io
vfs.file.cksum[file]
計算檔案校驗 UNIX cksum.
file - 檔案完整路徑
vfs.file.contents[file,<encoding>]
擷取文本内容若為空,隻傳回 LF/CR characters.
例如: vfs.file.contents[/etc/passwd] 檔案不可以超過64KB.
vfs.file.exists[file]
檢測檔案是否存在1 – 存在 0 – 不存在
file - 檔案完整路徑
vfs.file.md5sum[file]
檔案MD5校驗碼檔案MD5哈希值
file - 完整路徑
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
檔案中搜尋字元串包含字元串的行,或者為空
regexp - GNU正規表達式
start line - 從哪一行開始,預設第一行
end line - 從哪一行結束,預設最後一行
如: vfs.file.regexp[/etc/passwd,zabbix]
vfs.file.regexp[/path/to/some/file,”([0-9]+)$”,,3,5,\1]
vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>]
檔案中搜尋字元串0 – 未找到 1 – 找到
regexp - GNU 正規表達式
start line - 哪行開始,預設第一行
end line - 哪行結束,預設最後一行
例如: vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file]
檔案大小位元組fzabbix必須有可讀此檔案的權限
vfs.file.time[file,<mode>]
檔案時間資訊Unix 時間戳.
mode - modify (預設, 修改時間), access – 最後通路時間, change – 最後改變時間
例如: vfs.file.time[/etc/passwd,modify] 備注:檔案大小有限制
vfs.fs.discovery
列出挂載的檔案系統 用于lld.JSON對象
vfs.fs.inode[fs,<mode>]
inodes數量數字
fs - 檔案系統
mode - total (預設), free, used, pfree (空閑百分比), pused (使用百分比)
例如: vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<mode>]
磁盤空間,傳回本地檔案系統的使用量位元組
mode - total (預設), free, used, pfree (空閑百分比), pused (使用百分比).
例如: vfs.fs.size[/tmp,free]
vm.memory.size[<mode>]
記憶體大小位元組或百分比
mode - total (預設), active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, wired, used, pused, available
監控項vm.memory.size[] 允許三種類型的參數:
第一類:包含total - 總記憶體
第二類: 系統指定記憶體類型:active, anon, buffers, cached, exec, file, free, inactive,pinned, shared, wired. 第三類:使用者級别,一共使用了多少記憶體,還有多少記憶體可用: used, pused, available,pavailable.
web.page.get[host,<path>,<port>]
擷取網頁内容網頁源代碼
host - 主機名/域名
path - 檔案位址,預設/
port - 端口,預設80傳回空字元串表示失敗. 例如: web.page.get[
web.page.perf[host,<path>,<port>]
擷取完全加載網頁消耗的時長秒,傳回0表示失敗
path - html位址,預設是/
port - 端口,預設80
web.page.regexp[host,<path>,<port>,<regexp>,<length>,<output>]
在網頁中搜尋字元串 失敗則傳回空字元 (不比對).
host - 主機名
path - html檔案路徑 (預設值 /)
port - 端口 (預設80)
length - 傳回的最大的字元串數量
output - 輸出格式模闆可選項.
轉自:http://www.iyunv.com/thread-22959-1-1.html
本文轉自奔跑在路上部落格51CTO部落格,原文連結http://blog.51cto.com/qiangsh/1852660如需轉載請自行聯系原作者
qianghong000