splunkサービスが停止してたら自動復旧させるshellスクリプト例
はじめに
- SplunkプロセスがダウンしていたらSplunkサービスを再起動する簡単なスクリプトを用意
- そもそもSplunkサービスがちゃんと動いていることって何をもって確認すればいいか?マニュアルをチェック
スクリプトのポイント
-
Good unix way check if splunkd and splunkweb are running
- こちらのAnswerのscriptをもとにちょっとだけ改良しました。
- ①statusのチェック、②プロセスのチェック、③curlによるチェックの3本柱
- スクリプト実行した結果をsendmailコマンドでメール通知する
実際のスクリプト例
check.sh
#!/bin/sh
# ## Splunk Health Checking Script to run hourly ##
# This will run some basic checks to ensure ##
# splunk is running and restart those services ##
# if it fails a check. ##
## ############################################# ##
service=splunk
path=/opt/splunk/bin/
to=(your mail address)
mailbody=(your mail body text file)
# Error handling function
function errorCheck {
if [ $? -ne 0 ] ; then
echo "Error occurred connecting on port 8089 for $service"
$path$service start
sendmail $to < $mailbody
fi
}
# check for the processes to be running
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 )); then
echo "$service is running!!!"
else
$path$service start
sendmail $to < $mailbody
fi
# check for the service itself to be running
# sometimes the service can crash leaving stale PID's running
if (( $($path$service status | grep "splunkd is running" | wc -l) > 0 )) ; then
echo "$service is running!!!"
else
$path$service start
sendmail $to < $mailbody
fi
# check if we can connect locally on port 8089
/usr/bin/curl -s -k -o "/dev/null" https://127.0.0.1:8089
errorCheck
email.txtの用意
# cat email.txt
From: splunk-check
Subject: Splunk service was restarted.
Splunk service was restarted by script.
crontabで設定(毎0時に実行!)
crontab
* 0 * * * /home/splunk/check.sh
メール届く(試しにsplunk stopして確認)
ハマったポイント
ps -ef | grep -v grep | grep $service | wc -l > 0
Author And Source
この問題について(splunkサービスが停止してたら自動復旧させるshellスクリプト例), 我々は、より多くの情報をここで見つけました https://qiita.com/odorusatoshi/items/f863270c0b0123ae822a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .