oinume journal

Scratchpad of what I learned

Munin 2.0のmysqlプラグインで"Couldn't instantiate IPC::ShareLite: Permission denied"とエラーになったらSELinuxをdisabledにしよう

タイトル通りなのだけど、ググっても全く出て来なかったので。

 

 

 

 

  • Munin 2.0.9

 

 

が環境。/usr/share/munin/plugins/mysql_ を使ってグラフを表示させたかったのだけど、munin-nodeに対して

 

telnet localhost 4949

> fetch mysql_innodb_io

 

ってやってもエラーになっていて、/var/log/munin-node/munin-node.logには

 

Couldn't instantiate IPC::ShareLite: Permission denied at /usr/share/perl5/Cache/SharedMemoryBackend.pm line 85.

 

っていうエラーが出てた。他のグラフはちゃんとデータが取れて描画されるのになんでなんで?って1時間近くはまった。Cache::SharedMemoryBackendでは特にファイルをopenしているわけではなかったので、もしかしたらと思ってSELinuxの設定(/etc/selinux/config)を見てみたら見事にenforcingだった...

 

というわけでenforcing→disabledに変えてうまくいきましたとさ。それにしてもMunin 2.0系のmysqlプラグインはグラフの種類が充実してるなぁ。InnoDB Buffer PoolやInnoDB IO(↓)の情報まで取れるんですね。

mysql_innodb_io

 

※あまりにもプラグインがいっぱいあって /usr/share/munin/plugins/mysql_ から /etc/munin/plugins/ にシンボリックリンク張るのが大変だったので、スクリプト書いた。

 

[tmkm-amazon]4774150371[/tmkm-amazon]

Muninの好きなところ

リソース監視ソフトウェアにMuninというものがありますが、個人でも仕事でも使っていて割りと好きなものの一つです。どういうところがいいかというと

 

 

  • インストールが簡単ですぐ動かせる

 

 

  • Munin自体は静的なHTMLファイルを生成するだけなので、Webサーバは何でもよい。自分の好きなWebサーバを使えばよい

 

 

  • リソース情報の収集は単に /etc/munin/plugins 配下のコマンドを呼び出しているだけなので、好きな言語でプラグイン(コマンド)を作れる

 

 

かなぁと。

 

ただ一方で、管理するサーバの台数が100台規模になってくるとグラフの生成に時間がかかる(ものによっては10分以上)という問題があるので、最近は代替できるソフトウェアを模索中です。

Muninでサーバのリソース監視

サーバのリソース監視&グラフ化を行なうソフトウェアは色々ありますが、今日は導入が簡単と言われているMuninを紹介したいと思います。

 

個人的に感じているMuninの良い点としては

 

 

 

  • インストール&初期設定が簡単

 

 

  • デフォルトで監視できる対象が多い

 

 

  • プラグイン機構があり、任意のリソースのグラフ化が可能

 

 

 

が挙げられます。仕事で使うのは Cacti とかがいいと思いますが、個人利用としては Munin はとてもお手軽でおすすめです。

 

インストール

Ubuntu Linuxだとdebパッケージがあるのでaptitudeでインストールするだけです(Fedore CoreやCentOSにもRPMがあります)。

 

$ sudo aptitude install munin

 

 

インストールしたら、munin-nodeというプログラムが起動しているかどうかを調べます。

 

$ ps auxww |grep munin-node

 

 

もし起動していない場合は下記の要領で起動しておきましょう。

 

$ sudo /etc/init.d/munin-node start

 

 

設定

Muninは munin-node というサーバに常駐してリソースの情報を集めるエージェントと、そのエージェントから情報を集約してリソースの状況をグラフ化する munin 本体の2つがあります。今回は1台のサーバを監視するので特に意識する必要はありませんが、サーバが複数台になった場合は、munin-node を監視したいサーバにインストールする必要があります。

 

なお、Munin自体はデフォルトのままでも使用できますが、 Muninが /var/www/munin/ に生成したグラフのファイルをブラウザから見れるように、Apacheに以下の設定を追加します。

 

Alias /munin/ /var/www/munin/

<Directory "/var/www/munin">

Options Indexes +SymLinksIfOwnerMatch MultiViews ExecCGI

AllowOverride FileInfo AuthConfig Limit Indexes

Order allow,deny

Allow from all

 

 

 

設定したら Apache を再起動します。5分ぐらい待ってから http://yourhost/munin/ をブラウザで開くと下記のような画面が表示されるかと思います。待てないせっかちな人は下記を実行してみてください(muninのHTMLが生成されます)。

 

$ sudo -u munin munin-cron

 

 

Munin Top

 

 

監視したいリソースの追加

デフォルトでは Munin にはApacheMySQLなどの状況をグラフ化するプラグインが付属しているので、これを有効にしてみましょう。例えば Apache 関連のものは

 

$ sudo ln -s /usr/share/munin/plugins/apache_* /etc/munin/plugins/

 

のように、/etc/munin/plugins/の下にpluginのシンボリックリンクを貼るだけで監視対象とすることができます。あ、ただ munin-node の再起動が必要ですが...

 

$ sudo /etc/init.d/munin-node restart

 

 

なお、グラフが更新されるのは5分に1回なので、監視対象を追加した場合反映されるのは5分後になります。以下は apache_accesses の状況です。

 

MuninでApacheのリソース監視

 

プラグインのダウンロード

デフォルトでもかなりの数のプラグインが揃っていますが、memcachedなどのリソース監視を行うプラグインもあります。そのような野良プラグインMuninExchangeにアップされているので、使えそうなものがないかチェックしておくと良いでしょう。

 

まとめ

Muninのお手軽さが少しは伝わったでしょうか?日本語の情報はあまりありませんが、Munin自体はとてもシンプルかつ導入が簡単なので、「試しに入れてみよう」というとっかかりになれば幸いです。プラグインで任意のリソースをグラフ化することができるのも大きなメリットなので、時間があったらプラグインの書き方でも説明したいと思います。

 

[tmkm-amazon]4774145017[/tmkm-amazon]