Size: a a a

Zabbix Russian Community

2020 June 30

🦅

🦅 Anth0ny in Zabbix Russian Community
коллеги, что-то я в замешательстве... что я делаю не так?

1. есть элемент-сборщик данных (основа для зависимых элементов), он выполняет external script, который возвращает данные в элемент-сборщик вот в таком виде: (полей больше, обрезано для удобства)

[
{ "id": 0, "status": "online", "use": "member"}
,{ "id": 1, "status": "online", "use": "member"}
,{ "id": 2, "status": "online", "use": "member"}
,{ "id": 3, "status": "online", "use": "member"}
,{ "id": 4, "status": "offline", "use": "failed"}
,{ "id": 5, "status": "online", "use": "member"}
]

2. Настроено LLD , источником для которого является этот элемент-сборщик.

LLD macro = JSONPath
{#LS_DRIVES_ID} = $..id
{#LS_DRIVES_STATUS} = $..status
{#LS_DRIVES_USE} = $..use

3. Пока создал 1 прототип элемента:

Имя: Физ. диск ({#LS_DRIVES_ID}) -  роль
Ключ: lenovo.ls.discovery.disks.use[{#LS_DRIVES_ID}]
Тип: Character

Preprocessing
JSONPath = $..use

Пнул сборщика- данные пришли, LLD сгенерировал пачку элементов, вроде ничего не предвещало подвоха...

Name === Key
Физ. диск ([0]) - роль === lenovo.ls.discovery.disks.use["[0]"]
Физ. диск ([1]) - роль === lenovo.ls.discovery.disks.use["[1]"]
Физ. диск ([2]) - роль === lenovo.ls.discovery.disks.use["[2]"]
Физ. диск ([3]) - роль === lenovo.ls.discovery.disks.use["[3]"]
Физ. диск ([4]) - роль ===  lenovo.ls.discovery.disks.use["[4]"]
Физ. диск ([5]) - роль === lenovo.ls.discovery.disks.use["[5]"]

Я дождался прихода данных в эти элементы, и ... Вот тут я и выпал в осадок.

Вот что получилось:

Name === Last value
( ,,, - это я обрезал чтоб не забивать экран)

Физ. диск ([0]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([1]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([2]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([3]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([4]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([5]) - роль  ===  ["member","member","member","member","failed","member"...

Я посмотрел: КАЖДЫЙ элемент получил данные в виде строки, содержащей ВСЕ ЗНАЧЕНИЯ для ВСЕХ элементов. Т.е. в последних данных каждого элемента во всех элементах содержат вот это:

["member","member","member","member","failed"]

Коллеги, прошу помочь и подсказать, где я был не прав =((
источник

D

DeeZ in Zabbix Russian Community
Уважаемые, кто то пользует трапы в заббиксе (особенно интерсует кто запускает заббикс в докере)?

Запущен траппер, и в его логах я вижу что трапы прилетают (docker logs -f zabbix_zabbix-snmptraps_1)
На хосте висит шаблон стандартный Template Net Cisco IOS SNMPv2, в котором есть snmptrap.fallback.
Те все должно сюда попадать.

Я правильно понимаю что оно должно падать все в LastData? у меня там пусто. Куда копать? как проверить что из контейнера zabbix-snmptraps даанные уходят в zabbix-server?
источник

RM

Roman Monakhov in Zabbix Russian Community
Олег Ковалевський
В настройках забикс сервера?
Агент
источник

LV

Lev Volfman in Zabbix Russian Community
🦅 Anth0ny
коллеги, что-то я в замешательстве... что я делаю не так?

1. есть элемент-сборщик данных (основа для зависимых элементов), он выполняет external script, который возвращает данные в элемент-сборщик вот в таком виде: (полей больше, обрезано для удобства)

[
{ "id": 0, "status": "online", "use": "member"}
,{ "id": 1, "status": "online", "use": "member"}
,{ "id": 2, "status": "online", "use": "member"}
,{ "id": 3, "status": "online", "use": "member"}
,{ "id": 4, "status": "offline", "use": "failed"}
,{ "id": 5, "status": "online", "use": "member"}
]

2. Настроено LLD , источником для которого является этот элемент-сборщик.

LLD macro = JSONPath
{#LS_DRIVES_ID} = $..id
{#LS_DRIVES_STATUS} = $..status
{#LS_DRIVES_USE} = $..use

3. Пока создал 1 прототип элемента:

Имя: Физ. диск ({#LS_DRIVES_ID}) -  роль
Ключ: lenovo.ls.discovery.disks.use[{#LS_DRIVES_ID}]
Тип: Character

Preprocessing
JSONPath = $..use

Пнул сборщика- данные пришли, LLD сгенерировал пачку элементов, вроде ничего не предвещало подвоха...

Name === Key
Физ. диск ([0]) - роль === lenovo.ls.discovery.disks.use["[0]"]
Физ. диск ([1]) - роль === lenovo.ls.discovery.disks.use["[1]"]
Физ. диск ([2]) - роль === lenovo.ls.discovery.disks.use["[2]"]
Физ. диск ([3]) - роль === lenovo.ls.discovery.disks.use["[3]"]
Физ. диск ([4]) - роль ===  lenovo.ls.discovery.disks.use["[4]"]
Физ. диск ([5]) - роль === lenovo.ls.discovery.disks.use["[5]"]

Я дождался прихода данных в эти элементы, и ... Вот тут я и выпал в осадок.

Вот что получилось:

Name === Last value
( ,,, - это я обрезал чтоб не забивать экран)

Физ. диск ([0]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([1]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([2]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([3]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([4]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([5]) - роль  ===  ["member","member","member","member","failed","member"...

Я посмотрел: КАЖДЫЙ элемент получил данные в виде строки, содержащей ВСЕ ЗНАЧЕНИЯ для ВСЕХ элементов. Т.е. в последних данных каждого элемента во всех элементах содержат вот это:

["member","member","member","member","failed"]

Коллеги, прошу помочь и подсказать, где я был не прав =((
у тебя сборщик собирает массив
Preprocessing
JSONPath = $..use это вернет use из каждого элемента массива
тебе надо если не путаю так $[{#LS_DRIVES_ID}].use
источник

D

DeeZ in Zabbix Russian Community
🦅 Anth0ny
коллеги, что-то я в замешательстве... что я делаю не так?

1. есть элемент-сборщик данных (основа для зависимых элементов), он выполняет external script, который возвращает данные в элемент-сборщик вот в таком виде: (полей больше, обрезано для удобства)

[
{ "id": 0, "status": "online", "use": "member"}
,{ "id": 1, "status": "online", "use": "member"}
,{ "id": 2, "status": "online", "use": "member"}
,{ "id": 3, "status": "online", "use": "member"}
,{ "id": 4, "status": "offline", "use": "failed"}
,{ "id": 5, "status": "online", "use": "member"}
]

2. Настроено LLD , источником для которого является этот элемент-сборщик.

LLD macro = JSONPath
{#LS_DRIVES_ID} = $..id
{#LS_DRIVES_STATUS} = $..status
{#LS_DRIVES_USE} = $..use

3. Пока создал 1 прототип элемента:

Имя: Физ. диск ({#LS_DRIVES_ID}) -  роль
Ключ: lenovo.ls.discovery.disks.use[{#LS_DRIVES_ID}]
Тип: Character

Preprocessing
JSONPath = $..use

Пнул сборщика- данные пришли, LLD сгенерировал пачку элементов, вроде ничего не предвещало подвоха...

Name === Key
Физ. диск ([0]) - роль === lenovo.ls.discovery.disks.use["[0]"]
Физ. диск ([1]) - роль === lenovo.ls.discovery.disks.use["[1]"]
Физ. диск ([2]) - роль === lenovo.ls.discovery.disks.use["[2]"]
Физ. диск ([3]) - роль === lenovo.ls.discovery.disks.use["[3]"]
Физ. диск ([4]) - роль ===  lenovo.ls.discovery.disks.use["[4]"]
Физ. диск ([5]) - роль === lenovo.ls.discovery.disks.use["[5]"]

Я дождался прихода данных в эти элементы, и ... Вот тут я и выпал в осадок.

Вот что получилось:

Name === Last value
( ,,, - это я обрезал чтоб не забивать экран)

Физ. диск ([0]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([1]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([2]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([3]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([4]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([5]) - роль  ===  ["member","member","member","member","failed","member"...

Я посмотрел: КАЖДЫЙ элемент получил данные в виде строки, содержащей ВСЕ ЗНАЧЕНИЯ для ВСЕХ элементов. Т.е. в последних данных каждого элемента во всех элементах содержат вот это:

["member","member","member","member","failed"]

Коллеги, прошу помочь и подсказать, где я был не прав =((
По вопросу не помогу, но подскажу что ждать не надо. У заббикса есть возможность запустить прямо сейчас проверку или дискавери.

Неудачные скрины. на первом запуск проверки item-а, на втором дискавери.
источник

D

DeeZ in Zabbix Russian Community
🦅 Anth0ny
коллеги, что-то я в замешательстве... что я делаю не так?

1. есть элемент-сборщик данных (основа для зависимых элементов), он выполняет external script, который возвращает данные в элемент-сборщик вот в таком виде: (полей больше, обрезано для удобства)

[
{ "id": 0, "status": "online", "use": "member"}
,{ "id": 1, "status": "online", "use": "member"}
,{ "id": 2, "status": "online", "use": "member"}
,{ "id": 3, "status": "online", "use": "member"}
,{ "id": 4, "status": "offline", "use": "failed"}
,{ "id": 5, "status": "online", "use": "member"}
]

2. Настроено LLD , источником для которого является этот элемент-сборщик.

LLD macro = JSONPath
{#LS_DRIVES_ID} = $..id
{#LS_DRIVES_STATUS} = $..status
{#LS_DRIVES_USE} = $..use

3. Пока создал 1 прототип элемента:

Имя: Физ. диск ({#LS_DRIVES_ID}) -  роль
Ключ: lenovo.ls.discovery.disks.use[{#LS_DRIVES_ID}]
Тип: Character

Preprocessing
JSONPath = $..use

Пнул сборщика- данные пришли, LLD сгенерировал пачку элементов, вроде ничего не предвещало подвоха...

Name === Key
Физ. диск ([0]) - роль === lenovo.ls.discovery.disks.use["[0]"]
Физ. диск ([1]) - роль === lenovo.ls.discovery.disks.use["[1]"]
Физ. диск ([2]) - роль === lenovo.ls.discovery.disks.use["[2]"]
Физ. диск ([3]) - роль === lenovo.ls.discovery.disks.use["[3]"]
Физ. диск ([4]) - роль ===  lenovo.ls.discovery.disks.use["[4]"]
Физ. диск ([5]) - роль === lenovo.ls.discovery.disks.use["[5]"]

Я дождался прихода данных в эти элементы, и ... Вот тут я и выпал в осадок.

Вот что получилось:

Name === Last value
( ,,, - это я обрезал чтоб не забивать экран)

Физ. диск ([0]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([1]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([2]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([3]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([4]) - роль  ===  ["member","member","member","member","failed","member"...
Физ. диск ([5]) - роль  ===  ["member","member","member","member","failed","member"...

Я посмотрел: КАЖДЫЙ элемент получил данные в виде строки, содержащей ВСЕ ЗНАЧЕНИЯ для ВСЕХ элементов. Т.е. в последних данных каждого элемента во всех элементах содержат вот это:

["member","member","member","member","failed"]

Коллеги, прошу помочь и подсказать, где я был не прав =((
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
Lev Volfman
у тебя сборщик собирает массив
Preprocessing
JSONPath = $..use это вернет use из каждого элемента массива
тебе надо если не путаю так $[{#LS_DRIVES_ID}].use
Спасибо! было такое подозрение но у меня в этом вопросе не так много квалификации..

$[{#LS_DRIVES_ID}].use - это JP для прототипа?
источник

LV

Lev Volfman in Zabbix Russian Community
да
источник

ОК

Олег Ковалевський... in Zabbix Russian Community
Roman Monakhov
UnsafeUserParameters=1
спасибо большое, помогло.
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
Очень надеюсь что теперь получится =)
Спасибо!

Поменял, пнул, жду приход ;)
источник

LV

Lev Volfman in Zabbix Russian Community
в постпроцессинге есть тест
Ты подставляешь в данные порятнку [{},...{}] и в выражение $[0].use например
появился правда в 4.4 кажется
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
Lev Volfman
у тебя сборщик собирает массив
Preprocessing
JSONPath = $..use это вернет use из каждого элемента массива
тебе надо если не путаю так $[{#LS_DRIVES_ID}].use
т.е. если я правильно этот момент понял, при создании элемента из прототипа используются уже макросы из правила ЛЛД? а не сырой джейсон? и поэтому можно строить пути с использованием именно макросов..?
источник

LV

Lev Volfman in Zabbix Russian Community
да
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
Lev Volfman
в постпроцессинге есть тест
Ты подставляешь в данные порятнку [{},...{}] и в выражение $[0].use например
появился правда в 4.4 кажется
у меня 4.4.8 ;)
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
пока LLD ответил так:

Cannot create item: invalid value for preprocessing step #1: unsupported construct in jsonpath starting with: "[0]].use".
Cannot create item: invalid value for preprocessing step #1: unsupported construct in jsonpath starting with: "[1]].use".
Cannot create item: invalid value for preprocessing step #1: unsupported construct in jsonpath starting with: "[2]].use".
.......
ну и так далее
источник

LV

Lev Volfman in Zabbix Russian Community
лишняя квадратная скобка закрывающая
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
интересно откуда она вылезла
источник

LV

Lev Volfman in Zabbix Russian Community
и нету $
источник

🦅

🦅 Anth0ny in Zabbix Russian Community
Lev Volfman
и нету $
источник

LV

Lev Volfman in Zabbix Russian Community
сгенерированные айтемы имеют вот такой ключ "lenovo.ls.discovery.disks.use["[5]"]" ?
то есть в {#LS_DRIVES_ID} попадает \"[5]"\ ?
источник