MySQL マスター/スレーブ ステータスを監視するシェル スクリプト

MySQL マスター/スレーブ ステータスを監視するシェル スクリプト

Linuxでシェルスクリプトを共有して、MySQLのマスタースレーブ状態を監視し、エンタープライズWeChatロボットと連携してアラームを鳴らす

  • SLAVE_IP: 監視対象ホストのIPアドレス
  • ユーザー: msyql ユーザー
  • パスワード: mysql パスワード
  • WHEREIS_MYSQL: mysql コマンド パス
  • WEBHOOK: WeChat Enterprise ロボットの Webhook アドレス
  • wx(): WeChat for Enterprise ロボット関数
  • Check_Mysql_Slave(): 監視スクリプトのメイン関数
#!/bin/bash
#
ソース /etc/profile
PATH をエクスポートします。"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

SLAVE_IP=`ip add | grep inet | grep brd | awk -F / '{print $1}' | awk -F " " '{print $2}' | awk 'NR==1'`
USER=モニター
パスワード=xxxxxx
TIME=`日付`
WHEREIS_MYSQL = /opt/mysql/bin/mysql
WEBHOOK='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bb09197b-5ff6-4928-9872-xxxxxx'

wx(){
cat > $0.msg << EOF
curl '$WEBHOOK' \
 -H 'コンテンツタイプ: application/json' \
 -d '
 {
  "メッセージタイプ": "テキスト",
  "文章": {
   "コンテンツ": "$1",
  }
 }'
終了
sh $0.msg && rm -rf $0.msg
}


チェック_Mysql_スレーブ()
{
 $WHEREIS_MYSQL -u$USER -p$PASSWORD -h$SLAVE_IP -e "select version();" >/dev/null 2>&1
 [ $? -ne 0 ]の場合;
  echo "Mysql は $DATE に停止されました" >> /data/mysql/check.log
    ERROR="エラー:Mysql-$SLAVE_IP は接続できません\n$TIME"
  wx "$エラー"
 それ以外
  #echo "1" >> /data/mysql/check.log
    IO_SQL_STATUS=`$WHEREIS_MYSQL -u$USER -p$PASSWORD -h$SLAVE_IP -e "スレーブステータスを表示 \G" 2>/dev/null | awk '/Slave_.*_Running:/{print $1$2}'`
    $IO_SQL_STATUS の i に対して、
      スレッドステータス名=${i%:*}
      スレッドステータス=${i#*:}
      [ "$THREAD_STATUS" != "Yes" ] の場合;
        STATUS="エラー:Mysql-$SLAVE_IP $THREAD_STATUS_NAME のステータスは $THREAD_STATUS です!\n$TIME"
    echo "$STATUS" >> /data/mysql/check.log
        wx "$ステータス"
      フィ
    終わり
  フィ
}

チェック_Mysql_スレーブ

最終的なアラーム効果は次のとおりです。

上記は、MySQL のマスタースレーブ状態を監視するためのシェルスクリプトの詳細です。MySQL のマスタースレーブ状態監視の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • シェル スクリプトを使用してワンクリックで MySQL 5.7.29 をインストールする方法
  • MySQLの一般的なバックアップコマンドとシェルバックアップスクリプトの共有
  • MySQL データベースのデータを定期的にバックアップし、指定した期間保持するシェル スクリプト
  • シェル スクリプトは、仮想マシンの基本構成の作成を自動化します: tomcat--mysql--jdk--maven
  • MySQL のスケジュールされたバックアップ、削除、および回復機能を実装するシェル スクリプト
  • 各Mysqlテーブルの行数を正確にカウントする小さなシェルスクリプト
  • シェルスクリプトを使用して、サーバー上にMySQLデータベースアカウントを一括作成します。
  • シェルスクリプトを使用してMySQLにインデックスを追加する方法
  • このようなシェル スクリプトを使用して、多数の MySQL データベースを強制終了します (推奨)
  • シェル スクリプトを使用して複数の MySQL データベースを毎日自動的にバックアップする方法
  • MySQL Shellの紹介とインストール

<<:  初心者がHTMLタグを学ぶ(1)

>>:  Dockerはローカルディレクトリとデータボリュームコンテナ操作をマウントします

推薦する

Tencent Cloud Serverをゼロから導入する方法

初めての投稿ですので、間違いや問題点などありましたら、コメント欄で指摘していただければ、今後改善させ...

XHTML チュートリアル: Transitional と Strict の違い

実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTY...

Dockerの高可用性構成の詳細な説明

Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...

JavaScriptのアロー関数の特徴と通常の関数との違い

目次1. 矢印関数の使用1. 通常関数から矢印関数へ2. 中括弧を省略してリターンする3. 括弧を省...

CSSテキストシャドウの徐々にぼやける効果の実装

テキストシャドウテキストに影を追加します。テキストとテキスト装飾に複数のシャドウを追加することができ...

html-webpack-plugin' を使用してメモリ内に HTML ページ プラグインを生成します。

webpackjs ファイルをパッケージ化するときに、次に示すように、index.html インタ...

MySQL ディープ ページング (数千万のデータを素早くページ分割する方法)

目次序文場合最適化まとめ序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク ...

MySQL マルチマスターと 1 スレーブのデータバックアップ方法のチュートリアル

概要いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデ...

MySQL 演算子の具体的な使用法 (and、or、in、not)

目次1. はじめに2. 本文2.1 および演算子2.2 または演算子2.3 オペレーター2.4 no...

ロンボク実装 JSR-269

序文導入Lombok は、Google Guava と同様に便利なツールであり、強くお勧めします。す...

Docker ベースの Etcd 分散デプロイメントの方法と手順

1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...

CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

Drop-shadow と box-shadow はどちらも影効果(ハロー効果)のための CSS プ...

派手なカルーセル効果を実現するJavaScript

この記事では、JavaScriptで派手なカルーセル効果を実装する2つの方法を紹介します。具体的な内...

データベース接続のURLの詳細な説明と概要

データベース接続のURLの詳細な説明と概要JDBC URL = プロトコル名 + サブプロトコル名 ...