Jenny
например, сообщение об ошибке
Aleksandr
обычно разве не прямо пишет причину при неверном типе value?
Jenny
Aleksandr
Про макрос в имя что то не понял
у вас текущий LDD шаблон сейчас создаёт айтемы с макросом внутри функции, можно скопировать этот макрос из функции и добавить ещё и в имя
Aleksandr
зависит от версии заббикса
я вот не вспомню, было ли такое до 2.2
сейчас not supported у меня обычно отсутствие метрики на агенте
Aleksandr
или таймаут, или ещё чего косвенное
Jenny
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 /”
Сергей
Aleksandr
Jenny
сделай скриншот функции, пожалуйста, и имя, которое ты хочешь получить
Сергей
Да вроде придумал как сделать
Сергей
Спасибо за наводку
Dmitry
Dmitry
а вообще можно получить список всех метрик, которые сейчас отдает хост?
Aleksandr
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
Aleksandr
в этой ситуации агент не может знать, сколько метрик он поддерживает, поскольку это регулирует сервер и скрипт, а не агент
Dmitry
Dmitry
но блин, такое сложно дебажить
Aleksandr
других способов не завезли =) в других системах это ещё более абстрагировано: мониторинг не знает заранее, что получит, поэтому смотреть всё-равно приходится само ПО, которое шлёт
Dmitry
Dmitry
collectd вполне ясно вроде
Aleksandr
collectd тоже может недополучать что-то от своего плагина, и отлаживать это предстоит между ПО и плагином, ещё до collectd
Aleksandr
но я понимаю боль в целом
Dmitry
кто rabbitmq мониторит заббиксом?
Dmitry
толи темплейт говно
Dmitry
то ли я
Denis
тои заббикс ! )
Aleksandr
что-то конкретное не получается?
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
Dmitry
http://pastebin.com/vTdSTsDB
Aleksandr
показывает, видимо, путь до темпового файла
Dmitry
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
не совпадает с хостнеймом на сервере