Zabbix sender - это утилита командной строки, которая может быть использована для отправки данных о производительности Zabbix серверу для последующей их обработки.
Обычно эта утилита используется в долго выполняемых пользовательских скриптах для периодичной отправки данных о доступности и производительности.
Чтобы отправлять результаты напрямую на Zabbix сервер или прокси, необходимо задать тип элемента данных траппер.
Пример отправки одного значения на Zabbix сервер используя Zabbix sender:
shell> zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43
где:
Обратитесь к странице помощи Zabbix sender для получения более подробной информации.
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"
Если целевой элемент данных имеет триггеры, которые ссылаются на этот элемент данных, все штампы времени во входящем файле должны быть отсортированы в порядке возрастания, в противном случае вычисление событий будет некорректным.
Аналогично в случае, если значение сначала отправляется на Zabbix прокси, затем отправляется на Zabbix сервер, то штамп времени будет скорректирован сначала для совпадения со временем на Zabbix прокси, и затем будет скорректирован для совпадения со временем на Zabbix сервере.
Zabbix sender принимает строки в UTF-8 кодировке (как в UNIX-подобных системах, так и в Windows) без изначального маркера последовательности байтов (BOM) в файле.
Страница помощи по 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