MySQLモニタリング
最終更新日: 17 年 2020 月 XNUMX 日Mysql情報を監視し、システムがスレーブであるか、InnoDBやMyISAMを実行しているかなどを検出するには、LogicMonitorコレクターがデータベースに接続できる必要があります。 したがって、最初のステップはMySQL資格情報を設定することです。
LogicMonitorは最初、ポート3306にサーバーがあるすべてのホストがMySqlを実行していると想定します。 LogicMonitorに、検出したデータベースへの接続を許可するまで、Mysqlパフォーマンスデータを収集できないため、そのホストでエラーが発生します。
LogicMonitorに追加のポートでmysqlを検出させたい場合は、スペースで区切られたリストで、MysqlデータソースのActiveDiscoveryセクションのParametersフィールドにそれらを追加するだけです。
適切な資格情報が与えられると、他のすべてのMySQLデータソースが必要に応じて自動的に適用されます。 Mysql Credentialsセクションで詳しく説明されているように、MysqlサーバーでLogicmonitorデータベースを作成していない場合、スレーブ監視は正しく機能しないことに注意してください。
MySQLのバージョンはJDBCドライバー1.4.6と互換性がある必要があることに注意してください。 さらに、MySQL 4.1より前のパスワードハッシュの方法は、LogicMonitorCollectorではサポートされなくなりました。
MySQL資格情報
Mysqlを監視するには、LogicMonitorコレクターがデータベースに正常に接続できる必要があります。 これには以下が必要です。
- Mysqlがネットワーク接続を受け入れていること。 (注:デフォルトでは、LogicMonitorはポート3306でのみ接続を試行しますが、これはデータソースで変更できます。)
- コレクターは、データベースに接続できる有効なユーザー名とパスワードを使用します。 これらはプロパティによって定義されます jdbc.mysql.user jdbc.mysql.pass.
- データベース名プロパティは、標準のMySQLモニタリングには必要ありませんが、カスタムデータベースクエリを指定する場合に必要になる可能性があります。 これは、ホストプロパティによって定義されます データベース名.
LogicMonitorコレクターがMySQLに接続できるようにする
LogicMonitorコレクターがデータベースに接続できるようにする最も簡単な方法は、mysql rootユーザーに資格情報を提供することです。その場合、通常、データベースに対してアクションを実行する必要はありません(ネットワーク接続を受け入れている限り)。 ただし、これはセキュリティのベストプラクティスではありません。
mysqlサーバーを監視するための推奨される方法は、その目的のために特定の監視ユーザーを作成し、そのユーザーの権限を制限することです。 特定のデータベースを作成し、そのデータベースにのみ監視ユーザー権限を付与する必要があります。
MySQLスレーブモニタリング
LogicMonitorでサポートされているスレーブ監視にはXNUMX種類あり、XNUMXつの異なる機能を提供します。
1.スレーブステータス
スレーブステータスは、スレーブSQLスレッドとスレーブI / Oスレッドの違いを測定します。 (つまり、スレーブがマスターから読み取ったものと、それが適用したもの。)これは、ネットワークの問題がない場合のスレーブラグの良い指標になります(スレーブがマスターから新しいデータをプルできない場合は、保持しているすべてのトランザクションを適用し、ラグがゼロであること。これは、実際のマスターで最新の状態になっていることと同じではありません。)このデータソースは、スレーブIOおよびSQLプロセスが正しく実行されていることも確認します。
2. MysqlMaster - と レプリケーションラグ–
MysqlMaster-タイムスタンプを5秒ごとにテーブルに挿入し、マスターデータベースに自動的に適用されます。 ReplicationLag-はスレーブで選択を行い、適用されたマスターからの最後のタイムスタンプとnow()の差を測定します。 これは、マスターの更新とスレーブのデータの適用の間の実時間のタイムラグを反映しています(ホストのクロックがntpまたはその他の手段で同期されていると仮定します)。上記のMysql資格情報セクションで説明したようにLogicMonitorデータベースを作成していない場合は注意してください。 、すべてのスレーブからこのデータソースのデータなしの警告が表示されます。
なぜXNUMX種類の監視があるのですか?
どちらの種類のスレーブ監視も、すべての状況で完璧というわけではありません。 MysqlSlave-ネットワークやその他の問題は考慮されていません。 MysqlReplicationLag-は行います。 ただし、MysqlReplicationLag-は、マスターがダウンするとスレーブの状態について何も通知しません。更新がないため、マスターからの最後の更新からのラグとリアルタイムが増加します。
スレーブをマスターに昇格させる前に実行するアクション
スレーブにフェイルオーバーしてマスターにする前に、スレーブが次のことを知っている必要があります。
- 古いマスターからすべてのトランザクションを取得することができました。
- それらの適用を終了しました。
これを判断するには、スレーブのLogicMonitorビューで、マスターが最後に動作していたときのMysqlReplicationLag-のグラフを確認します。 ラグが小さい場合(4秒未満である必要があります)、スレーブがマスターからのすべてのトランザクションを持っていることがわかります。 マスターが動作を停止した後のこのグラフの増加は無視できます。 次に、MysqlSlave-グラフでスレーブラグを確認します。これがゼロに達すると、スレーブはマスターから受信したすべてのトランザクションを適用し、このスレーブをマスターに昇格させることができます。 マスターがダウンする直前にMysqlReplicationLag-があった場合、スレーブに到達したことのないトランザクションがマスター上にあるため、決定する必要があります。 以前にコミットしたトランザクションを稼働時間にわたって評価しますか? もしそうなら、あなたはマスターを復活させる必要があります。 以前にコミットされたトランザクションを尊重するよりも稼働時間を重視しますか? その場合、スレーブをマスターに昇格させますが、一部のトランザクションが失われることに注意してください。