システム関連/DB/MySQL/mMeasure
Last-modified: 2022-05-05 (木) 09:23:35
mMeasure†
http://mmeasure.sourceforge.jp/
MySQLモニタリングソフト MySQLの状態をグラフで表示してくれます。
動作環境†
MySQL(監視対象だから当然ですね。。) Webサーバ(グラフ表示用) PHP(表示ページ作成) Perl(RRD収集スクリプト) RRDtool(MySQLデータの収集とグラフ化) メールサーバ(チューニングアドバイスをメールで通知してくれるみたい)
セットアップ環境†
RedHat Enterprise Linux ES 2.1 (今さらって感じですが 未だに使ってます。。。) Webサーバ:apache 1.3 (最初から入ってるやつ) PHP:4.1.2 (RPMで入れました) Perl:5.8.7 (ソースからコンパイル) RRDtool:1.0 メールサーバ:Postfix mMeasure:1.0.7
インストールと設定†
http://prdownloads.sourceforge.jp/mmeasure/18557/mmeasure-1.0.7.tar.gz
- 上記ファイルを取ってきて解凍
# cd /usr/local # tar xzf mmeasure-1.0.7.tar.gz
- うちの場合は複数のMySQLを監視させたいのでコピー
# cp -pr mmeasure mmeasure-maysql1 # cp -pr mmeasure mmeasure-maysql2
- 監視用Webページの設定(httpd)
httpd.confに追記 Alias /mmeasure-maysql1/ "/usr/local/mmeasure-maysql1/web/" Alias /mmeasure-maysql2/ "/usr/local/mmeasure-maysql2/web/"
- mmeasure.confの設定
mmeasure_template.confをベースに必要な部分を書き換えましょう。
- MySQL関連の設定
MYSQL_HOST=(MySQLサーバのアドレス) MYSQL_USER=(MySQLのログインユーザ) MYSQL_PASSWORD=(MySQLのパスワード) #MYSQL_SLOW_QUERY_LOG=(スロークエリログは取ってないんでコメントアウト)
- メール関連の設定
MAIL_HOST=(メールサーバのアドレス) MAIL_FROM=(適当な送信元メールアドレス) MAIL_TO=(通知したい人(自分)のメールアドレス) #MAIL_CC=your@cc-email #MAIL_BCC=your@bcc-email MAIL_SUBJECT="mMeasureアラートメール mysql*" (タイトルにmysql1からのメールかmysql2からのメールわかるように設定しましょう。)
- 実行パスの設定
PATH_MMEASURE="/usr/local/mmeasure-mysql*"(ここをかえてあげないと複数起動できません)
- グラフ画像サイズの設定
サンプルconfには無いみたいですがこれを設定しないとグラフが作成されません。 グラフサイズはお好みで。。。 SMALLが一覧表示用 LARGEが通常表示用 WIDTH_SMALL="200" HEIGHT_SMALL="50" WIDTH_LARGE="600" HEIGHT_LARGE="150"
- グラフ用ディレクトリパスの設定
WEBDIR="$PATH_MMEASURE/web/images/graphs"(imagesが抜けてるみたいなので追記しましょう)
- MySQL関連の設定
- perlの場所指定
私の環境では必要モジュールを入れたPerlが/usr/local/bin/perlなので(標準のPerlと混在させている) /usr/local/mmeasure-maysql*/daemon/daemon-mmeasure.pl /usr/local/mmeasure-maysql*/daemon/data-mysql/read-data.pl の1行目を書き換えてあげないとモジュールがないと言って怒られました。
- データ収集デーモン起動スクリプトの修正
/usr/local/mmeasure-mysql*/daemon/mmeasure.sh の頭の方に ホームディレクトリをしている所があるので複数起動用に修正しておきましょう。 cd "/usr/local/mmeasure/daemon" ↓ cd "/usr/local/mmeasure-mysql*/daemon"
- グラフupdateログの修正
RRDtoolが毎回生成したグラフのサイズをログ出力するみたいなので ログが増えすぎない様に /usr/local/mmeasure-maysql*/daemon/update_graphs.sh の echo "----- $DIR -----" >>"$LOGNAME" 2>&1 ↓ echo "----- $DIR -----" >"$LOGNAME" 2>&1 ”>”を一つ減らして毎回追記されない様にしました。
- WEBページの修正
- InnoDBは使っていないので以下を修正
/usr/local/mmeasure-mysql*/web/index.php 私のMySQL環境ではInnoDBは使わない(skip-innodb)設定してあるので以下の行はコメントアウト // $query = "show innodb status"; // $result = mysql_query( $query ) or die( "Query failed : " . mysql_error() ); // $var = mysql_fetch_array( $result );
- PHPのバージョンによってfgetsのパラメータに非互換があるので以下を修正
/usr/local/mmeasure-mysql*/web/library/configuration.phplib $line_array = preg_split( "/#/", fgets( $fp ) ); ↓ $line_array = preg_split( "/#/", fgets( $fp , 8192) ); #PHPとかたいして詳しくないので8192は勘です
- InnoDBは使っていないので以下を修正
- デーモンを起動
/usr/local/mmeasure-mysql*/daemon/mmeasure.sh start これで10分おきにMySQLの状態を収集してくれます。
- WEBページ確認
デーモン起動から10分以上待ってから http://WEBサーバ/mmeasure-maysql1/ http://WEBサーバ/mmeasure-maysql2/ それぞれにアクセスしてグラフが表示されている事を確認しましょう。