LINUX.ORG.RU
ФорумAdmin

Nagios + xmpp

 , , , ,


0

1

Привет. Есть Centos release 6.7 (final) на нем Nagios 4.1.1 Пытаюсь настроить jabber уведомления на свой виндовый openfire 3.9.3. Был создан пользователь nagios на openfire и при выполнении

 echo "hi"  sendxmpp my_jabber@jabber 
сообщение приходит исправно. Настройки касающиеся Nagios делались по гайду отсюда http://www.daemony.ru/?p=419 . Почему то ничего не приходит от моего нагиоса на джаббер. За ночь куча каналов ложились-подымались а сообщений на жабу - ноль.


покажи конфиги в которых описан твой command_name для сервиса и хоста:
там должно быть что-то типа такого:

define command{
        command_name    notify-xmpp-service
        command_line    echo "At $LONGDATETIME$: $HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$: $SERVICEOUTPUT$" | $USER1$/sendxmpp.sh  $_CONTACTXMPP$ 
        }

bl ★★★
()
Ответ на: комментарий от bl

в /usr/local/etc/objects/commands.cfg

# 'notify-by-jabber' command definition
define command{
       command_name    notify-by-jabber
       command_line   /usr/local/nagios/libexec/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'
}

rom100
() автор топика
Ответ на: комментарий от rom100

command_line /usr/local/nagios/libexec/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'

попробуй выполни что-то типа
bash -x /usr/local/nagios/libexec/jabber.sh 'CRITICAL' 'Service_Description' 'hostalias' '127.0.0.1' 'UNKNOW' 'datetime' 'sometext' 'my_jabber@jabber'

посмотри свой скрипт jabber.sh. в каком порядке какие позиционные аргументы он принимает, или в каком формате какие агрументы надо давать.

bl ★★★
()
Ответ на: комментарий от bl

что то с доступом к моему файлу в котором логин пароль к опенфаеру нагиоса?

[root@localhost libexec]# bash -x /usr/local/nagios/libexec/jabber 'CRITICAL' 'Service_Description' 'hostalias' '127.0.0.1' 'UNKNOW' 'datetime' 'sometext' pospishenkoro@polimedrouter
+ /usr/local/bin/sendxmpp pospishenkoro@polimedrouter -f /usr/local/nagios/etc/sendxmpprc -s 'Nagios Alert'
+ /usr/bin/printf %b '***** Nagios *****\nNotification Type: CRITICAL\nService: Service_Description\nHost: hostalias\nAddress: 127.0.0.1\nState: UNKNOW\nDate/Time: datetime \nAdditional Info:\n sometext \n'
/usr/local/nagios/etc/sendxmpprc must not be accessible by others
rom100
() автор топика
Ответ на: комментарий от bl

сделал chmod 600 и ваш скрипт отработал но нагиос по прежнему молчит

rom100
() автор топика
Ответ на: комментарий от vel

прописал нагиосу валидный шелл, зашел от него, он не мог считать sendxmpprc в котором были логин и пароль нагиоса. Пересоздал и сделал chmod 600 на него. теперь при выполнении команды

bash -x /usr/local/nagios/libexec/jabber.sh 'CRITICAL' 'Service_Description' 'hostalias' '127.0.0.1' 'UNKNOW' 'datetime' 'sometext' 'my_jabber@jabber'
ничихуахуа не происходит.

rom100
() автор топика
Ответ на: комментарий от rom100

Все, с пользователя нагиос уже отправил сообщение. Но сам нагиос этого делать не хочет....

rom100
() автор топика

есть ли возможность посмотреть лог отправки сообщений самим нагиосом?

rom100
() автор топика
Ответ на: комментарий от rom100
debug_level
debug_verbosity
debug_file

в nagios.cfg включить дебаг для Notifications + External commands ?

При запуске из нагиоса может отсутствовать часть переменных окружения и путей.

vel ★★★★★
()
Ответ на: комментарий от vel
[1461317817.316822] [032.2] [pid=20850] ** Notifying contact 'me_on_jabber'
[1461317817.316826] [032.2] [pid=20850] Raw notification command: /usr/local/nagios/libexec/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'
[1461317817.316836] [032.2] [pid=20850] Processed notification command: /usr/local/nagios/libexec/jabber.sh 'CUSTOM' '$SERVICEDESC$' 'Roman_Pospishenko' '192.168.21.59' '$SERVICESTATE$' 'Fri Apr 22 12:36:57 EEST 2016' '$SERVICEOUTPUT$' 'me_on_jabber@my_jabber'
rom100
() автор топика
Ответ на: комментарий от rom100

в /usr/local/nagios/libexec/jabber.sh можно вписать все что угодно для трассировки.

Есть простой способ проверки нотификации - через интерфейс нагиоса можно послать нотифай вручную. Если оно не работает, то проблема в самом скрипте, а иначе неверно сконфигурирован сам нотифай. Я на эти грабли наступал несколько раз, когда прикручивал отправку sms через gammy.

