сенсу почтовик и трубка

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

{
  "handlers": {
    "email": {
      "type": "pipe",
      "command": "mail -s \"sensu alert\" [email protected]",
      "severities": [
        "ok",
        "critical"
      ]
    }
  }
}

я получаю пустое письмо. когда я использую обработчик mailer.rb, я не получаю никакой электронной почты. я обязательно включил почту и почту в mailer.json. я вижу, что в журналах есть правильная информация для параметров обработчика и электронной почты.

так что я пришел к выводу, что "труба" не работает. кто-нибудь может помочь с этим? Я буду очень признателен. Я бы хотел, чтобы было сообщество sensu, но оно может быть слишком новым, чтобы его иметь.


person user2608740    schedule 23.07.2013    source источник


Ответы (6)


Что касается mailer.rb, вы проверяли логи сервера (по умолчанию в /var/log/sensu/sensu-server.log) на наличие ошибок? Если в любом из обработчиков есть ошибка, она появится в этих журналах.

Для запуска mailer.rb требуется несколько драгоценных камней. Чтобы узнать, используете ли вы встроенный рубин sensu или нет, проверьте /etc/default/sensu для EMBEDDED_RUBY. Если это не так, вам нужно убедиться, что в вашей системе Ruby установлены все эти драгоценные камни (sensu-handler, mail, timeout). Если установлено значение true, сделайте то же самое со встроенным рубином sensu:

/opt/sensu/embedded/bin/gem list

Убедитесь, что драгоценные камни установлены, повторите попытку и проверьте sensu-server.log на наличие ошибок.

Если у вас есть другие проблемы, на самом деле существует сообщество — проверьте #sensu на Freenode.

person Community    schedule 02.08.2013

Вы можете записать собственные данные о событиях в формате JSON и передать их через PIPE следующим образом:

cat event.json | /opt/sensu/embedded/bin/ruby mailer.rb

Самый простой способ получить файл event.json — из файла sensu-server.log.

person frommelmak    schedule 12.12.2013

Для использования mailer.rb вам нужен собственный почтовый сервер! если вы опубликуете журналы сервера sensu, я думаю, что смогу вам помочь.

person Onbayev Kanat    schedule 25.08.2013

Я провел некоторое тестирование, и почта в канал не работает с GNU mail/mailx (предположим, вы используете Ubuntu или что-то в этом роде?).

Два решения:

1) установить почту BSD:

sudo apt-get install bsd-mailx

2) Или немного измените команду, чтобы получить почту для чтения со стандартного ввода, вам нужно будет сделать что-то вроде:

{
  "handlers": {
    "email": {
      "type": "pipe",
      "command": " echo $(cat) > /tmp/mail.txt;  mail -s \"sensu alert\" [email protected] < /tmp/mail.txt"
    }
  }
}

Идея обычно заключается в том, что вы читаете событие json со стандартного ввода в языке сценариев, а затем извлекаете биты event.json, которые хотите отправить. Вышеприведенное отправит по электронной почте весь файл json.

person James E    schedule 02.01.2014

Вы можете использовать обработчик sensu mailer. Пожалуйста, найдите следующие шаги для настройки: -

  1. sensu-install -p sensu-plugins-mailer
  2. apt-get install postifx
  3. /etc/init.d/postfix start
  4. cd /etc/sensu/conf.d/

когда мы установим этот плагин, мы получим 3 рубиновых файла.

На этот раз мы используем этот файл: - handler-mailer.rb

Сначала нам нужно создать файл обработчика в этом месте /etc/sensu/conf.d/ :-

  1. vim обработчик-mailer.json

    { "mailer": { "admin_gui": "http://127.0.0.1:3000/", "mail_from": "localhost", "mail_to": ["yourmailid-1","yourmailid-2"], "smtp_address": "localhost", "smtp_port": "25" } }

Теперь нам нужно создать один файл обработчика почты в этом месте /etc/sensu/conf.d/:-

  1. { "handlers": { "mymailer": { "type": "pipe", "command": "/opt/sensu/embedded/bin/handler-mailer.rb", "severities": [ "critical", "unknown" ] } } }

в приведенном выше имени обработчика файла — mymailer, нам нужно использовать это имя обработчика в наших проверках.

person Ajay Trivedi    schedule 31.03.2017

Используйте bin/handler-mailer-mailgun.rb или bin/handler-mailer-ses.rb или bin/handler-mailer.rb

Пример:

echo '{
"id": "ef6b87d2-1f89-439f-8bea-33881436ab90",
"action": "create",
"timestamp": 1460172826,
"occurrences": 2,
"check": {
  "type": "standard",
  "total_state_change": 11,
  "history": ["0", "0", "1", "1", "2", "2"],
  "status": 2,
  "output": "No keepalive sent from client for 230 seconds (>=180)",
  "executed": 1460172826,
  "issued": 1460172826,
  "name": "keepalive",
  "thresholds": {
    "critical": 180,
    "warning": 120
  }
},
"client": {
  "timestamp": 1460172596,
  "version": "1.0.0",
  "socket": {
    "port": 3030,
    "bind": "127.0.0.1"
  },
  "subscriptions": [
    "production"
  ],
  "environment": "development",
  "address": "127.0.0.1",
  "name": "client-01"
} }' | /opt/sensu/embedded/bin/handler-mailer-mailgun.rb

Выход:

mail -- sent alert for client-01/keepalive to [email protected]
person artamonovdev    schedule 21.09.2019