MuninでMySQLのデータを取得します。
今回取得するデータは下記のとおり。
<Munin標準>
・MySQL queries
・MySQL slow queries
・MySQL threads
・MySQL throughput

<Munin Exchange>
・MySQL Connections
・MySQL Queries Cache Size
・MySQL Queries in cache

Munin側でPluginを有効にします。

# ln -s /usr/local/munin/lib/plugins/mysql_queries /etc/munin/plugins/mysql_queries
# ln -s /usr/local/munin/lib/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
# ln -s /usr/local/munin/lib/plugins/mysql_threads /etc/munin/plugins/mysql_threads
# ln -s /usr/local/munin/lib/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
# ln -s /usr/local/munin/lib/plugins/mysql_connections /etc/munin/plugins/mysql_connections
# ln -s /usr/local/munin/lib/plugins/mysql_qcache /etc/munin/plugins/mysql_qcache
# ln -s /usr/local/munin/lib/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem

mysqladminのパスとMySQLのアカウント情報を設定します。
/etc/munin/plugin-conf.d/plugins.conf

[mysql*]
env.mysqladmin /usr/local/mysql/bin/mysqladmin
env.mysqlopts -uroot -p********

情報を取得できるか確認します。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_queries
delete.value 7
insert.value 12
replace.value 0
select.value 514
update.value 70
cache_hits.value 372

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_slowqueries
queries.value 0

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_threads
threads.value 1

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_bytes
recv.value 239436
sent.value 4754197

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_connections
current.value 1
available.value 150

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache
queries.value 282

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache_mem
free.value 32690144
used.value 864288

【エラー情報1】
munin-runの実行時に下記のエラーが出た場合はmysqladminのパスが設定されているか確認する。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache_mem
Coult not execute 'mysqladmin  extended-status': Permission denied at /etc/munin/plugins/mysql_qcache_mem line 64.

【エラー情報2】
munin-runの実行時に下記のエラーが出た場合はMySQLのアカウント情報が設定されているか確認する

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins mysql_qcache_mem
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

Muninでlighttpdのデータを取得するのは簡単。
Munin標準のApache関連のPluginを使うことができる。

lighttpdの設定変更。
/etc/lighttpd/modules.conf

##
## mod_status
##
include "conf.d/status.conf"

/etc/lighttpd/conf.d/status.conf

server.modules += ( "mod_status" )
$HTTP["remoteip"] == "127.0.0.0/8" {
  status.status-url          = "/server-status"
  status.config-url          = "/server-config"
  status.statistics-url      = "/server-statistics"
  status.enable-sort         = "enable"
}

lighttpdを再起動すると有効になる。
次のようにデータを取得できていればOK。

# telnet localhost 80
GET /server-status HTTP/1.0

HTTP/1.0 200 OK
Content-Type: text/html
Content-Length: 4956
Connection: close
Date: Thu, 16 Dec 2010 10:41:06 GMT
Server: lighttpd

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>Status</title>

(省略)

Munin側はPluginを有効にするだけ。

# ln -s /usr/local/munin/lib/plugins/apache_accesses /etc/munin/plugins/apache_acceses
# ln -s /usr/local/munin/lib/plugins/apache_processes /etc/munin/plugins/apache_processes
# ln -s /usr/local/munin/lib/plugins/apache_volume /etc/munin/plugins/apache_volume

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_accesses
accesses80.value 5

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_processes
busy80.value 1
idle80.value 127
free80.value 0

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_volume
volume80.value 65536

【エラー情報1】
munin実行時に下記のエラーが出た場合はLWP::UserAgentがないのでperl-LWP-UserAgent-Determined(dag)をインストールする。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins apache_accesses
LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86.

Muninに標準で付属しているloadプラグインは1分平均のデータしか取得できないがMunin Exchengeに登録されているload_extendedプラグインを使えば1分、5分、15分平均のデータが取得できる。

# cd /usr/local/munin/lib/plugins
# wget -O load_extended http://exchange.munin-monitoring.org/plugins/load_extended/version/1/download
# cdmod 755 load_extended
# ln -s /usr/local/munin/lib/plugins/load_extended /etc/munin/plugins/load_extended