vel ★★★★★
()
Ответ на: комментарий от vel

/usr/local/nagios/libexec/jabber.sh

#!/bin/sh
/usr/bin/printf  "%b" "***** Nagios *****\nNotification Type: "$1"\nService: "$2"\nHost: "$3"\nAddress: "$4"\nState: "$5"\nDate/Time: "$6" \nAdditional Info:\n "$7" \n" | /usr/local/bin/sendxmpp "$8" -f /usr/local/nagios/etc/sendxmpprc -s "Nagios Alert"

Скрипт вставлен туда из гайда, из меня кодер как из парашутиста физик-ядерщик.

rom100
() автор топика
Ответ на: комментарий от rom100

не то событие, не тот контакт/группа.

Там есть полезная вещь - Configuration - выбираешь нужный хост/сервис и смотришь что про него знает нагиос.

vel ★★★★★
()
Ответ на: комментарий от vel
notify-by-jabber	/usr/local/nagios/libexec/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'

вот что видно из web морды из configuration

и контакт тоже видно нормально

rom100
() автор топика
Ответ на: комментарий от rom100

проверь/разреши контакту

        service_notification_period     24x7
        service_notification_options    w,u,c,r
        service_notifications_enabled   1
        host_notification_period        24x7
        host_notification_options       d,u,r
        host_notifications_enabled      1
Контакт может игнорировать то, что ты в хосте или сервисе разрешаешь нотифай.

vel ★★★★★
()
Ответ на: комментарий от vel

Неделю бьюсь головой о стену. Молю на тутошних юниксовых гуру

все конфиги взяты из objects.cache

сам хост

define host {
	host_name	Roman_Pospishenko
	alias	Roman_Pospishenko
	address	192.168.21.59
	check_command	check-host-alive
	contact_groups	admins
	notification_period	24x7
	initial_state	o
	importance	0
	check_interval	5.000000
	retry_interval	1.000000
	max_check_attempts	1
	active_checks_enabled	1
	passive_checks_enabled	1
	obsess	1
	event_handler_enabled	1
	low_flap_threshold	0.000000
	high_flap_threshold	0.000000
	flap_detection_enabled	1
	flap_detection_options	a
	freshness_threshold	0
	check_freshness	0
	notification_options	r,d,u
	notifications_enabled	1
	notification_interval	5.000000
	first_notification_delay	1.000000
	stalking_options	n
	process_perf_data	1
	retain_status_information	1
	retain_nonstatus_information	1
	}

сам контакт

define contact {
	contact_name	pospishenkoro
	alias	Nagios Admin
	service_notification_period	24x7
	host_notification_period	24x7
	service_notification_options	r,w,u,c
	host_notification_options	r,d
	service_notification_commands	notify-by-jabber
	host_notification_commands	notify-by-jabber
	email	pospishenkoro@polimedrouter
	pager	pospishenkoro@polimedrouter
	minimum_importance	0
	host_notifications_enabled	1
	service_notifications_enabled	1
	can_submit_commands	1
	retain_status_information	1
	retain_nonstatus_information	1
	}

контакт группа

define contactgroup {
	contactgroup_name	admins
	alias	Nagios Admin
	members	pospishenkoro,nagiosadmin
	}

команда нотифи бай жаба

define command {
	command_name	notify-by-jabber
	command_line	/usr/local/nagios/libexec/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'
	}

прописывал нагиосу валидный шел, из под него из баша через jabber.sh шлет. Всем премий

rom100
() автор топика

Теоретически, не позже чем через 6 минут должно быть оповещение. first_notification_delay сделай 0, тогда без задержки должно приходить.

я бы в начало jabber.sh вписал logger -p local6.info jabber-msg "$@" и через syslog смотрел.

Если в сислоге есть, а сообщение не дошло, значит проблема в транспорте.

У тебя в резделе reports есть notification - это лог нотификации, если там пусто, значит проблема в конфиге.

vel ★★★★★
()
Ответ на: комментарий от vel

в разделе репортс нотификации есть. значит с конфигом все норм. значит я не полностью тупой. радует, пробую, спасибо!

rom100
() автор топика
Ответ на: комментарий от vel

Apr 25 16:51:01 localhost nagios: wproc: stderr line 01: execvp(/usr/local/nagios/libexec/jabber.sh, ...) failed. errno is 13: Permission denied

в сислоге нашел. Но я делал chmod 600 этому файлу. почему denied? ....

rom100
() автор топика
Ответ на: комментарий от rom100

Но я делал chmod 600 этому файлу

шел бы ты книжку прочитал про права на файлы.

Если нет права на исполнения, то скрипт нужно запускать через его интерпритатор. /bin/bash /usr/local/nagios/libexec/jabber.sh

chmod 755 если там нет паролей, инача 700 и nagios владельцем.

vel ★★★★★
()
Ответ на: комментарий от vel

поставил 755. Заработало, спасибо большое!!!

rom100
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.