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

推薦する

MySQL 5.0.96 for Windows x86 32 ビット グリーン簡易版インストール チュートリアル

MySQL 5.0 は、いくつかの「高度な機能」があるため定番となっています。これは、Windows...

Nginx イントラネット スタンドアロン リバース プロキシの実装

目次1 Nginxのインストール2 Nginxの設定3 ホストファイルを変更する4 テストNginx...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

JavaScript は単一のリンクリストプロセス分析を実装します

序文:複数の要素を格納するために、配列は最も一般的に使用されるデータ構造ですが、配列には多くの欠点も...

Centos7.5 は mysql5.7.24 バイナリ パッケージの展開をインストールします

1. 環境整備:オペレーティング システム: CentOS Linux リリース 7.5.1804 ...

高同時実行シナリオにおける nginx 最適化の詳細な説明

日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...

Navicat Premiumを使用してMySQLデータベースにリモート接続する方法

新しい接続を作成する側がクライアントに相当し、接続される側がサーバーに相当します。手順は次のとおりで...

MySQL開発標準と使用スキルの概要

1. 命名規則1. データベース名、テーブル名、フィールド名には小文字を使用し、アンダースコアで区切...

Centos7 に Nginx 統合 Lua サンプル コードをインストール

序文私が使用しているパソコンはMacで、OSはmacOS Mojaveです。コンピュータに仮想マシン...

Web ページ制作におけるテーブル属性 CellPad、CellSpace、Border の説明と使用

cellspacing は表内のセル間の距離です。セルパディングは、表のセル内の空白スペースです。一...

mysql の認証、起動、およびサービスの起動のための一般的なコマンド

1. 4つの起動方法: 1.mysqld MySQL サーバーを起動します: ./mysqld --...

Vue は Echarts をインポートして折れ線グラフを実現します

この記事では、VueでEchartsをインポートして線散布図を実現する具体的なコードを参考までに共有...

HTML の表の行と列を結合する問題の解決策の詳細な説明

私たちが構築しようとしていたウェブサイトには、長い文章だけでなく、多数の表も含まれており、表のレイア...

ホストがアクセスできるようにMySQLの権限を変更する方法

mysqlのリモートアクセス権を有効にするデフォルトでは、MySQL ユーザーにはリモート アクセス...

Vueはページキャッシュ機能を実装する

この記事の例では、ページキャッシュ機能を実装するためのVueの具体的なコードを参考までに共有していま...