Пример проверки работоспособности elastic search.
#!/bin/bash
################################################################################################
# Проверка статуса ElasticSearch перезагрузка сервисов при необходимости ?
################################################################################################
# Команда для отправки почты
MAILCMD="$(which mail)"
# Файл письма
MAILMESSAGE="/tmp/vps_service.fail.$$"
# Email, куда слать уведомления
EMAILID="mail@yandex.ru"
ElasticStatus=`curl -u user:password -X GET "http://111.111.11.111:9200" | jq .name`
# Функция для отправки письма
mail_doxer()
{
$MAILCMD -s "Problem with server $(hostname)" $EMAILID < $MAILMESSAGE
}
echo "Данное письмо отправлено Вам, так как были обнаружены проблемы">>$MAILMESSAGE
echo "на сервере $(hostname), а Ваш адрес указан в скрипте для таких уведомлений">>$MAILMESSAGE
echo "----------------------------------------------------------------------------------------------------" >>$MAILMESSAGE
echo "">>$MAILMESSAGE
if [ $ElasticStatus != "\"site.net\"" ]; then
echo "ОШИБКА:">>$MAILMESSAGE
echo "-- При проверке обнаружено, что сервер Elastic не был запущен!">>$MAILMESSAGE
echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE
# Пытаемся запустить сервис
systemctl start elasticsearch
# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1
# Проверяем, работает ли сервис после выполнения скрипта
echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE
ElasticStatusAfter=`curl -u user:password -X GET "http://111.111.11.111:9200/"| jq .name`
if [[ $ElasticStatusAfter != "\"site.net\"" ]]; then
echo "-- Elastic сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE
echo "">>$MAILMESSAGE
else
echo "-- Elastic сейчас запущен..." >>$MAILMESSAGE
echo "">>$MAILMESSAGE
fi
fi
# Получаем текущее значение LA
LOAD=`uptime | grep -o 'load average.*' | cut -c 15-18`
# Если оно больше указанного ниже значения, то это также повод для беспокойства
if [ $LOAD \> 15.0 ]; then
echo "ВНИМАНИЕ!!! Слишком большая нагрузка!" >>$MAILMESSAGE
echo "-- Текущий Load Average: $LOAD " >>$MAILMESSAGE
else
echo "-- Текущий Load Average: $LOAD " >>$MAILMESSAGE
fi
echo "----------------------------------------------------------------------------------------------------" >>$MAILMESSAGE
echo "*** Это письмо сгенерировано скриптом $(basename $0) ***" >>$MAILMESSAGE
echo "*** Не стоит отвечать на это письмо, это всего лишь уведомление ***" >>$MAILMESSAGE
# Проверяем, был ли нерабочим хоть один из проверяемых сервисов, если да, то шлем емэйл
if [ $ElasticStatusAfter != "\"site.net\"" ] || [ $LOAD \> 15.0 ]; then
#mail_doxer
echo $ElasticStatus
fi
# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1
#Удаляем временный файл письма
rm -f $MAILMESSAGE
Данный скрипт необходимо разместить в одной из директории:
- /etc/cron.minutely - запуск каждую минуту;
- /etc/cron.hourly - запуск каждый час;
- /etc/cron.daily - запуск каждый день;
- /etc/cron.weekly - запуск каждую неделю;
- /etc/cron.monthly - запуск каждый месяц.
Оценка
137 просмотров
Взаимосвязанные материалы
#
1
.
Сам себе хостер 3. Лучшие команды для настройки сервера!
(
),
Наиболее запоминающиеся и нужные команды для настройки сервера для сайта (nginx, mysql, apache, docker). читать...
Наиболее запоминающиеся и нужные команды для настройки сервера для сайта (nginx, mysql, apache, docker). читать...
#
2
.
Пример проверки работоспособности elastic search посредством bash и cron
(
),
Пример проверки работоспособности elastic search.
читать...
#
3
.
Хуки в Git
(
),
Часто приходится копировать данные по сайту в git репозиторий или переносить копию на локальный сервер или рабочий?
читать...
#
4
.
Сам себе хостер 2. Настройка phpmyadmin, mysqli.
(
),
Phpmyadmin.
В первой части /node/958 
читать...
#
5
.
В пути директории с точкой Error 403!
(
),
Столкнулся с проблемой при работе с Bitrix, если в пути имеется точка (как правило это директория .default) то apache выдает ошибку:
читать...