«Но он возвращает мне список устройств только с IP-адресом»
Вы имеете в виду вкладку «Инфраструктура» или имеете в виду электронные письма от уведомителя?
Если в уведомителя, в Zenoss 4.2 есть ошибка, из-за которой device.id используется вместо device.title в уведомлениях по электронной почте.
Чтобы исправить, поместите следующее преобразование в корневой класс событий «/».
d = dmd.Devices.findDevice(evt.device) if d is not None: evt.device_title = d.title else: evt.device_title = d.id
, а затем на вкладке «Содержание» уведомлений используйте следующую строку
Message (subject) Format: [zenoss] **${evt/device_title}** - ${evt/summary} Body Format: Location: ${evt/zenoss.device.groups} Device: **${evt/device_title}** Component: ${evt/component} Severity: ${evt/sevword} Time: ${evt/lastTime} Message: ${evt/message} a href="${urls/eventsUrl}">Device Events a href="${urls/eventUrl}">Event Detail a href="${urls/ackUrl}">Acknowledge a href="${urls/closeUrl}">Close
Надеюсь, это поможет.
Вчера я провел часы, исследуя это, и, надеюсь, смогу избавить кого-нибудь от боли. Я нашел два ответа на этот вопрос, и мы начнем с простого.
На вкладке «Содержимое уведомлений» просто замените
${evt.device}
на
${eventSummary/actor/element_title}
Обнаружено через: http: / /community.zenoss.org/message/71252#71252
(спасибо Филиппу Уоррену)
Приведенный выше ответ Офира будет работать для реальных событий, но я обнаружил, что он не будет работать ни для каких вручную созданных (также известных как тестовых) событий . Само преобразование будет анализировать правильно, но по какой-либо причине тестовые события не могут правильно проанализировать пользовательские атрибуты, используемые в содержании уведомления, и завершатся ошибкой с ошибкой «Невозможно выполнить оценку TALES». Это затрудняет тестирование настраиваемых атрибутов, так что, надеюсь, Зеносс скоро это исправит.
Я также рекомендовал бы изменить последнюю строку его преобразования, иначе он может потерпеть неудачу, если "d" не будет найдено. Вот полностью переработанный код преобразования:
d = dmd.Devices.findDevice(evt.device)
if d is not None:
evt.device_title = d.title
else:
evt.device_title = evt.device.title
Обнаружен через: http://www.eventenrichment.com/zenoss-event-enrichment-5-min-less
Тем, кто не делал этого раньше (как я, вчера), вам не нужно использовать Zope для перехода в область трансформации. Просто выполните следующие действия в Zenoss, чтобы добавить преобразование к корневому событию:
Если вы хотите использовать Zope вместо этого (потому что «Danger» - ваше второе имя), тогда вы можете перейти по адресу http [s]: //yourserver.com [: port] / zport / dmd / Events / manage, а затем щелкнуть вкладку «Свойства», чтобы перейти к полю «Преобразование».