メニューを閉じる

テクノデジタルグループ

メニューを開く

2017.09.21

インフラ

さくらのクラウド日次のアーカイブで削除に失敗したときにメール通知させる

さくらインターネットのロゴ

JTです。

【前提】

さくらのクラウドにて

SCHotBackup
を利用してアーカイブを取得しているとき、アーカイブのタイムアウト→前々日の削除処理ができないでアーカイブが蓄積されてしまい、請求が……というようなことがあり、ログをチェックして処理の衝突ログ(Conflict)があったらメールするようにしています。
※上記アーカイブツールについては
さくらクラウドの日次バックアップはSCHotBackupで
を参照ください。

 

【チェック対象となるアーカイブのログについて】

上記アーカイブスクリプトをcronで実行する際、以下の様にしてログを出力しています
ex.crontabで以下の様な設定

05 01 * * * /bin/bash -l /home/hoge/bin/daily_archive.sh > /home/hoge/log/sakura_auto_archive_`date +\%Y\%m\%d`.log

 

失敗したときのログ

20xx-xx-xx 01:05:02 [18516]: ===== START =====
20xx-xx-xx 01:05:02 [18516]: get_disk_list()
20xx-xx-xx 01:05:04 [18516]: ----- START: xxxxxxxxxxxx (hogehoge.jp) -----
20xx-xx-xx 01:05:04 [18516]: archive:xxxx.archive.json
20xx-xx-xx 01:05:04 [18516]: create_archive()
20xx-xx-xx 01:05:06 [18516]: ARCHIVE_ID: xxxxxxxxxxxx
20xx-xx-xx 01:05:37 [18516]: waiting... (0/512000MB)
(中略)
20xx-xx-xx 05:05:30 [18516]: waiting... (326208/512000MB)
20xx-xx-xx 05:05:30 [18516]: [ERROR] Timed out!: xxxxxxxxxxxx
20xx-xx-xx 05:05:30 [18516]: [ERROR] Failed to create archive.
20xx-xx-xx 05:05:30 [18516]: delete_archive()
20xx-xx-xx 05:05:30 [18516]: {"is_fatal":true,"serial":"xxxxxxxxxx","status":"409 Conflict","error_code":"disk_is_copying","error_msg":"(省略)"}

 

【ログチェック&メール通知スクリプト】

#!/bin/sh

# メール送信設定
_to="fuga@hogehoge.jp"
_from="sakurabackup@hogehoge.jp"

# メール件名設定
_hostname=`hostname`
_application="SAKURA Cloud Daily BackUP"
_subject="Fatal error!!"
_title="[${_application}][${_hostname}]${_subject}"

# エラー条件
_error_conditions="Conflict"

for file in `find /home/hoge/log/* -type f -mtime -1`; do
        err_line=`cat $file | grep -a ${_error_conditions}`
        if [[ ${err_line} = *${_error_conditions}* ]]; then
                /usr/sbin/sendmail -t <<- EOS
                MIME-Version: 1.0
                Content-Type: text/plain; charset=iso-2022-jp
                From: ${_from}
                To: ${_to}
                Subject: ${_title}
                SAKURA Cloud Backup Failed
                ----------
                log_file:
                ${file}

                error_message:
                ${err_line}
                ----------
                Please check with a administrator for details.
EOS
        fi
done

 

上記を

00 12 * * * /bin/bash -l /home/hoge/bin/sakurabkup-notice.sh 2>&1

 

のようにして実行してヒットがあれば見に行く。
連続するようならアーカイブスクリプトのタイムアウト時間(MAX_SLEEP_SECS=)を延ばすなどの対応をしています。

以上、何かの参考になれば。。。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事