Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix Хостинг

Долгое время для добавления в Zabbix информации об операционной системе использовал вывод команды lsb_release, но приходилось создавать на хостах в каталоге zabbix агента дополнительный скрипт для парсинга вывода. Вскоре заметил что в новых версиях Debian ещё и требуется ставить пакет lsb-release. И тут закралась коварная мысль — можно ли справиться с ситуацией стандартными средствами Zabbix и без дополнительных скриптов и пакетов? Как вы поняли по названию статьи — да, можно!

Содержание
  1. Zabbix monitoring key entry using summary
  2. Intelligent Recommendation
  3. The port of the Zabbix monitoring server is using
  4. Zabbix add mysql monitoring summary
  5. [zabbix] custom monitoring item key value
  6. Zabbix custom key tcp connection monitoring
  7. <span href="https://www.programmersought.com/article/19053916362/" rel="bookmark" title="Zabbix monitoring custom key value»> Zabbix monitoring custom key value
  8. More Recommendation
  9. zabbix key monitoring mysal, nginx, php
  10. Zabbix updates the key value of Item monitoring
  11. Copyright   DMCA © 2018-2023 — All Rights Reserved — www.programmersought.com    User Notice
  12. Идентификация ОС. Версия 1.
  13. Third, built-in monitoring items list
  14. agent.hostname
  15. agent.ping
  16. agent.version
  17. kernel.maxfiles
  18. kernel.maxproc
  19. log[file,
  20. logrt[file_pattern,
  21. net.if.discovery
  22. net.if.in[if,
  23. net.if.out[if,
  24. net.if.total[if,
  25. net.tcp.listen[port]
  26. net.tcp.port[
  27. net.tcp.service[service,
  28. net.tcp.service.perf[service,
  29. proc.mem[
  30. proc.num[
  31. system.boottime
  32. system.cpu.intr
  33. system.cpu.load[
  34. system.cpu.num[
  35. system.cpu.switches
  36. system.cpu.util[
  37. system.hostname[
  38. system.hw.cpu[
  39. system.hw.devices[
  40. system.hw.macaddr[
  41. system.localtime[
  42. system.run[command,
  43. system.sw.arch
  44. system.sw.os[
  45. system.sw.packages[
  46. system.swap.in[
  47. system.swap.out[
  48. system.swap.size[
  49. system.uname
  50. system.uptime
  51. system.users.num
  52. vfs.dev.read[
  53. vfs.dev.write[
  54. vfs.file.cksum[file]
  55. vfs.file.exists[file]
  56. vfs.file.md5sum[file]
  57. vfs.file.regexp[file,regexp,
  58. vfs.file.regmatch[file,regexp,
  59. vfs.file.size[file]
  60. vfs.file.time[file,
  61. vfs.fs.discovery
  62. vfs.fs.inode[fs,
  63. vfs.fs.size[fs,
  64. vm.memory.size[
  65. web.page.get[host,
  66. web.page.perf[host,
  67. web.page.regexp[host,
  68. Идентификация ОС. Версия 2.
  69. First, built-in Key description

Zabbix monitoring key entry using summary

  • The key range (Chinese) Documentation: https: //www.zabbix.com/documentation/4.0/zh/manual/appendix/items/supported_by_platform

  • Using the command line to see if support:

   # Use zabbix_get test
zabbix_get -s 192.168.4.35 -k 
# Use zabbix_agentd, client command to view the support of key
zabbix_agentd -p  vfs.fs.size
  
  
  • CPU
  • linux card
  • Disk
  • RAM
  • Common key

Intelligent Recommendation

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

The port of the Zabbix monitoring server is using

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Zabbix add mysql monitoring summary

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

[zabbix] custom monitoring item key value

Zabbix custom key tcp connection monitoring

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

<span href="https://www.programmersought.com/article/19053916362/" rel="bookmark" title="Zabbix monitoring
custom key value»> Zabbix monitoring
custom key value

More Recommendation

zabbix key monitoring mysal, nginx, php

Zabbix updates the key value of Item monitoring

Top

The function items of zabbix monitoring, some of the monitoring content does not exist (such as the reading speed of the hard disk), I want to use the existing module to complete the monitoring, here consider other key values ​​that zabbix already exists to see if it can meet the demand;

The zabbix4.4 version is used here to describe the key (key), other lower versions may not support it;

2. Key value description

1) Description of all key values

For all the key values ​​of zabbix4.4, please check【Reference 1】

Based on these values, think about whether there are other key values, complete the monitoring of the speed of the hard disk, and find other key values ​​of the hard disk on the official website according to this idea;

  vfs.dev.discovery 
 vfs.dev.read[<device>,<type>,<mode>] 
 vfs.dev.write[<device>,<type>,<mode>]  

But according to the three parameters found on the official website, it is different from the key value in the figure below. I thought about whether a few values ​​existed and tested it with the command;

  [xxx@xxxxxxx ~]$ zabbix_get -s 127.0.0.1 -p 10050 -k 'vfs.dev.read.rate[vda]'
 ZBX_NOTSUPPORTED: Unsupported item key.
 [xxx@xxxxxxx ~]$  

Attachment: I also used the three parameters found, but I can’t solve the problem of hard disk read and write speed;

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

3. How to use more keys

Although zabbix4.4 has provided hard disk write times, read times, utilization, waiting time, etc., but there is no Mbps rate; I hope to use zabbix’s existing key value to complete the monitoring of other hard disks. After all, Mbps is easier to understand It can also be associated with the network speed. Check whether 12 hard disks are raid5 under the optical fiber network. When large traffic is written, it is a hard disk problem, a network speed problem, a software problem, or a switch problem; (finally it is a software problem. The client side is configured with compression parameters. Хотя на стороне сервера настроено игнорирование определенных файлов без сжатия, это все же влияет на скорость передачи)

1) Узнайте больше параметров zabbix4.4

В процессе написания этой статьи я вручную внедрил скрипт zabbix, файл конфигурации zabbix и конфигурацию zabbixweb в три шага, чтобы завершить мониторинг Мбит/с жесткого диска, но это очень неудобно (есть ошибка, первая строка данных в IOstat Это исторические данные, а не данные в реальном времени); при этом я также знаю, что данные команды iostat для мониторинга IO находятся в /proc/diskstats, и я также проверил значение столбцов /proc/diskstats, но в /proc нет скорости скачивания Mbps /diskstats, скорость чтения, полученная командой iostat, рассчитывается на основе данных /proc/diskstats;

 vfs.file.contents[file,] # Просмотр содержимого файла
 vfs.file.size[file] # Просмотр размера файла (папки) 

2) Использование параметров

Сначала посмотрите на шаблон, чтобы увидеть, как это написано в шаблоне; просмотреть значение шаблона, результат шаблона, все части шаблона (включая процесс, правила самообнаружения) и просмотреть все содержимое шаблона, содержащего ключ;

Читайте также:  10 лучших хостингов Minecraft в 2022 — рейтинг ГлавХост

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

js на картинке ниже преобразует содержимое в /proc/diskstats в коллекцию массива карт;

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

На рисунке ниже вы можете увидеть данные, запрашиваемые в соответствии со значением ключа. Вы можете видеть, что данные в формате json.

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Невозможно получить единственное значение этого ключа сверху;

Продолжить поиск других изображений и найти «тип: связанные элементы», согласно анализу, это единственные данные, которые могут получить указанное выше ключевое значение;

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

4. Больше вариантов использования ключевых значений

Объясните разницу между «изменением каждую секунду» и «простым изменением» на примере

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

Идентификация ОС. Версия 1.

Задача представляет больший академический интерес, так как информация по операционным системам хостов проще и логичнее собирает средства оркестровки типа ansible, что я обычно и делаю. Но Zabbix сервер так же не лыком шит и умеет отображать нужные элементы (элементы) у развертывания хостов в одном окне, что быстро и удобно.

В системе есть файл /etc/os-release, в котором много полезной информации в виде ключ=значение. Полное его описание лучше прочесть в os-release — Идентификация операционной системы
.

. Значения присваивания переменной должны быть заключены в двойные или одинарные кавычки, если они содержат пробелы, точки с запятой или другие специальные символы за пределами A-Z, a-z, 0-9.

Вот небольшой пример из мира Дебиан

PRETTY_NAME=»Debian GNU/Linux 10 (бастер)»

VERSION_CODENAME=бастер

ID=дебиан

Самое главное, что vfs.file.regexp в качестве возвращаемого значения отдаёт совпадающую подстроку. То что нужно! Но помните поговорку? Если у вас есть проблема и вам пришла в голову идея, которую можно решить с помощью регулярных выражений, то теперь у вас есть две проблемы. Используются команды Zabbix-get и некоторые параметры, встроенные в Zabbix

. Удалось с помощью Гугла и такой-то матери родить набор знаков, извлекающее необходимое значение в различных вариантах — без кавычек, с одинарными или внедрени.

  • Требования к шаблонам и особенностям элементов внутри разнятся от версии к версии Zabbix, поэтому с прицелом на будущее всё заточил под 5+ версию. Если у вас Zabbix еще не тот калибр, то уже самостоятельно конвертируйте шаблон в нужное вам.
  • Ключей в /etc/os-release много и много дистроспецифичных. Выбрал некоторые и общие.
  • Информация в /etc/os-release может меняться только при обновлении системы. Например, Убунту при появлении новых релизных точек (вех) может отобразить этот факт в виде строки Ubuntu 18.04.5 LTS, а «завтра» Ubuntu 18.04.6 LTS. Частота опроса выставлена ​​в 1 день (1d).
  • Неявно ожидается что для хостов вы используете стандартный шаблон Template OS Linux, который даёт раздел OS. Данные шаблона Template_OSI.xml так же можно найти в разделе OS.

Third, built-in monitoring items list

agent.hostname

   Returns the name of the monitored end (string)

 Use the way: The way is used later:
  
  
   root@BJ-monitor-h-01 bin# zabbix_get -s 192.168.10.100 -k agent.hostname 
Zabbix server
  
  

agent.ping

   Detection is survived by the survived end (1: Other: Unbound)
 Use the function nodata () to detect if the client is running
  
  

agent.version

   Zabbix Agent version string
  
  

kernel.maxfiles

   System supports the largest Open files integer
  
  

kernel.maxproc

   System supports the maximum number of processes
  
  

log[file,

   Monitor log file

 FILE - File Detailed Path

 Regexp - Regular

 Encoding - Code

 Maxlines - Zabbix Agent sends the maximum number of rows to Server or Proxy.
  
  
       This parameter covers the 'maxlinespersecond' in zabbxi_agentd.conf 

 Mode - Optional Value: All (default), SKIP (Skip processing old data). Mode parameter starts from version 2.0

 Output - Optional, Output Format Template.

 Example: log [/ var / log / syslog] log [/ var / log / syslog, error] log [/ home / zabbix / logs / logfile ,, 100]
  
  

logrt[file_pattern,

   Monitoring of log file with log rotation support.

 FILE_PATTERN - File absolute path
  
  

net.if.discovery

   List the network card. Usually used for low-level discovery.json objects
  
  

net.if.in[if,

   NIC entry traffic integer.

 IF - Net card name

 Mode - available value: Bytes - bytes (default)

 Packets - package number

 Errors - Error quantity

 Dropped - packet loss quantity
  
  
   Example Keys: Net.if.in [Eth0, Errors] Net.if.in [eth0]
  
  

net.if.out[if,

     NIC export traffic (parameter see Net.If.in)
  
  

net.if.total[if,

   The sum of the network cards / out of the flow (parameters see Net.If.in)
  
  

net.tcp.listen[port]

     Detect the port to open 0 - (Not Listen) 1 - in Listen Stateport

 Example: net.tcp.listen [80]
  
  

net.tcp.port[

   Whether you can connect to the specified TCP port 0 - Cannot Connect 1 - CAN Connect

       IP - IP address (default is 127.0.0.1)

       Port - port

 Example: Net.tcp.port [, 80] Deterent whether the web server port is running
  
  

net.tcp.service[service,

   The detection service is turned on, and the port can be used with 0 - service 1 - service operation

         Service - as follows: SSH, NTP, LDAP, SMTP, FTP, HTTP, POP, NNTP, IMAP, TCP, HTTPS, TELNET

         IP - IP address (default 127.0.0.1)

           Port - port (default is a standard port number)
  
  
   Example Key: net.tcp.service [ftp ,, 45]
  
  

net.tcp.service.perf[service,

   Detection server performance 0 - service hangs; seconds - link to server port consumption

 Service - as follows: SSH, NTP, LDAP, SMTP, FTP, HTTP, POP, NNTP, IMAP, TCP, HTTPS, TELNET

 IP - IP address (default 127.0.0.1)

 Port - port (default is a standard port number)

 Example Key: Net.tcp.Service.Perf [ssh]
  
  

proc.mem[

   The memory memory usage (byte unit) consumed by the user process.

 Name - Process Name (default "all processes")

 User - User Name (Default "all users")

   Mode - optional value: AVG, MAX, Min, SUM (default)

   CMDline - Command line filtering (regular expression)

 Example Keys: proc.mem [, root] - How much memory consumes root

 Proc.mem [Zabbix_Server, Zabbix] - How much memory is used by Zabbix_server running

proc.mem[,oracle,max,oracleZABBIX]
  
  

proc.num[

     Number of numbers of processes for certain users of certain users

   Name - Process Name (Default "All Processes")

   User - Username (Default "all users")

   State - Available: All (default), Run, Sleep, Zomb

   CMDline - Command line filtering (regular expression)

   Example Keys: proc.num [, mysql] - Number of processes running in mysql users

     Proc.num [Apache2, WWW-DATA] - How many apache2 processes have been running at WWW-DATA

  proc.num[,oracle,sleep,oracleZABBIX]

 Remarks: Windows system only supports both Name and User parameters
  
  

system.boottime

   Timestamp integer in the system .unix timestamp
  
  

system.cpu.intr

     Device interrupt integer
  
  

system.cpu.load[

   CPU load floating point

 CPU - Available: All (default), Percpu (Load of all online CPUs)

 Mode - available value: AVG1 (1 minute default), AVG5 (5 minutes average), AVG15 (15 minutes average)

 Sample Key: system.cpu.load [, avg5]
  
  

system.cpu.num[

   CPU number processor number TYPE - available value: online (default), max example: system.cpu.num
  
  

system.cpu.switches

   Context exchange exchange, old name: system [switches]
  
  

system.cpu.util[

   CPU utilization percentage

 CPU - CPU number (default is all CPUs)

 TYPE - Available: IDLE, Nice, User (default), System (Windows System Default), iowait, Interrupt, Softirq, Steal

 Mode - available value: AVG1 (average average, default), AVG5 (5 minutes average, AVG15 (15 minutes average)

 Sample Key: System.cpu.util [0, User, Avg5]
  
  

system.hostname[

     Returns the host name string

   TYPE (for Windows System only) - available value: NetBIOS (default) or host
  
  

system.hw.cpu[

   Returns the CPU information character / number

 CPU - CPU number or all (default)

 INFO - FULL (default), Curfreq, MaxFreq, Model or Vendor

 For example: system.hw.cpu [0, vendor] Authenticamd from / proc / cpuinfo, / sys / devices / system / cpu / [cpunum] / cpufreq / cpuinfo_max_freq Get information. If the number of CPUs and CurfReq or MaxFreq will be specified, will Return the value (Hz).
  
  

system.hw.devices[

   List PCI or USB text values

 TYPE - PCI (default) or usb

 Example: System.hw.devices [PCI] 00: 00.0 Host Bridge: Advanced Micro Devices [AMD] RS780 Host Bridge [.] Returns LSPCI or LSUSB (without parameters)

  
  

system.hw.macaddr[

   List the MAC address string

 Interface - All (default) or regular expression

 Format - Full (default), Short

 Example: System.hw.macaddr ["Eth0 $", FULL] [Eth0] 00: 11: 22: 33: 44: 55 lists the specified interface MAC address If the Format is specified as a short, the MAC address will be ignored
  
  

system.localtime[

   System time. Digital or string
  
  

system.run[command,

    Run command text on the developed host
  
  
   Command - command

 Mode - Wait (Default, Perform timeout), NOWAIT (not waiting) maximum can be used to return 512KB data, including blank data. Command output data must be text

 For example: system.run ["ls -l /"] - lists / files and directories.

 Note: Enable this method, Agent configuration file must be configured EnableRemMAVAnds = 1 option
  
  

system.sw.arch

   Return to software information string

 Example: system.sw.arch
  
  

system.sw.os[

   Returns the system information string

info - full (default), short ,name

 Example: system.sw.os [short] ubuntu 2.6.35-28.50-generic 2.6.35.11

 The information comes as follows:

/proc/version [short]

/proc/version_signature [name]

/etc/issue.net
  
  

system.sw.packages[

   Installed Software List Text Value

 Package - All (default) or regular expression

 Manager - All (default) OR A Package Manager

 Format - Full (default), Short

 Example: system.sw.packages [http]
  
  

system.swap.in[

   Swapped partition in (Disk Switch to Memory) Number

 Device - Exchange Partition Equipment (Default ALL)

 TYPE - Optional value: Count (Swapins), Sectors (Swapped in), Pages (Pages Swapped in).

Example Key: System.swap.in [, Pages]

 Data collection from: Linux 2.4: / proc / swaps, / proc / partitions, / proc / stat

            Linux 2.6: /proc/swaps, /proc/diskstats, /proc/vmstat
  
  

system.swap.out[

   SWAP OUT (f memory to disk). Number

 DEVICE - SWAP device (default ALL)

 Type - Count (Number of swapouts), Sectors (Sectors Swapped Out), Pages (Pages Swapped Out).

 Example Key: System.swap.out [, Pages]

 Data collection from: Linux 2.4: / proc / swaps, / proc / partitions, / proc / stat

            Linux 2.6: /proc/swaps, /proc/diskstats, /proc/vmstat
  
  

system.swap.size[

   Exchange partition size byte or percentage

 Device - Exchange Partition (Default 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)

 Example System.swap.size [, Pfree] - Free SWAP Percentage
  
  

system.uname

   Return to the host to believe in information. String
  
  

system.uptime

   System running time (seconds) How many seconds use S / UPtime to get
  
  

system.users.num

   How many user Agent uses the who command to get
  
  

vfs.dev.read[

   Disk read status integer, floating point (if Type is as follows)

 Device - Disk device (default "all") 

 TYPE - Optional value: Sectors, Operations, Bytes, SPS, OPS, BPS (must be specified, different operating systems). SPS, OPS, BYTES PER: SECTORS, OPERATIONS, BYTES Per Second, Respectively

 Mode - optional value: AVG1, AVG5, AVG15. 

 Remarks: Only Type is SPS, OPS, BPS, the third parameter is supported.

 TYPE parameters of different operating systems: freebsd - bps linux - SPS OpenBSD - Operations Solaris - Bytes

 Example Key: vfs.dev.read [, Operations]
  
  

vfs.dev.write[

   Disk write status integer,

 Device - Disk device (default 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]

   Calculate file verification UNIX CKSUM.

 File - Full Path

 

vfs.file.contents[file,

 If you get the text content, if you are empty, only LF / CR CHARACTERS is returned.

 File - Full Path

 For example: vfs.file.contents [/ etc / passwd] files can not exceed 64KB. 

  
  

vfs.file.exists[file]

   Detect whether the file exists 1 - there is 0 - does not exist

 File - Full Path
  
  

vfs.file.md5sum[file]

   File MD5 check code file MD5 hash value

 File - full path

  
  

vfs.file.regexp[file,regexp,

   Searching in the file contains rows of strings, or empty

 File - Full Path

 Regexp - GNU regular expression

 Encoding - Code

 START LINE - from which row begins, the default line

 End line - From which line ends, the default line

 Such as: 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,

   Search string 0 in the file - Not found 1 - Find

 File - Full Path

 Regexp - GNU regular expression

 Encoding - Code

 Start Line - Which line starts, default first line

 End line - Which row, the default line

 For example: vfs.file.regmatch [/VAR/LOG /APP.LOG ,EROR]

  
  

vfs.file.size[file]

   File size byte fzabbix must have permission to read this file
  
  

vfs.file.time[file,

   Document time information UNIX timestamp.

 Mode - Modify (default, modification time), Access - last accessed time, change - final change time

 For example: vfs.file.time [/ etc / passwd, modify] Remarks: File size has restrictions
  
  

vfs.fs.discovery

   List mounted file systems for LLD.json objects
  
  

vfs.fs.inode[fs,

   Inodes quantity number

 FS - file system

 Mode - Total, Free, Used, Pfree, Pused (percentage)

 For example: vfs.fs.inode [/, pfree]

  
  

vfs.fs.size[fs,

   Disk space, return to the usage byte of the local file system

 FS - file system

 Mode - Total, Free, Used, Pfree (Idle Percent), PUSED (Percentage).

 For example: vfs.fs.size [/ tmp, free]

  
  

vm.memory.size[

   Memory size byte or percentage

 Mode - Total, Active, Anon, Buffers, Cached, Exec, File, Free, Inactive, Pinned, Shared, Wired, USED, PUSED, AVAILABLE

 Monitoring item VM.Memory.size [] Allows three types of parameters:

 The first category: containing Total - total memory

 Second Category: System Specify Memory Type: Active, Anon, Buffers, Cached, Exec, File, Free, INACTIVE, PINNED, Shared, Wired. Third Category: User Level, How much memory uses, how much memory is available: USED, PUSED, AVAILABLE, PAVAILABLE.

 
  
  

web.page.get[host,

   Get web content web page source code

 Host - hostname / domain name

 PATH - File Address, Default /

 Port - port, default 80 return empty string indicates failure. For example, Web.Page.Get [

  
  

web.page.perf[host,

   Get the time long diazo to fully load the web page, return 0 means failure

 Host - hostname / domain name

 PATH - HTML address, default is /

 Port - port, default 80

    [root@BJ-monitor-h-01 bin]# ./zabbix_get -s 192.168.10.100 -k web.page.perf[www.baidu.com]  

  
  

web.page.regexp[host,

   Searching a string in the web failed to return empty characters (mismatch).

 Host - host name

 Path - HTML file path (default)

 Port - port (default 80)

 Regexp - GNU regular expression

 Length - Returns the maximum number of strings

Output - Output Format Template Options.

  
  

Идентификация ОС. Версия 2.

Первая версия шаблона работает, но где-то в глубоко в душе копошилась мысль, что тема до конца не раскрыта. Дело в том, что у различных дистрибутивов Linux различное количество строк в файле /etc/os-release. Если красиво и элегантно их представить всех в Zabbix у различных серверов с их различными операционными системами на базе Linux, то это автоматически подразумевает использование «Низкоуровневого обнаружения» (Low-level discovery, LLD). Так же нужно было ограничиться лишь средствами Zabbix, не требуя дополнительных скриптов. Такой вызов не мог не остаться мной не замеченным!

Читайте также:  Легко управляйте журналом событий Windows с помощью Logstash

Итак, нам нужно для LLD:

  • Прочесть файл /etc/os-release
  • Распарсить его для получения лишь ключей (то что до знака равно)
  • Выдать правильный JSON
  var lld = [];
var lines = value.split("\n");
var lines_num = lines.length;
for (i = 0; i < lines_num; i++)
{
 var row = {};
 var k = lines[i].split("=");
 row["{#KEY}"] = k[0];
 lld.push(row);
}
return JSON.stringify(lld);
  

Прочитанное содержимое файла /etc/os-release разбивается по строкам (\n) и потом строка разбивается по символу = и берётся ключ, а значение отбрасывается.

Благодаря правилу обнаружения для каждого сервера Zabbix сможет извлекать все его ключи из /etc/os-release и через прототип формировать элементы данных под каждый ключ. Затем эти сформированные элементы данных будут периодически опрашиваться Zabbix сервером и получать данные. Вуаля! Дело сделано и чисто средствами Zabbix сервера.

Вот сам итоговый zabbix шаблон Template_OSI_v2.xml
. Файл лучше сохранить по ссылке и открывать в редакторах типа Notepad++. Пришлось интуитивно понять как мои наработки, сделанные вручную, указать в xml файле, так как я не нашёл толкового описания на просторах Интернет. Но, благодаря чутью, по аналогии с подсмотренными схожими тегами в стандартных шаблонах удалось создать рабочий шаблон. Так как операционная система редко меняется, поэтому опрос раз в сутки (1d). Для тестов или поменяйте на что-то поменьше или пользуйтесь функционалом Zabbix — «запустить здесь и сейчас».

Пример с сервера Debian GNU/Linux

Debian

Пример с сервера Ubuntu Server LTS

Ubuntu


Если у вас не 5+ версия Zabbix и ручная правка-адаптация xml под вашу версию вас доконала, возможно, поможет создание шаблона с нуля и вставка лишь готовых строк key.

Дата последней правки: 2021-02-01 01:07:55

First, built-in Key description

Zabbix has a lot of rich keys, making us add Linux OS template, have helped us to define keys, so we can use it directly to link templates.

Читайте также:  Обновляем PHP 5.3 до 7.0 через webtatic
Оцените статью
Хостинги