1: 2021-06-10 (木) 16:01:13 takatsuka |
現: 2021-06-10 (木) 17:07:46 takatsuka |
| サーバーの死活監視スクリプトです。 | | サーバーの死活監視スクリプトです。 |
| | | |
- | 定期的にサーバーにアクセスし、エラーだったらメールで通知します。 | + | サーバーにアクセスしエラーだったらメールで通知します。それを cron で定期的に実行します。 |
| というような簡素な機能しかありませんが事足りることも多いので。 | | というような簡素な機能しかありませんが事足りることも多いので。 |
| | | |
- | これまでは windows 上で同様のことをしておりました。特に不都合もなかったのですが環境自体もかなり古いものだったのでシェルスクリプトで作ってみました。 | + | これまでは windows 上で同様のことをしておりました。特に不都合もなかったのですが環境自体もかなり古くなったこともありシェルスクリプトで作ってみました。 |
- | せっかくなので Docker Compose を使って最小限の記述をするだけでOKの形にしています。 | + | せっかくなので Docker Compose を使って最小限の記述をするだけで構築できる形にしています。 |
| | | |
| いろいろなサイトの情報を参考にさせてもらっています。ありがとうございます。 | | いろいろなサイトの情報を参考にさせてもらっています。ありがとうございます。 |
| TZ: Asia/Tokyo | | TZ: Asia/Tokyo |
| container_name: "healthcheck-centos7" | | container_name: "healthcheck-centos7" |
- | # ご随意に | |
| # restart: always | | # restart: always |
| }} | | }} |
| # 環境に合わせて記述してください | | # 環境に合わせて記述してください |
| RUN echo $'\n\ | | RUN echo $'\n\ |
- | set smtp-use-ssl\n\ | + | #set smtp-use-starttls\n\ |
| set smtp=smtp://mail.example.com:587\n\ | | set smtp=smtp://mail.example.com:587\n\ |
| set smtp-auth=login\n\ | | set smtp-auth=login\n\ |
| ' > /root/.mailrc | | ' > /root/.mailrc |
| | | |
- | # 15分毎に cron.sh を実行します。不都合あれば適宜変更して下さい | + | # 15分毎に cron.sh を実行します |
| CMD chmod 744 /opt/cron.sh \ | | CMD chmod 744 /opt/cron.sh \ |
| ; (echo "*/15 * * * * /opt/cron.sh > /dev/null 2>&1") | crontab - \ | | ; (echo "*/15 * * * * /opt/cron.sh > /dev/null 2>&1") | crontab - \ |
| items=( | | items=( |
| # 以下に監視対象を記述してください | | # 以下に監視対象を記述してください |
- | # 'チェックするURL | エラー発生時のメール宛先' | + | # 'チェックするURL | エラー発生メールの宛先' |
| 'https://www.example.com/|rb20det@example.com' | | 'https://www.example.com/|rb20det@example.com' |
| 'http://www2.example.com/|jzx80@example.com,ae86@example.com' | | 'http://www2.example.com/|jzx80@example.com,ae86@example.com' |
| for item in ${items[@]}; do | | for item in ${items[@]}; do |
| IFS='|' read -r url mailto <<< "$item" | | IFS='|' read -r url mailto <<< "$item" |
- | # wget でチェックしています。不都合あれば適宜変更して下さい | + | # wget でチェックし、200 以外はエラーとしています |
| result=`wget --spider -nv --timeout 30 -t 5 $url 2>&1` | | result=`wget --spider -nv --timeout 30 -t 5 $url 2>&1` |
- | # 200 以外はエラーとしています。不都合あれば適宜変更して下さい | |
| ok=`echo "$result" | grep -c '200 OK'` | | ok=`echo "$result" | grep -c '200 OK'` |
| if [ $ok -eq 0 ]; then | | if [ $ok -eq 0 ]; then |