6 Sender

Обзор

Zabbix sender - это утилита командной строки, которая может быть использована для отправки данных о производительности Zabbix серверу для последующей их обработки.

Обычно эта утилита используется в долго выполняемых пользовательских скриптах для периодичной отправки данных о доступности и производительности.

Отправка одного значения

Пример отправки одного значения на Zabbix сервер используя Zabbix sender:

shell> zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43

где:

  • z - хост Zabbix сервера (также можно использовать IP адрес)
  • s - техническое имя наблюдаемого узла сети (указанное в веб-интерфейсе Zabbix)
  • k - ключ элемента данных
  • o - отправляемое значение

Если объекты содержат пробелы, то эти объекты должны быть заключены в двойные кавычки.

Zabbix sender можно использовать для отправки нескольких значений из файла. Обратитесь к странице помощи Zabbix sender для получения более подробной информации.

Zabbix sender принимает строки в UTF-8 кодировке (как в UNIX-подобных системах, так и в Windows) без изначального маркера последовательности байтов (BOM) в файле.

Zabbix sender в Windows можно выполнить тем же самым способом:

zabbix_sender.exe [опции]

Начиная с версии Zabbix 1.8.4 утилита Zabbix_sender была улучшена в плане отправки данных в реальном времени. Имеется ввиду, что большое количество значений, полученное за короткий промежуток времени, будут накапливаться во временном стеке и затем будет отправлено серверу за одно соединение. Данные, пришедшие через менее, чем 0,2 сек после предыдущего значения накапливаются в одном стеке, но максимальное время их накопления до отправки все же 1 секунда.

Отправка множества значений

Имеется возможность указать входящий файл, который содержит значения к отправки на Zabbix сервер. Смотрите опцию --input-file на странице помощи Zabbix sender о том, как правильно формировать файл.

Без штампов времени у значений

Если вам не требуется указывать штампы времени для каждого значения, ниже представлен пример содержимого входящего файла для такой ситуации:

"Linux DB1" db.ping 1
       "Linux DB3" db.ping 0
       "Zabbix server" db.status 0
       "Zabbix server" db.error "Linux DB3 down"
Со штампами времени у значений

Имеется возможность указать штамп времени для каждого отправляемого значения. В этом случае используйте опцию --with-timestamps. Ниже представлен пример входящего файла со штампами времени:

"Linux DB1" db.ping 1429533600 1
       "Linux DB3" db.ping 1429533602 0
       "Zabbix server" db.status 1429533603 0
       "Zabbix server" db.error 1429533603 "Linux DB3 down"

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

Штампы времени, указанные во входящем файле, будут скорректированы для совпадения со временем сервера. Например, если указан штамп времени равный "10:30:50", текущим временем на машине Zabbix sender является "10:40:03", и текущим временем на машине Zabbix сервера является "10:40:05", тогда значение элемента данных будет записано в базу данных со штампом времени равным "10:30:52".

Аналогично в случае, если значение сначала отправляется на Zabbix прокси, затем отправляется на Zabbix сервер, то штамп времени будет скорректирован сначала для совпадения со временем на Zabbix прокси, и затем будет скорректирован для совпадения со временем на Zabbix сервере.

Заключение в кавычки во входящем файле

Страница помощи по Zabbix sender содержит правила как правильно форматировать записи во входящем файле в разделе --input-file. Ниже представлены примеры того, как значения будут сохранены в базе данных при использовании различных методов заключения в кавычки:

значение во входящем файле результат в базе данных сообщение об ошибке на экране
failed failed
"status: failed" status: failed
"status: \"failed\"" status: "failed"
"C:\\" C:
C:
C:
"C:\" Warning: [line 1] 'Key value' required
"C:\My Documents" C:\My Documents
status:\nfailed status:\nfailed
"status:\tfailed" status:\tfailed
"status:\nfailed" status:
failed
"status:\nfailed\n" status:
failed
"\nstatus:\nfailed"
status:
failed
"\n\n"
Пример вывода

Ниже представлен пример отправки 300 значений из входящего файла:

# zabbix_sender -z 127.0.0.1 -i /tmp/trapper.txt 
       Info from server: "Processed 250 Failed 0 Total 250 Seconds spent 0.002668"
       Info from server: "Processed 50 Failed 0 Total 50 Seconds spent 0.000540"
       sent: 300; skipped: 0; total: 300

Zabbix sender завершится, если в файле конфигурации имеется ошибочный (не соответствующий определению параметр=значение) параметр.