Поиск по сайту:

Как отправлять оповещения по электронной почте на CentOS VPS для мониторинга системы


Введение

Возможность отправлять оповещения по электронной почте необходима для повседневного управления любым VPS. Для системных администраторов (и пользователей в равной степени) возможность воспользоваться этой [новой] возможностью не только упрощает задачу, но и дает вам много союзников в борьбе с ворами или во время простоя с помощью триггеров, которые вы можете создать.

В этой статье DigitalOcean мы узнаем, как просто отправлять оповещения по электронной почте на CentOS VPS, и поговорим о различных триггерах, которые мы можем установить для повышения общей безопасности и обеспечения бесперебойной работы системы. Мы сделаем это, поняв основы работы с электронной почтой, рассмотрев необходимые приложения вместе с примерами различных триггеров предупреждений по электронной почте, которые вы можете установить, и логикой определения критических потребностей для создания большего.

Понимание электронной почты

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

Электронная почта (или электронная почта) может рассматриваться как метод или тип сообщения, которое распространяется в электронном виде от одной стороны к другой. Это не обязательно должен быть онлайн-процесс, распространяемый через Интернет, так как это может происходить в локальной сети или на том же компьютере (например, на вашем VPS) с помощью (обычно) встроенного инструмента. Однако, когда необходимо отправить электронную почту через Интернет, в игру вступает множество компонентов, начиная с агентов передачи сообщений.

Агент передачи сообщений (или агент передачи сообщений)

«Агент передачи сообщений» — это приложение, которое на самом деле выполняет доставку сообщений (электронной почты) для пользователя (пользователей) как в той же системе, так и в другом месте (например, через Интернет или локальную сеть). Приложение MTA обычно поставляются по умолчанию с различными дистрибутивами Linux и используются почтовыми клиентами для отправки сообщений между хостами, обычно с использованием протокола SMTP.

Почтовый агент пользователя (клиент электронной почты)

Многочисленные «почтовые пользовательские агенты» — это приложения, которые используются пользователями (т. е. вами) или другими приложениями для отправки и получения электронной почты. Их работа зависит от агентов передачи сообщений (MTA). Microsoft Outlook, Mozilla Thunderbird или даже Gmail, который работает онлайн, — все это подходящие примеры почтовых пользовательских агентов.

Простой протокол передачи почты (SMTP)

Для передачи сообщений между хостами необходимо установить общий язык (то есть протокол), чтобы они могли общаться друг с другом. Созданный и стандартизированный десятилетия назад, SMTP стал способом отправки сообщений. MTA, используя протокол SMTP, осуществляют доставку электронной почты.

Простая отправка электронных писем с помощью Heirloom mailx

Сегодня описанная выше архитектура охватывает лишь часть сложной природы обмена электронной почтой. Чтобы «правильная» система работала, нужно сделать гораздо больше, и даже это, к сожалению, не гарантирует доставки электронных писем — во входящие или в папки со спамом.

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

Мы будем работать с Heirloom mailx, фантастическим почтовым агентом пользователя, производным от Berkeley Mail. Он обеспечивает дополнительную поддержку нескольких протоколов, включая (но не ограничиваясь ими) IMAP, POP3 и, конечно же, SMTP. Это будет инструмент, который мы будем использовать для получения оповещений и системных предупреждений.

Примечание. Просматривая онлайн-документацию или форумы, вы можете увидеть похожее приложение под названием nail. Эти два проекта (в некотором роде) одинаковы, и nail включен в mailx. Поэтому, если вы видите команды электронной почты, использующие \nail, будет достаточно заменить его на \mail или \mailx, чтобы они выполнялись. В качестве альтернативы вы можете создать точку символической ссылки на mailx приложение. Вы можете узнать больше об истории mail, Mail, mailx и nail, посетив историю mailx. Для создания символической ссылки, пожалуйста, продолжайте читать.

Установка почты

Начнем с обновления нашей системы.

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

Чтобы обновить систему, выполните следующее:

$ yum -y update

Начать работу с mailx довольно просто. Мы будем использовать менеджер пакетов yum для его загрузки и установки.

На вашем компьютере с CentOS/RHEL выполните следующее:

$ yum install -y mailx

Вот и все! Теперь мы можем начать отправлять электронные письма с помощью команды «mail» (или mailx).

Что такое символические ссылки и как их создать

Символические ссылки (symlink) — это файлы, которые состоят из ссылки на другой, существующий файл.

