Пример проверки работоспособности elastic search посредством bash и cron

Опубликовано admin - вт, 12/26/2023 - 21:49

 Пример проверки работоспособности 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 - запуск каждый месяц.

Взаимосвязанные материалы

# 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 ),

Сколько времени приходится тратить на копирование данных, перед тем как приступить к их модификации, перенос или восстановление? Много. читать...

На разработку сайта! Скидки до 20%!