В моей предыдущей статье я упоминал, что ключевым преимуществом 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/