zabbix-server經過與zabbix agent通訊來獲取client的數據,agent分爲兩個版本,一個是agent,另外一個是agent(active)。
agent:zabbix server向zabbix agent討要數據。
agent(active):zabbix agent提交數據給zabbix server。html
首先介紹zabbix agent所支持的全部key;node
添加一項監控的時候,首先想到的應該是zabbix agent是否已經有相關的key存在,若是沒有提供再自行寫腳原本獲取key。mysql
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) zone - 須要測試的域名 type - 記錄類型 (默認SOA,可選值同net.dns) timeout (ignored on Windows) – 超時時間(默認1秒) count (ignored on Windows) – 重試次數 (默認值2) 示例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 cmdline - 命令行過濾(正則表達時) 示例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) 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] 數據採集自: Linux 2.4: /proc/swaps, /proc/partitions, /proc/stat Linux 2.6: /proc/swaps, /proc/diskstats, /proc/vmstat 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. file - 文件完整路徑 例如: 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>] 文件中搜索字符串包含字符串的行,或者爲空 file - 文件完整路徑 regexp - GNU正則表達式 encoding - 編碼 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 – 找到 file - 文件完整路徑 regexp - GNU 正則表達式 encoding - 編碼 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>] 磁盤空間,返回本地文件系統的使用量字節 fs - 文件系統 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表示失敗 host - 主機名/域名 path - html地址,默認是/ port - 端口,默認80 web.page.regexp[host,<path>,<port>,<regexp>,<length>,<output>] 在網頁中搜索字符串 失敗則返回空字符 (不匹配). host - 主機名 path - html文件路徑 (默認值 /) port - 端口 (默認80) regexp - GNU正則表達式 length - 返回的最大的字符串數量 output - 輸出格式模板可選項