どうも、俺@仕事中、2度目の投稿です。
決して暇な訳ではありませんよ。
mmeasureのインストールについて覚書き。
インストールは至って簡単シンプルです。
まずは
mmeasure projectからソースをダウンロード。2009年9月9日時点でのバージョンは1.0.7でした。
次に解凍
# tar zxvf mmeasure-1.0.7.tar.gz
出てきたディレクトリを/usr/local下(デフォルト)へ移動
# mv mmeasure/ /usr/local
# cd /usr/local/mmeasure
perlのモジュールをインストールします。
cpanについては
オデの日記@cpanモジュールを見てね。
# cpan install Socket
# cpan install DBI // ←MySQLを起動させてないとダメっぽい
# cpan install Jcode
# cpan install DBD::mysql // ←ココでずっこける
RRDsモジュールはrrdtoolをインストールすればOKの模様。
# wget 'http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.49.tar.gz'
# tar zxvf rrdtool-1.0.49.tar.gz
# rrdtool-1.0.49
# ./configure
# make
# make install // ←ついでにrrdtoolインスト
# cd /usr/local/src/rrdtool-1.0.x/perl-shared
# perl Makefile.PL
# make && make install
で、DBD::mysqlですが、何をどう頑張ってもインストールできませんでした。
同じくインストールできなかったけど、頑張ればインストできた人がいれば解決方法を教えて下さい。
とりえずyumで
# yum install perl-DBD-MySQL
で何とかインスト。
設定ファイルを修正
# cp mmeasure_template.conf mmeasure.conf
# vim mmeasure.conf
で、この設定ファイルを色々変更します。デフォルトの設定ファイルには間違いもあるので必ず修正します。
#------------------
# MySQL
#------------------
MYSQL_HOST=[MySQLのIP]
MYSQL_USER=mmeasure # あとでmmeasureユーザを追加します。
MYSQL_PASSWORD=password # 接続パスワード
MYSQL_PORT=3306
MYSQL_SOCKET=/tmp/mysql.sock
MYSQL_SLOW_QUERY_LOG="/usr/local/mysql/var/mysql-slow" # スローログのPATH。ない場合はコメントアウトで
#------------------
# Mail
#------------------
MAIL_HOST=foo.com # 自サーバホスト名
MAIL_FROM=info@foo.com # 実在するアカウントで!
MAIL_TO=bar@tohost.com
#MAIL_CC= # いらん!
#MAIL_BCC= # いらん!
MAIL_SUBJECT="alert" # メールの件名を適当に。
#------------------
# Pathes
#------------------
PATH_RRDTOOL="/usr/local/rrdtool-1.0.49/bin/rrdtool" # パスが違う場合は修正
#------------------
# Web setting
#------------------
WEBDIR="$PATH_MEASURE/web/images/graphs" # /imagesを追加!
WIDTH_SMALL="200" # 追加!
HEIGHT_SMALL="100" # 追加!
WIDHT_LARGE="400" # 追加!
HEIGHT_LARGE="100" # 追加!
次にMySQLサーバにmmeasureユーザの追加です。僕の環境ではローカル接続の別サーバにMySQLがあったので
# mysql -h 192.168.0.2 -u mysql
mysql> GRANT ALL ON *.* to mmeasure@192.168.0.1 indentified by 'password';
mysql> SET password FOR mmeasure@192.168.0.1 = old_password('password'); // ←MySQL4.1以前の互換
mysql> FLUSH PRIVILEGES;
でOK。一応接続テストもしておく。
# mysql -h 192.168.0.2 -u mmeasure -p
Enter password: パスワード入力
次に、MySQLのデータを取るために./mmeasure/daemon/data-mysql/read-data.plを修正します。ココはだいぶハマったのですが、クエリ回数、クエリ比率などを表示するために変更するべきです。
# vim ./mmeasure/daemon/data-mysql/read-data.pl
50 my %status = select_2column( $db, "show global status" ); # globalを追加
あと、僕の場合ですが、mmeasure.errでアラートメール送信時のエラーが出まくっていたのでメール送信処理部分をコメントアウトしました。アラートはNAGIOSとかで監視してるので、、、。
# vim ./mmeasure/daemon/daemon-mmeasure.pl
224 # alerter_sendmail( $conf{ 'MAIL_HOST' },
225 # $conf{ 'MAIL_TO' }, $conf{ 'MAIL_FROM' },
226 # $conf{ 'MAIL_SUBJECT' }, $alert_message,
227 # $conf{ 'MAIL_CC' }, $conf{ 'MAIL_BCC' } );
なんでエラーが出るのか謎です。時間があるときに調査します。分かる方いたら教えてください><
エラー内容
# vim ./mmeasure/daemon/log/mmeasure.err
52 RCPT command failure(Bad file descriptor)... at ../library/mailer.pl line 93.
53 print() on closed filehandle SH at ../library/mailer.pl line 127 (#1)
54 (W closed) The filehandle you're printing on got itself closed sometime
55 before now. Check your control flow.
56
57 readline() on closed filehandle SH at ../library/mailer.pl line 128 (#2)
58 (W closed) The filehandle you're reading from got itself closed sometime
59 before now. Check your control flow.
60
61 Use of uninitialized value in substitution (s///) at ../library/mailer.pl line
62 205 (#3)
63 (W uninitialized) An undefined value was used as if it were already
64 defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
65 To suppress this warning assign a defined value to your variables.
66
67 To help you figure out what was undefined, perl tells you what operation
68 you used the undefined value in. Note, however, that perl optimizes your
69 program and the operation displayed in the warning may not necessarily
70 appear literally in your program. For example, "that $foo" is
71 usually optimized into "that " . $foo, and the warning will refer to
72 the concatenation (.) operator, even though there is no . in your
73 program.
74
75 Use of uninitialized value in pattern match (m//) at ../library/mailer.pl line
76 130 (#3)
77 print() on closed filehandle SH at ../library/mailer.pl line 132 (#1)
78 DATA command failure(Bad file descriptor)... at ../library/mailer.pl line 134.
79 print() on closed filehandle SH at ../library/mailer.pl line 143 (#1)
80 readline() on closed filehandle SH at ../library/mailer.pl line 144 (#2)
81 Use of uninitialized value in pattern match (m//) at ../library/mailer.pl line
82 146 (#3)
83 print() on closed filehandle SH at ../library/mailer.pl line 148 (#1)
84 Body & header send failure(Bad file descriptor)... at ../library/mailer.pl line 150.
85 print() on closed filehandle SH at ../library/mailer.pl line 156 (#1)
次はApacheにAliasを作ります。
# vim /usr/local/apache2/conf/httpd.conf
Alias /mmeasure "/usr/local/mmeasure/web"
# /usr/local/apache2/bin/apachectl restart
ではデーモンの起動!
# ./mmeasure/daemon/mmeasure.sh start
以上~!あとはチューニングアドバイスを信じるも信じないもアナタ次第!