Некоторые сценарии и приложения мониторинга могут использовать \email вместо \mail или \mailx для отправки электронных писем. Если вы окажетесь в такой ситуации, вы можете создать символическую ссылку, указывающую (ссылка) на mailx.

Ниже мы создаем символическую ссылку для «mail» для выполнения «mailx».

Чтобы создать символическую ссылку, выполните следующее (замените /bin/email на требуемое имя ссылки):

$ ln -s /bin/mailx /bin/email

Как настроить внешний SMTP-сервер для ретрансляции электронной почты

Использование этого экономичного решения, как упоминалось выше, может означать, что некоторые из ваших электронных писем могут попасть в папку со спамом. Поскольку вы стремитесь создать простое приложение для оповещений, это не должно быть проблемой. Однако, если вы хотите увеличить скорость доставки (например, в свой почтовый ящик), вы можете выбрать ретрансляцию ваших сообщений через внешние SMTP-серверы (например, вашего поставщика услуг электронной почты или коммерческие службы электронной почты).

Чтобы настроить [конфигурацию] SMTP-сервера для использования \mailx, нам нужно отредактировать содержимое файла /etc/mail.rc, в котором находятся [определенные] настройки приложения. Мы собираемся открыть этот файл с помощью текстового редактора «nano» и добавить наши настройки вверху.

Откройте \mail.rc с помощью \nano:

$ nano /etc/mail.rc

Ниже вы можете найти пример настроек SMTP, которые вам нужно будет изменить, чтобы они соответствовали настройкам вашего провайдера, прежде чем добавлять их в начало \mail.rc. Строки, начинающиеся со знака #, закомментированы - это означает, что они не действуют. -- и состоят из следующей строки, которую вам нужно будет заменить, чтобы она соответствовала данным вашего SMTP-сервера.

Пример:

# set smtp=smtp://smtp.server.tld:port_number
set smtp=smtp://smtp.example.com:543
# tell mailx that it needs to authorise
set smtp-auth=login
# set the user for SMTP
# set smtp-auth-user=user@domain.tld
set smtp-auth-user=user.name@example.com
# set the password for authorisation
set smtp-auth-password=enter-password-here-1234

Нажмите \CTRL+X и подтвердите \Y, чтобы сохранить и выйти.

Отныне все отправленные письма будут ретранслироваться с использованием конфигурации, которую вы только что установили.

Совет: вы можете рассмотреть возможность использования серверов Gmail или предоставить простые в использовании SMTP-серверы профессиональной почтовой службы, такие как MANDRILL, которые позволяют отправлять тысячи писем каждый месяц бесплатно.

Отправка писем с помощью mail (или mailx)

Хотя вы можете напрямую взаимодействовать с MTA sendmail, наличие установленного \mailx предлагает, среди многих других вещей, массу простоты и возможные варианты настройки [в будущем], когда это необходимо.

Вот некоторые из доступных опций Heirloom mailx:

  • -a файл Позволяет прикрепить данный файл к электронному письму
  • -b address Отправляет слепые копии в список адресов электронной почты, разделенных запятыми
  • -c адрес Отправляет копии списку пользователей
  • -q файл Устанавливает содержимое сообщения из данного файла
  • -r from address Устанавливает адрес отправителя электронной почты для отправки
  • -s subject Устанавливает тему электронного письма

Для получения полного списка опций посетите соответствующую документацию, нажав здесь.

Пример использования:

Отправка простого сообщения:

 echo "Your message" | mail -s "Message Subject" email@address

Отправка сообщения с вложением:

 echo "Message" | mail -s "Subject" -a /loc/to/attachment.txt email@address

Чтение тела сообщения из файла:

 echo | mail -s "Subject" -r from@address -q /loc/to/body.txt email@address

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

Полную документацию по почте Heirloom можно найти на официальном веб-сайте http://heirloom.sourceforge.net/mailx.html.

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

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

Мониторинг портов и сокетов

Чтобы узнать больше о мониторинге портов и сокетов, обратитесь к следующей статье, где вы можете узнать об этом и быстро настроить Linux Socket Monitor для задачи, которая будет использовать «mailx» для уведомления вас об открытии нового порта/сокета. .

Как установить Linux Socket Monitor (LSM) на CentOS 6.4 в библиотеке сообщества DigitalOcean

Другие варианты мониторинга с использованием сценариев Bash:

