Мониторинг системы с уведомлением по электронной почте

В настоящее время у меня есть Ubuntu Server 16.04 LTS, и я хочу получать уведомления по электронной почте с информацией об использовании ресурсов на моем сервере. CPU, memory, swap, вы называете это.

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

Кто-нибудь знает метод, который позволяет мне это делать?

1
задан 9 June 2016 в 11:32

6 ответов

Вы можете использовать несколько решений. Один из них - monit.

Из командной строки просто запустите следующую команду:

sudo apt-get install monit

Теперь Monit должен быть установлен и доступен через один из следующих URL-адресов: [ ! d2]

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

Конфигурация Monit

Прежде чем вы сможете начать использовать Monit для автоматического мониторинга сервера, вам нужно выполнить некоторую базовую конфигурацию. Сначала создайте резервную копию существующей конфигурации по умолчанию Monit, используя следующую команду:

sudo mv /etc/monit/monitrc /etc/monit/monitrc.bak

Затем создайте новый файл monitrc с помощью команды

sudo /etc/monit/monitrc 

и скопируйте следующее

# How often in seconds should monit check your services.
set daemon 120

set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state

# Configure your SMTP out server. 
set mailserver smtp-server.columbus.rr.com port 25,localhost

set eventqueue
    basedir /var/lib/monit/events # set the base directory where events will be stored
    # optionally limit the queue size
    slots 100 

# Use one of the following 2 lines. The second line alerts on every little change and can be annoying.
set alert admin@domain.com but not on { instance, pid, ppid } #does not send alert on pid changes
#set alert admin@domain.com 

set httpd port 2812 and
    #Change username and password
    allow Username:Password
    # To enable SSL for WebUI uncomment the next 2 lines
    #ssl enable
    #pemfile /path/to/unified/certificate.pem
    # To restrict access to localhost only uncomment the following line
    #allow localhost

