Jenny
например, сообщение об ошибке
Aleksandr
обычно разве не прямо пишет причину при неверном типе value?
Aleksandr
Про макрос в имя что то не понял
у вас текущий LDD шаблон сейчас создаёт айтемы с макросом внутри функции, можно скопировать этот макрос из функции и добавить ещё и в имя
Aleksandr
зависит от версии заббикса
я вот не вспомню, было ли такое до 2.2 сейчас not supported у меня обычно отсутствие метрики на агенте
Aleksandr
или таймаут, или ещё чего косвенное
Jenny
я вот не вспомню, было ли такое до 2.2 сейчас not supported у меня обычно отсутствие метрики на агенте
угу, или неподходящее значение. например отрицательное значение на метрику типа uint
Jenny
This is how the item will be named. The following macros can be used: $1, $2…$9 - referring to the first, second… ninth parameter of the item key For example: Free disk space on $1 If the item key is “vfs.fs.size[/,free]”, the description will automatically change to “Free disk space on /”
Сергей
у вас текущий LDD шаблон сейчас создаёт айтемы с макросом внутри функции, можно скопировать этот макрос из функции и добавить ещё и в имя
Я же правильно понимаю, что нужно что бы помимо ID он возвращал в этой фунции ещё и имя сервера?
Aleksandr
Я же правильно понимаю, что нужно что бы помимо ID он возвращал в этой фунции ещё и имя сервера?
то, что должно быть в имени, уже ведь и так появляется в функции, верно? или нужно что-то ещё?
Jenny
сделай скриншот функции, пожалуйста, и имя, которое ты хочешь получить
Сергей
Да вроде придумал как сделать
Сергей
Спасибо за наводку
Dmitry
а вообще можно получить список всех метрик, которые сейчас отдает хост?
Dmitry
эх
Dmitry
казалось бы такая важная фича
Aleksandr
ей, наверное, не особо есть применение в архитектуре заббикса
Aleksandr
то, что он сейчас поддерживает, и так видно на агенте в папке с userparameters
Dmitry
ну у меня вот есть такая фигня
Aleksandr
можно сделать свой скрипт, который будет парсить папку и отдавать, но в заббикс, например, такой лист данных некуда принять
Dmitry
ща
Dmitry
UserParameter=rabbitmq.discovery_queue,/etc/zabbix/scripts/rabbitmq/list_rabbit_queues.sh UserParameter=rabbitmq.discovery_shovel,/etc/zabbix/scripts/rabbitmq/list_rabbit_shovels.sh UserParameter=rabbitmq.discovery_nodes,/etc/zabbix/scripts/rabbitmq/list_rabbit_nodes.sh UserParameter=rabbitmq[*],/etc/zabbix/scripts/rabbitmq/rabbitmq-status.sh $1 $2 $3 ~
Dmitry
вот это убивает меня
Dmitry
потому что у меня в темплейте ~20 метрик
Aleksandr
а как хотелось бы в идеале?
Aleksandr
UserParameter=rabbitmq.discovery_queue,/etc/zabbix/scripts/rabbitmq/list_rabbit_queues.sh UserParameter=rabbitmq.discovery_shovel,/etc/zabbix/scripts/rabbitmq/list_rabbit_shovels.sh UserParameter=rabbitmq.discovery_nodes,/etc/zabbix/scripts/rabbitmq/list_rabbit_nodes.sh UserParameter=rabbitmq[*],/etc/zabbix/scripts/rabbitmq/rabbitmq-status.sh $1 $2 $3 ~
эта штука по всей видимости дёргает rabbitmq-status.sh, который в свою очередь не отдаёт результат, а сам шлёт пачкой полученные метрики через zabbix_sender, чтобы делать это одним пакетом, а не по 100 раз реквестить весь статус-пейдж на каждую отдельную метрику
Aleksandr
в этой ситуации агент не может знать, сколько метрик он поддерживает, поскольку это регулирует сервер и скрипт, а не агент
Dmitry
но блин, такое сложно дебажить
Aleksandr
других способов не завезли =) в других системах это ещё более абстрагировано: мониторинг не знает заранее, что получит, поэтому смотреть всё-равно приходится само ПО, которое шлёт
Dmitry
collectd вполне ясно вроде
Aleksandr
collectd тоже может недополучать что-то от своего плагина, и отлаживать это предстоит между ПО и плагином, ещё до collectd
Aleksandr
но я понимаю боль в целом
Dmitry
кто rabbitmq мониторит заббиксом?
Dmitry
толи темплейт говно
Dmitry
то ли я
Denis
тои заббикс ! )
Aleksandr
что-то конкретное не получается?
Juriy
кто rabbitmq мониторит заббиксом?
ну так спрашивайте, много кто мониторит
Dmitry
сори что пропал - сам пытался разобраться
Dmitry
короче есть питоновый скрипт, который дергает апи рабита
Dmitry
генерит темп файл
Dmitry
и шлет в заббикс
Dmitry
и есть одна метрика непонятная
Dmitry
во-первых непонятно что она вообще показывает, во-вторых сервер на нее ругается
Dmitry
error reason for "somehost.ru:rabbitmq[queues]" changed: Received value [/tmp/tmpoMIwSr2] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
Dmitry
вот
Dmitry
на сервер все это шлется вот так
Dmitry
zabbix_sender -i /tmp/tmplse6Zy -c /etc/zabbix_agentd.conf
Aleksandr
error reason for "somehost.ru:rabbitmq[queues]" changed: Received value [/tmp/tmpoMIwSr2] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
в шаблоне нужно поменять тип айтема somehost.ru:rabbitmq[queues] на "string"
Dmitry
http://pastebin.com/vTdSTsDB
Aleksandr
показывает, видимо, путь до темпового файла
Dmitry
сейчас жду
Dmitry
и вот не очень понятно
Dmitry
info from server: "processed: 0; failed: 42; total: 42; seconds spent: 0.000494" sent: 42; skipped: 0; total: 42
Dmitry
это failed 42
Aleksandr
это значит, что ни одна из метрик не доехала
Dmitry
вот
Dmitry
блин, но почему
Dmitry
в логах уже норм все
Dmitry
на сервере
Aleksandr
надо глянуть, как скрипт шлёт данные
Aleksandr
через zabbix_sender или сам
Dmitry
ну вот апи складывает все в файлик
Dmitry
через сендер
Dmitry
100%
Aleksandr
можно найти в скрипте строку, где он вызывает сендер и посмотреть, как он это делает
Dmitry
def _send_data(self, tmpfile): '''Send the queue data to Zabbix.''' args = 'zabbix_sender -c {0} -i {1}' if self.senderhostname: args = args + " -s " + self.senderhostname return_code = 0 process = subprocess.Popen(args.format(self.conf, tmpfile.name), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Dmitry
да уже нашел
Aleksandr
а в {0} влетает адеватный путь до конфига?
Dmitry
да
Dmitry
я делаю прямо руками
Dmitry
и таже хня
Dmitry
42 failed
Aleksandr
обычно failed по двум причинам - либо метрик нет на сервере с такими именами, либо хостнейм у отправляемой пачки неправильный
Aleksandr
не совпадает с хостнеймом на сервере