Пример проверки работоспособности 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 - запуск каждый месяц.
Оценка
127 просмотров
Взаимосвязанные материалы
# 1. Пример проверки работоспособности elastic search посредством bash и cron (вторник, декабря 26, 2023 - 21:49 ),
Пример проверки работоспособности elastic search.
читать...# 2. Хуки в Git (среда, сентября 9, 2020 - 21:52 ),
Часто приходится копировать данные по сайту в git репозиторий или переносить копию на локальный сервер или рабочий?
читать...# 3. Сам себе хостер 2. Настройка phpmyadmin, mysqli. (понедельник, сентября 7, 2020 - 21:33 ),
Phpmyadmin.
читать...# 4. В пути директории с точкой Error 403! (воскресенье, декабря 22, 2019 - 19:07 ),
Столкнулся с проблемой при работе с Bitrix, если в пути имеется точка (как правило это директория .default) то apache выдает ошибку:
читать...# 5. Копирую, копирую, копирую… (вторник, июня 12, 2018 - 09:59 ),
Сколько времени приходится тратить на копирование данных, перед тем как приступить к их модификации, перенос или восстановление? Много.
читать...