include /etc/monit/conf.d/*

Линии, начинающиеся с #, представляют собой комментарии, которые помогут вам настроить конфигурацию. Убедитесь, что вы правильно настроили адрес электронной почты администратора, SMTP-сервера и SMTP-порт. Вы также должны рассмотреть возможность изменения имени пользователя и пароля Monit WebUI. Если у вас есть SSL-сертификат, вы можете включить это также для доступа HTTPS

. Теперь используйте следующие команды, чтобы убедиться, что Monit работает хорошо.

Чтобы проверить конфигурацию Monit для синтаксиса ошибки:

sudo monit -t

Для запуска Monit:

sudo monit

Для проверки состояния Monit:

sudo monit status

Конфигурация Monit

Требуется, чтобы у вас был рабочий экземпляр Monit с соответствующим файлом /etc/monit/monitrc. Конфигурации Monit для различных сервисов загружаются из папки /etc/monit/conf.d. Чтобы контролировать загрузку сервера с помощью Monit, создайте конфигурационный файл Monit, используя следующую команду:

sudo /etc/monit/conf.d/systemload

Скопируйте в него следующее содержимое, сохраните и выйдите

# domain.com could be IP, hostname, or localhost
check System domain.com
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 80% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

Этот код заставит Monit отправить вам оповещение по электронной почте, если одно из вышеуказанных условий (например, средняя нагрузка >4 не менее 1 минуты или когда заполнено больше 75% RAM). Вы можете настроить вышеуказанные правила по своему усмотрению. Ниже приведен пример оповещения по электронной почте, отправленный Monit, а также описание того, какое условие вызвало предупреждение.

Test and Reload Monit

После внесения любых изменений вы должны проверить [ f31]:

sudo monit -t

Вы должны увидеть следующее сообщение: Control File Syntax OK.

Затем проверьте, выполняется ли Monit, используя следующую команду:

sudo /etc/init.d/monit status

Если выполняется Monit, перезагрузите Monit конфигурации, используя следующую команду:

sudo /etc/init.d/monit reload

Теперь запустите ваш веб-браузер и перейдите по одному из следующих URL-адресов в зависимости от о том, как настроен ваш Monit (обязательно используйте правильный номер порта):

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

Вы должны увидеть состояние системы, нагрузку, загрузку процессора, загрузку памяти и нагрузку подмены

Test and Reload Monit

Затем требуется, чтобы у вас был рабочий экземпляр Monit с соответствующим файлом /etc/monit/monitrc. Конфигурации Monit для различных сервисов загружаются из папки /etc/monit/conf.d. Для мониторинга дискового пространства с конфигурационным файлом Monit, create a Monit` с помощью следующей команды:

sudo /etc/monit/conf.d/storagespace

Скопируйте в него следующее содержимое, сохраните и выйдите

# add each drive you want to monitor below
check filesystem Ubuntu with path /dev/sda1
    if space usage > 90% then alert
check filesystem Home with path /dev/sda3
    if space usage > 90% then alert
check filesystem Media with path /dev/sdb1
    if space usage > 90% then alert

Код выше код будет контролировать пространство на жестком диске в 3 разделах на 2 дисках.

Также вы можете отслеживать определенные службы.

Монитор Apache Server с Monit

Настройка мониторинг сервера Apache с помощью Monit - с предварительно настроенными шаблонами конфигурации Monit’s. Все, что вам нужно сделать, это скопировать существующий шаблон из папки /etc/monit/monitrc.d в /etc/monit/conf.d.

sudo cp /etc/monit/monitrc.d/apache2 /etc/monit/conf.d/

Вместо копирования вы также можете создать символическую ссылку. Процесс веб-сервера Apache создает apache2.pid. Вышеупомянутый файл apache2.pid для мониторинга кода, а если не существует, Monit попытается перезапустить Apache. Перезапуск вызовет оповещение по электронной почте. Если перезапуск несколько раз завершается, Monit перестает контролировать сервер Apache.

...

2
ответ дан 23 May 2018 в 10:11

Вы также можете взглянуть на SeaLion. Вы можете настроить индивидуальные предупреждения для использования ЦП, памяти и т. д. Кроме того, вы также можете добавить свои собственные показатели и настроить уведомления для них. Кроме того, вы можете планировать выполнение команд с определенными интервалами и просматривать их выходы на дисплее временной шкалы. Об этом вы можете найти здесь.

2
ответ дан 23 May 2018 в 10:11

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

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

PRTG вы можете настроить фильтры почты для поиска для электронной почты, содержащей определенные слова. Было немного сложно сделать. Онлайновый инструмент, называемый wwww.smtpviewer.com, фактически выполняет задание, а также имеет тайм-аут, который будет предупреждать вас, когда электронная почта с ваших контролируемых устройств не наступит в течение установленного времени.
1
ответ дан 23 May 2018 в 10:11
  • 1
    Многие почтовые клиенты уже имеют возможность фильтровать, сортировать, тегировать, ... письма. Поэтому я действительно не вижу необходимости в внешнем решении для этого. Например, я использую фильтр Thunderbird для этого в течение многих лет. Если почтовый сервер поддерживает его, вы также можете использовать Sieve scripts для фильтрации, сортировки, тега, ... почты непосредственно на сервере. – Henning Kockerbeck 16 November 2016 в 16:46

В моей школе наш учитель дал нам обучение Pandora FMS, решение для мониторинга, которое охватывает мониторинг серверов, приложения и даже сети!

К тому времени я знал только Zabbix и Nagios, я никогда раньше не слышал об этом решении, но теперь я основываю свой проект на нем из-за дополнительных функций, которые он предоставляет. Часть мониторинга сервера действительно зрелая и, на мой взгляд, ее проще настроить и получить статистику производительности как можно скорее: http://pandorafms.com/monitoring-solutions/server-monitoring/

0
ответ дан 23 May 2018 в 10:11

Хотя он точно не делает то, что вы хотите из коробки, я считаю logwatch чрезвычайно полезным, но простым инструментом.

Он дает вам ежедневное резюме всех событий, которые произошли в вашем каталоге /var/log, а также некоторые другие важные системные данные, такие как текущее дисковое пространство. Все, что отсутствует, можно добавить достаточно просто (например, я добавил скрипт, который проверяет, что некоторые демоны все еще запущены).

0
ответ дан 23 May 2018 в 10:11

Насколько я понимаю, ваша потребность очень проста. Вы хотите, чтобы текст поиска содержал сообщения электронной почты для определенных ключевых слов, а затем получите уведомление, когда это произойдет. Таким образом, только когда, например, письмо содержит слово «fail», вы хотите получать уведомление, а не когда он содержит успех. Я также использую www.smtpviewer.com, как упоминал Джон Гроббелаар, чтобы получить уведомление. Преимущество использования онлайн-инструмента заключается в том, что вы всегда можете получать уведомления о появлении ожидаемого сообщения электронной почты. Из всех инструментов мониторинга почты, которые я сыграл с этим, самый простой и только один из них.

0
ответ дан 23 May 2018 в 10:11
  • 1
    Это, похоже, не отвечает на вопрос. Пожалуйста, перефразируйте это, чтобы ответить на вопрос, или удалите этот ответ или переместите его в комментарий. Спасибо, и добро пожаловать в Ask Ubuntu! – zwork 1 September 2017 в 07:05

Другие вопросы по тегам:

Похожие вопросы: