Статьи

Повторно используйте плагины Nagios в Sensu для быстрой прибыли

В моей предыдущей статье я упоминал, что ключевым преимуществом Sensu является возможность повторного использования существующих плагинов Nagios. Это мощная особенность Sensu. Согласно последним археологическим открытиям, Nagios существует не менее 1000 лет, а это означает, что огромное количество человеческих усилий (и капитала) было вложено в создание плагинов Nagios. Возможность использовать эти предыдущие усилия — огромная победа. В этой статье я продемонстрирую создание проверки Sensu с помощью плагина Nagios check_http .

Установите плагин check_http nagios

Следуя предыдущей статье, мы будем делать эту демонстрацию на основе CentOS 5, но не должно быть затруднений найти сборку check_http для вашего дистрибутива.

Во-первых, убедитесь, что на вашем компьютере установлено репозиторий EPEL yum. Далее, давайте установим пакет nagios-plugin-http на наши клиентские узлы Sensu:

sudo yum -y install nagios-plugins-http

Давайте посмотрим, где был установлен бинарный файл check_http (обратите внимание на специфический путь для arch):

$ rpm -ql nagios-plugins-http
/usr/lib64/nagios/plugins/check_http

Напишите определение проверки Sensu

Хорошо, теперь мы готовы создать определение проверки для Sensu. Мы создадим этот файл на узлах, на которых работает sensu-client, а также sensu-server (совет: эта часть проще, если вы используете инструмент CM, такой как Chef или Puppet.)

/etc/sensu/conf.d/check_google.json:

{
  "checks": {
    "check_google": {
      "notification": "Google HTTP failed",
      "command": "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_http google.com -R 'search'",
      "subscribers": [ "webservers" ],
      "interval": 60,
      "handlers": ["default", "pagerduty"]
    }
  }
}

Давайте посмотрим на каждую часть этого определения проверки:

  • уведомление: это можно рассматривать как «дружеское сообщение». Это наиболее полезно с такими обработчиками, как Twitter или PagerDuty. Например, это будет то, что вы услышите, когда жуткий компьютерный голос Pagerduty.com разбудит вас в 3 часа ночи. Полный результат проверки также доступен обработчикам в атрибуте output.
  • команда: Здесь мы указываем команду check_http, которую мы хотим запустить, и соответствующие опции. Обратите внимание, что мы добавляем в / PATH / usr / lib64 / … и / usr / lib / …. Это не обязательно, но это хороший способ заставить эту проверку работать на платформах i386 и x86_64 для поставляемой EPEL версии check_http.
  • подписчики: здесь мы указываем, какие узлы sensu-client должны выполнять эту проверку Напомним, что мы определили «подписки»: «веб-серверы» в нашем /etc/sensu/conf.d/client.json в предыдущей статье .
  • интервал: как часто эта проверка должна быть выполнена.
  • handlers: обработчики, которые должны получать выходные данные этого плагина. Обработчики будут выполняться на узле sensu-server.

Получите прибыль

После того, как мы создали файл json на клиентах и ​​серверах, нам нужно перезапустить службы sensu-client и sensu-server, чтобы они подхватили новый файл .json.

Через пару минут вы должны увидеть следующее в /var/log/sensu/sensu-server.log:

I, [2012-01-23T19:14:22.218301 #7397]  INFO -- : [publisher] -- publishing check request -- check_google -- webservers {"message":"[publisher] -- publishing check request -- check_google -- webservers","level":"info","timestamp":"2012-01-23T19:14:22.   %6N-0700"}

И на клиенте, в /var/log/sensu/sensu-client.log:

I, [2012-01-23T19:15:22.224437 #18787]  INFO -- : [subscribe] -- received check request -- check_google {"message":"[subscribe] -- received check request -- check_google","level":"info","timestamp":"2012-01-23T19:15:22.   %6N-0700"}
I, [2012-01-23T19:15:22.348884 #18787]  INFO -- : [result] -- publishing check result -- check_google -- 0 -- HTTP OK: HTTP/1.0 200 OK - 11294 bytes in 0.099 second response time |time=0.099463s;;;0.000000 size=11294B;;;0

Вот и мы. Мы реализовали проверку Sensu с помощью плагина Nagios. Существует довольно много плагинов для Nagios , и мы должны иметь возможность использовать большинство (все?) С Sensu. Иди вперед и получай прибыль.

По вопросам использования Sensu зайдите на канал #sensu на Freenode.

Источник:  http://joemiller.me/2012/01/24/re-use-nagios-plugins-in-sensu-for-quick-profit/