Check ElasticSearch Cluster Status
Bash script to check health of ElasticSearch service running in an Ubuntu server. This script send an email alert to a ticketing system alerting if service status is not running. After sending the email, this script tries to restart ES service again and push status logs.
#!/bin/bash
check2=`curl -s localhost:9200 | grep "cluster_name"`
if [[ $check2 == *"cluster_name"* ]]
then
stat='status check at, '
stime=`uptime`
dte=`date`
str=$check2$stat$dte$stime
echo $str >> /var/log/elastic_status.txt
else
stat='status failed at, '
stime=`uptime`
dte=`date`
str=$stat$dte$stime
echo $str >> /var/log/elastic_status.txt
echo $str | mail -s "elasticsearch crash" -r noreply@cluster.com monit@tickets.com
systemctl start elasticsearch
stime1=`uptime`
msg='restarting service at ... '
retry=$msg$dte$stime1
echo $retry >> /var/log/elastic_status.txt
fi