Проблемы с работой ActiveRecord во FreeBSD (iconv)

Написал я небольшое приложение на Ruby с использованием движка Ramaze, оттестировал и решил что пора ставить его «в живую».
Поставить приложение решил на FreeBSD сервер, для работы нужен был gem ActiveRecord (куда без него). При запуске любой программы использующей ActiveRecord я получал такую ошибку:

i18n_interpolation_deprecation.rb:23:in `<class:Simple>': undefined method `alias_method_chain' for I18n::Backend::Simple:Class (NoMethodError)

Гугление по ошибке навело меня на страницу блога: http://john.vipvip.com/blog/?p=71, приведенный солюшн мне не подходил т.к. предпологалось что я ставил Ruby из портов, а у меня был Ruby 1.9-1 из сорсов с официального сайта.
Стало понятно главное – проблема в iconv модуле для Ruby, как оказалось в архиве Ruby есть такая папка ext/iconv/, но почему-то по умолчанию в файле ext/Setup, iconv закомментирован(за подробностями в файл README). Когда я убрал комментарии и еще раз попытался собрать Ruby iconv опять не собрался :(

Опять таки путем гугуления нашел следующие два треда:
http://groups.google.com/group/emm-ruby/browse_thread/thread/e4aa78aa9c1e4c9d
http://groups.google.com/group/emm-ruby/browse_thread/thread/e77c51cfd7589f51
То-ли FreeBSD`ный линковщик не добавлял кое-какие папки в опции сборки, то-ли Ruby не до конца сконфигурирован для сборки во FreeBSD, в общем родился маленький хак для нормальной сборки iconv + ruby. Редактируем файл ext/iconv/extconf.rb, после все «require» блоков добавляем две строки:

$LIBS << " -L/usr/local/lib "
$CFLAGS << " -I/usr/local/include "

Еще раз пытаемся собрать Ruby и сдеать make install, теоретически iconv должен собраться :)

P.S.

Возможно вам понадобится предварительно поставить iconv из портов:

cd /usr/ports/converters/iconv/
make install clean

Nagios: оповещение с помощью SMS (Билайн, Россия)

Оригинальная статья
Спасибо товарищу ese за предоставленную информацию. Выкладываю с небольшими правками.


Сам недавно прикрутил нотификацию по СМС к Nagios. У меня БиЛайн, я из России.

Для БиЛайн делаем следующее:

  • Подключаем услугу СМС на email: набираем номерок 06849909, ждем СМС о результате подключения новой услуги;
  • Включаем склейку длинных сообщений: набираем 06849908.

В результате в полученной первой СМС нам придет наш email с которого все письма будут транслироваться в виде СМС на наш номер.
Денег БиЛайн не за что не взял.

Важно!

У БиЛайна при отправке сообщения на такой email текст сообщения отправляется до первого знака перевода строки, поэтому удаляем все \n из command_line директивы command.

С Новым Годом!


Имею честь поздравить всех читателей блога с наступающим 0×7DA (2010) годом. Чтобы проблем у вас было меньше, позитива больше, пятницы были чаще.

P.S.
Если вы кодер, желаю вам пореже встречатся с ребятами выше ;) .

Nagios: оповещение с помощью SMS



Как показал мой скромный опрос, только примерно треть пользователей Nagios используют оповещение при помощи SMS сообщений.

Какой способ оповещения о проблемах вы используете в Nagios?

  • E-Mail (67%, 26 голосов)
  • Смотрю в web-интерфей (41%, 16 голосов)
  • SMS (38%, 15 голосов)
  • Jabber/MSN/ICQ (33%, 13 голосов)
  • Nagstatmon etc. (21%, 8 голосов)

Всего голосов: 39

Loading ... Loading ...

На мой взгляд SMS-оповещение один из самых эффективных способов получения информации о проблемах, т.к. мобильный телефон всегда рядом (в отличии от Jabber/E-Mail) и скорость реагирования на проблемы соответственно будет выше. В этой статье я опишу один из способов создания механизма SMS-оповещений который сам активно использую.

0. Теория


Все приведеные ниже рекомендации основаны на том предположении что вы можете подключить такую услугу мобильных операторов как email-to-SMS/SMS-to-email. Услуга работает так: вы посылаете e-mail на специальный адрес электронной почты, а получаете сообщение уже в виде SMS на ваш телефон.

В Беларуси такие услуги есть:
МТС
Velcom.
life:) вроде не имеет такой услуги

В России:
Есть у МТС`а:
http://www.mts.ru/services/internet/e-mail/, услуга называется немного не так, но позволяет получать почту с rambler.ru и mail.ru.
Так же у них есть услуга E-mail to SMS, но там все зависит от региона (не силен я в Российской географии, сам я из Беларуси).
У Билайна я такой услуги не нашел.
На этом собственно и заканчиваются мои познания в Российских телекомах (отпишитесь в комментах, если вы знаете о подобных услугах у других операторов).

Про Украинские телекомы я и вовсе ничего не знаю :( .

1. Настройка

Итак вы подключили услугу, оператор снял у вас денежку, вы выслали на указанный email тестовое письмо и убедились что «все работает». Дальше как обычно начинается процесс конфигурирования.

Добавляем в конфигурацию Nagios новую команду для отсылки оповещений по SMS, назовем ее notify-by-epager:

define command{
        command_name                    notify-by-epager
        command_line                    /usr/bin/printf "%b" "\n\nType:$NOTIFICATIONTYPE$\n$SERVICEOUTPUT$\nTime: $SHORTDATETIME$" | /bin/mail -s "$HOSTALIAS$/$SERVICEDESC$" $CONTACTPAGER$
}

По сути это та-же команда оповещения что и по e-mail с той лишь разницей, что уменьшено количество передаваемой информации (SMS может быть всего 76 символов) и в качестве получателя используется макрос $CONTACTPAGER$, а не $CONTACTEMAIL$(подробнее про макросы в Nagios).

Далее создаем контакт которому мы будем слать SMS:

define contact{
        contact_name                    <USER_NAME>
        alias                           <USER_ALIAS>
        contactgroups                   <CONTACT_GROUPS>
        host_notification_period        <HOST_NOTIFICATION_PERIODS>
        service_notification_period     <SERVICE_NOTIFICATION_PERIODS>
        host_notification_options       <HOST_NOTOFICATIONS_OPTIONS>
        service_notification_options    <SERVICE_NOTOFICATIONS_OPTIONS>
        host_notification_commands      host-notify-by-email, host-notify-by-epager
        service_notification_commands   notify-by-email, notify-by-epager
        email                           <USER_EMAIL>
        pager                           <PAGER_EMAIL>
}

Если у вас уже есть контакты и вы хотите добавить им оповещение SMS, то просто добавьте строку

        pager                           <PAGER_EMAIL>

и в опции service_notification_options и host_notification_options добавте notify-by-epager через запятую (см. пример).

Ну вот и все, теоретически вы можете теперь перезагрузить Nagios и попробовать что-нибудь «сломать», вам должно придти SMS сообщение с описанием проблемы.