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

Опубликовано admin -

 Пример проверки работоспособности 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 . Сам себе хостер 3. Лучшие команды для настройки сервера! ( ),
Наиболее запоминающиеся и нужные команды для настройки сервера для сайта (nginx, mysql, apache, docker). читать...
# 2 . Пример проверки работоспособности elastic search посредством bash и cron ( ),

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

читать...
# 3 . Хуки в Git ( ),

Часто приходится копировать данные по сайту в git репозиторий или переносить копию на локальный сервер или рабочий?

читать...
# 4 . Сам себе хостер 2. Настройка phpmyadmin, mysqli. ( ),

Phpmyadmin.

В первой части /node/958&nbsp читать...

# 5 . В пути директории с точкой Error 403! ( ),

Столкнулся с проблемой при работе с Bitrix, если в пути имеется точка (как правило это директория .default) то apache выдает ошибку:

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