Если у вас есть особые потребности (например, отслеживание нехватки памяти, места на диске, логинов и т. д.), теперь вы можете искать различные сценарии bash для выполнения задачи — и вы можете найти тысячи таких сценариев. доступный!

Что такое Bash-скрипты?

Сценарии Bash (или сценарии оболочки, программы bash) — это небольшие приложения, которые используются для выполнения быстрых задач. Их легко создавать и использовать, поэтому они очень популярны и являются отличными инструментами для системного администрирования.

Как только вы найдете его (для нужной вам задачи), вам нужно будет создать пустой файл, чтобы сохранить его как исполняемый bash-скрипт.

Пример:

Вы хотите получать оповещения по электронной почте, когда на вашем диске заканчивается место. Для этого выполните быстрый поиск в Google, скажем, «Отправить оповещение по электронной почте, когда на вашем диске заканчивается место». Среди различных результатов вы увидите один из Linux Jornal. Щелкните URL-адрес, и вы увидите сценарий bash. задокументировано на странице.

Создайте новый текстовый файл, используя nano для скрипта bash:

$ nano monitor_disk_space.sh

Скопируйте и вставьте содержимое из URL:

#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90

if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
    mail -s 'Disk Space Alert' mailid@domainname.com << EOF
Your root partition remaining free space is critically low. Used: $CURRENT%
EOF
fi

Примечание. Не забудьте заменить mailid@domainname.com своим адресом электронной почты. Кроме того, помните, что вы также можете изменить строку темы.

Нажмите «CTRL+X» и подтвердите нажатием «Y», чтобы сохранить файл и выйти из него.

Вы создали небольшую программу bash с именем monitor_disk_space.sh, которую вы можете назвать по своему усмотрению.

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

Дайте файлу разрешение исполняемый с помощью \chmod:

$ chmod +x monitor_disk_space.sh

Вы можете попробовать запустить файл, выполнив его: ./monitor_disk_space.sh

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

Пожалуйста, прочитайте следующую статью о том, как использовать Cron для автоматизации задач на VPS, чтобы узнать о планировании cron для определенных задач.

И мы закончили создание нашего первого скрипта мониторинга!

Пример 2:

Если вы хотите отслеживать использование пространства [диска] и получать электронные письма при превышении определенного порога, вы можете обратиться к этому превосходному примеру с Linix.com.

Начнем с создания пустого файла сценария оболочки:

$ nano monitor_space_usage.sh

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

#!/bin/bash

LIMIT='80'
#Here we declare variable LIMIT with max of used spave

DIR='/var'
#Here we declare variable DIR with name of directory

MAILTO='monitor@gmail.com'
#Here we declare variable MAILTO with email address

SUBJECT="$DIR disk usage"
#Here we declare variable SUBJECT with subject of email

MAILX='mailx'
#Here we declare variable MAILX with mailx command that will send email

which $MAILX > /dev/null 2>&1
#Here we check if mailx command exist

if ! [ $? -eq 0 ]
#We check exit status of previous command if exit status not 0 this mean that mailx is not installed on system
then
          echo "Please install $MAILX"
#Here we warn user that mailx not installed
          exit 1
#Here we will exit from script
fi

cd $DIR
#To check real used size, we need to navigate to folder

USED=`df . | awk '{print $5}' | sed -ne 2p | cut -d"%" -f1`    
#This line will get used space of partition where we currently, this will use df command, and get used space in %, and after cut % from value.

if [ $USED -gt $LIMIT ]
#If used space is bigger than LIMIT

then
      du -sh ${DIR}/* | $MAILX -s "$SUBJECT" "$MAILTO"
#This will print space usage by each directory inside directory $DIR, and after MAILX will send email with SUBJECT to MAILTO
fi

Убедившись, что вы изменили его в соответствии с вашими потребностями (и установили свой адрес электронной почты в качестве получателя, изменив переменную MAILTO), вы можете сохранить его, нажав \CTRL+X и подтвердив \Y.

Снова установите файл как исполняемый, и у вас готов второй инструмент мониторинга системы Linux.

Чтобы дать разрешение на выполнение файла, выполните следующее:

$ chmod +x monitor_space_usage.sh

Примечания:

Для получения дополнительных сценариев оболочки для мониторинга вы можете посетить http://linoxide.com/category/linux-shell-script/.

Для получения дополнительной информации о сценариях оболочки посетите http://www.linoxide.com/guide/scripts-pdf.html.

Прислано: