Вопрос или проблема
Как настроить уведомление по электронной почте на сервере Linux, когда диск/том превышает определенное использование квоты?
Вариант 1:
Напишите скрипт, который выполняет df
, разбирает вывод на процент использования и отправляет электронное письмо, когда оно превышает заданный порог, затем запустите этот скрипт из cron.
(Если вы ленитесь, вы можете найти множество готовых скриптов, спросив Знатока Всего о скрипте проверки дискового пространства Unix
.)
Вариант 2 (лучшее решение):
Разверните систему мониторинга (Nagios, InterMapper, OpenNMS и т.д. — посмотрите здесь много предложений и мнений), и настройте ее так, чтобы она отправляла вам уведомление, когда ваши диски заполняются. Параллельно настройте оповещения для других вещей, которые могут вас беспокоить 🙂
Одно очко за решение 2 тоже!
Рекомендую вам программу “Monit”, она очень легкая и простая в настройке: http://mmonit.com/monit/
Для тех, у кого нет системы мониторинга, этот простой скрипт может выполнить задачу:
#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
mail -s 'Предупреждение об дисковом пространстве' [email protected] << EOF
Ваше оставшееся свободное место на корневом разделе критически низкое. Использовано: $CURRENT%
EOF
fi
Затем просто добавьте cron-задачу.
+1 за вариант 2 выше.
Вы можете думать, что вам нужно только следить за дисковым пространством прямо сейчас, но реальность такова, что вам почти наверняка нужно мониторить больше чем один или два сервера. Это принесет вам пользу, которая удивит вас в долгосрочной перспективе.
Лично я рекомендую Zenoss, это F/LOSS, относительно легко настроить и начать работу, и у них отличная документация.
для поклонников bash,
здесь версия внедрения в виде shell-скрипта,
с
- многочисленными каналами уведомлений (telegram или feishu ..)
- определением порога для каждого раздела
.
Ответ или решение
Настройка уведомлений по электронной почте о заполнении диска на Linux-сервере
Заполнение диска на Linux-сервере может привести к сбоям в работе приложений и потере данных. Поэтому важно иметь систему уведомлений, которая сможет информировать вас о состоянии дискового пространства. В этой статье мы рассмотрим два основных подхода к настройке уведомлений: написание простого скрипта и использование системы мониторинга.
Вариант 1: Написание скрипта для мониторинга дискового пространства
Наиболее простой способ — написать Bash-скрипт, который будет регулярно проверять использование диска, и отправлять уведомление по электронной почте, если займет больше заданного порога. Вот пример такого скрипта:
#!/bin/bash
# Проверка использования диска для корневого раздела
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90 # Уровень, при котором отправляем уведомление (90%)
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo -e "Ваш раздел root имеет критически малую свободную память. Занято: $CURRENT%" | mail -s 'Предупреждение о заполнении диска' [email protected]
fi
Этот скрипт выполняет следующие шаги:
- Получает процент использования корневого раздела с помощью команды
df
. - Сравнивает текущее использование с заданным порогом (в нашем случае 90%).
- Если текущий объем превышает пороговое значение, отправляет уведомление на указанный адрес электронной почты.
Для автоматизации выполнения этого скрипта можно использовать планировщик заданий cron
. Для этого выполните команду crontab -e
и добавьте следующее:
*/30 * * * * /path/to/your/script.sh
Эта команда запустит скрипт каждые 30 минут.
Вариант 2: Использование систем мониторинга
Хотя вышеописанный способ является простым и легким для реализации, более надежным и масштабируемым решением является использование системы мониторинга. Инструменты, такие как Nagios, OpenNMS, или Monit, предоставляют расширенные функции мониторинга и позволяют настроить уведомления для различных показателей, включая использование диска.
Преимущества систем мониторинга:
- Масштабируемость: Вы можете мониторить целую сеть серверов и получать уведомления о различных состояниях.
- Гибкость: Легко настраивать дополнительные метрики и уведомления для других ресурсов (CPU, RAM, процессы и т.д.).
- Удобство интерфейса: Большинство систем имеют веб-интерфейс для удобного управления и визуализации данных.
Например, Monit — это легкое и простое в настройке приложение, которое позволяет мониторить не только использование диска, но и другие системные параметры. Сайт Monit содержит всю необходимую документацию для начала работы.
Заключение
Наблюдение за дисковым пространством и настройка уведомлений являются важными аспектами администрирования Linux-серверов. В зависимости от ваших потребностей и инфраструктуры вы можете выбрать между написанием простого скрипта и применением более мощного инструмента мониторинга. Оба варианта помогут вам поддерживать здоровье вашего сервера и предотвратить возможные сбои, возникающие из-за недостатка дискового пространства.