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はローカルディレクトリとデータボリュームコンテナ操作をマウントします

推薦する

VMware pro15 インストール macOS10.13 詳細インストール図(画像とテキスト)

編集者は最近、macOS システムを使い始めたかったので、VMware に macOS イメージ シ...

MySQL での実行計画の詳細分析

序文効率的なSQL文の書き方は、Explain実行計画の分析と切り離せません。実行計画とは何か、効率...

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

MySQL データベースの基本的な SQL ステートメントの概要

この記事では、例を使用して、Mysql データベースの基本的な SQL ステートメントについて説明し...

MySQL 5.6 zipパッケージのインストールチュートリアルの詳細

これまでは、拡張子が .msi のファイル、つまり、完全なインストールが使用されていました。しかし、...

OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する

導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...

MySQL 8.0.3 RCがリリースされようとしています。変更点を見てみましょう。

MySQL 8.0.3がリリースされます。新機能を見てみましょうMySQL 8.0.3 は RC ...

Nginxホットデプロイメントの実装

目次セマフォNginx ホットデプロイメント上記のブログ投稿に従ってください。ファイアウォールをオフ...

新しい ECMAscript オブジェクト機能の紹介

目次1. オブジェクトのプロパティ1.1 属性表記2. プロパティ名を計算する3.オブジェクトメソッ...

phpstudy から Linux への MySQL の移行に関するチュートリアル

プロジェクトの目的元のWindows環境でphpstudyを使用して構築されたMySQL 5.5.5...

Alibaba Cloud Server に MySQL データベースをインストールする詳細なチュートリアル

目次序文1. MySQLをアンインストールする2. MySQLをインストールする要約する序文学習中に...

MySQL データベースを最適化する 8 つの方法の詳細な説明 (必読の定番)

導入:インターネット上にはデータベースの最適化に関する情報や方法が数多くありますが、その多くは品質に...

JavaScriptのモジュール性を理解する方法

目次1. ブラウザのサポート2.エクスポートモジュールのエクスポート3. モジュールをインポートする...

MySQL 8.0.22 のインストールと設定のグラフィックチュートリアル

MySQL8.0.22のインストールと設定(超詳細)参考までに、具体的な内容は次のとおりです。みなさ...

Vueはタブナビゲーションバーを実装し、左右のスライド機能をサポートしています

この記事では主に、Vue を使用してタブ ナビゲーション バーを実装し、flex レイアウトを使用し...