トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

システム関連/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が抜けてるみたいなので追記しましょう)
  • 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は勘です
  • デーモンを起動
    /usr/local/mmeasure-mysql*/daemon/mmeasure.sh start
    これで10分おきにMySQLの状態を収集してくれます。
  • WEBページ確認
    デーモン起動から10分以上待ってから
    http://WEBサーバ/mmeasure-maysql1/
    http://WEBサーバ/mmeasure-maysql2/
    それぞれにアクセスしてグラフが表示されている事を確認しましょう。