プラグインの動作確認。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins load_extended
load1.value 0.04
load5.value 0.05
load15.value 0.00

Muninを再起動してプラグインを有効にする。

# /sbin/service munin restart
# /sbin/service munin restart
Stopping Munin Node agents:                                [  OK  ]
Starting Munin Node:                                       [  OK  ]

サーバの性能を監視するためにmuninを導入する。
様々なデータをグラフ化することができ、しきい値を超えるとアラーとメールを送信するなどが可能。
ServersMan@VPSがどの程度の性能で動いているのか、他のVPSによって性能劣化が生じないのかを見れるかも。

まずはrrdtool-1.4.xを導入する。
下記のパッケージが必要になる。
・cairo
・cairo-devel
・libxml2
・libxml2-devel
・pango
・pango-devel

依存関係のあるパッケージがたくさんあるが気にせずインストールする。

# yum install cairo cairo-devel libxml2 libxml2-devel pango pango-devel

rrdtoolをインストールする。

$ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.4.tar.gz
$ tar xvzf rrdtool-1.4.4.tar.gz
$ cd rrdtool-1.4.4
$ ./configure --prefix=/usr/local/rrdtool --enable-perl-site-install
$ make
# paco -D make install

muninに必要なPerlモジュールをインストールしていく。
・perl-Net-SSLeay (base)
・perl-URI(base)
・perl-MD5 (dag)
・perl-HTML-Template (dag)
・perl-Params-Validate (dag)
・perl-TimeDate (dag)
・perl-Log-Log4perl (dag)
・Time::HiRes (cpan)
・Getopt::Long (cpan)
・Storable (cpan)
・Text::Balanced (cpan)

munin用のユーザを作成する。

# /usr/sbin/groupadd -g 200 munin
# /usr/sbin/useradd -u 200 -g 200 -s /sbin/nologin munin

muninをダウンロードしてインストールする。

$ wget munin
$ tar xvzf xvzf munin-2.0-alpha1.tar.gz
$ cd munin-2.0-alpha1

makeファイルを編集する。
Makefile.config

PREFIX     = $(DESTDIR)/usr/local/munin
CONFDIR    = $(DESTDIR)/etc/munin
HTMLDIR    = /var/www/kaju.jp/htdocs/munin
CGIDIR     = /var/www/kaju.jp/cgi-bin/munin
DBDIR      = $(DESTDIR)/var/lib/munin
LOGDIR     = $(DESTDIR)/var/log/munin

いよいよmuninのインストール。

・Manager
# paco -D make install

・Agent
# paco -D make install-common-prime install-node-prime install-plugins-prime

Managerの設定。
各AgentのIPアドレスを登録していく。
/etc/munin/munin.conf

# a simple host tree
[kaju.jp]
    address 127.0.0.1
    use_node_name yes

Managerは各Agentに接続し情報を収集する。
Manager自体はcronで起動される。
/etc/crontab

*/5 * * * *     munin test -x /usr/local/munin/bin/munin-cron && /usr/local/munin/bin/munin-cron

ログにエラーが出ていないことを確認しておく。

Nov  7 05:00:01 bruna crond[28611]: (munin) CMD (test -x /usr/local/munin/bin/munin-cron && /usr/local/munin/bin/munin-cron)

引き続きAgentの設定をする。
ManagerとAgentが同一サーバなのでAgentはlocalhostとのみでLISTENするようにしておく。
/etc/munin/munin-node.conf

# Set this if the client doesn't report the correct hostname when
# telnetting to localhost, port 4949
#
host_name kaju.jp

# Which address to bind to;
#host *
host 127.0.0.1

Agentの起動スクリプトをテンプレートからコピーする。

# cp dists/redhat/munin-node.rc /etc/rc.d/init.d/munin
# /sbin/chkconfig --add munin
# /sbin/chkconfig --list munin
munin           0:off   1:off   2:on    3:on    4:on    5:on    6:off

# /sbin/service munin start
Starting Munin Node:                                       [  OK  ]

起動確認。

# ps aux |grep munin
root     11713  0.0  1.1   9144  5948 ?        Ss   18:10   0:00 /usr/local/munin/sbin/munin-node

# netstat -an |less
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 127.0.0.1:4949              0.0.0.0:*                   LISTEN

# cat /var/log/munin/munin-node.log
Process Backgrounded
2010/09/15-18:10:54 Munin::Node::Server (type Net::Server::Fork) starting! pid(11713)
Using default listen value of 128
Binding to TCP port 4949 on host 127.0.0.1
Setting gid to "0 0"

muninで監視したいプラグインを有効にする。

・自動
# /usr/local/munin/sbin/munin-node-configure --shell --families=auto,contrib |sh -x

・手動
# ln -s /usr/local/munin/lib/plugins/cpu /etc/munin/plugins/cpu

プラグインの動作確認。

# /usr/local/munin/sbin/munin-run --servicedir /etc/munin/plugins cpu
user.value 53160
nice.value 0
system.value 8722
idle.value 76199051
iowait.value 3178
irq.value 0
softirq.value 0
steal.value 0

これでmuninが動作しサーバのデータ収集を開始する。
念のため各種ログでエラーが出ていないことを確認しておく。

# cat /var/log/munin/munin-update.log
2010/09/15 18:55:01 Opened log file
2010/09/15 18:55:01 [INFO]: Starting munin-update
2010/09/15 18:55:11 [INFO] Reaping Munin::Master::UpdateWorker<jp;kaju.jp>.  Exit value/signal: 18/0
2010/09/15 18:55:11 [INFO]: Munin-update finished (10.13 sec)

# cat /var/log/munin/munin-html.log
2010/09/16 10:00:07 Opened log file
2010/09/16 10:00:07 [INFO] Starting munin-html, getting lock /var/run/munin/munin-html.lock
2010/09/16 10:00:07 [INFO] Process 44313 is dead, stealing lock, removing file
2010/09/16 10:00:07 [INFO] Releasing lock file /var/run/munin/munin-html.lock
2010/09/16 10:00:07 [INFO] munin-html finished (0.40 sec)

# cat /var/log/munin/munin-graph.log
2010/09/16 10:00:00 Opened log file
2010/09/16 10:00:00 Starting munin-graph
2010/09/16 10:00:00 Munin-graph finished (0.08 sec)
2010/09/16 10:00:04 Graphed service : if_err_venet0 (3.58 sec for 4 graphs)

# cat /var/log/munin/munin-limits.log
2010/09/15 18:55:12 Opened log file
2010/09/15 18:55:12 [INFO] Starting munin-limits, getting lock /var/run/munin/munin-limits.lock
2010/09/15 18:55:12 [INFO] munin-limits finished (0.00 sec)

あとはブラウザで出力先に指定したディレクトリにアクセスすればOK。

【エラー情報1】
Agent起動時に下記のエラーが出た場合はmunin-node.confのhost_nameを設定する。

# tail /var/log/munin/munin-node.log
Use of uninitialized value in scalar assignment at /usr/lib/perl5/site_perl/5.8.8/Munin/Node/Service.pm line 74.

【エラー情報2】
munin-cron起動時に下記のエラーが出た場合はURI.pmがないのでperl-URIをインストールする。

Can't locate URI.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Node.pm line 63.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Node.pm line 63.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 17.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
Compilation failed in require at /usr/local/munin/lib/munin-update line 13.
BEGIN failed--compilation aborted at /usr/local/munin/lib/munin-update line 13.

【エラー情報3】
munin-cron起動時に下記のエラーが出た場合はRRDs.pmがないのでRRDToolのconfigureオプションに–enable-perl-site-installを付ける。

Can't locate RRDs.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Utils.pm line 22.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Utils.pm line 22.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 18.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/UpdateWorker.pm line 18.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Munin/Master/Update.pm line 17.
Compilation failed in require at /usr/local/munin/lib/munin-update line 13.
BEGIN failed--compilation aborted at /usr/local/munin/lib/munin-update line 13.

© 2003-2014 うーたんの小部屋 | Powered by Wordpress