web-dev-qa-db-ja.com

Muninでグラフを変更、並べ替え、追加、削除するにはどうすればよいですか?

私が本番サーバーで何が起こっているかを監視するために、最近発見した Munin です。インストールするのは簡単でしたが、グラフを追加/削除する方法を考え出すのに多くの問題を抱えています。

私は 一部のドキュメント を見つけて、それらを並べ替えることができると示唆しましたが、プラグイン構成の管理方法についての議論はほとんどありません。プラグインのドキュメントの大部分は、プラグインの作成方法について説明しています。それらを使用するのではなく。

質問はかなり基本的です。たとえば、nginx、mysql、memcacheなどで何が起こっているのかを確認できるように、プラグインの膨大なライブラリをどのように使用すればよいですか。

6
John Mee

各ノードでプラグインを有効および無効にする

グラフは、ノードの/etc/munin/plugins/ディレクトリのシンボリックリンクを介して追加および削除されます。

グラフを削除するには、シンボリックリンクを削除してノードを再起動する必要があります。

rm /etc/munin/plugins/diskstats
service munin-node restart

グラフを追加するには、プラグインディレクトリ内のシンボリックリンクを実行可能ファイルに追加する必要があります。例えば:

ln -s /usr/share/munin/plugins/diskstats /etc/munin/plugins/diskstats
service munin-node restart

Munin-nodeを再起動するとすぐに実行され、プラグインの問題は/var/log/munin/munin-node.logに表示されます。すべてが順調に進んでいる場合、サイクルごとにログに記録されたCONNECTが表示されます。これにより、マスターが接続して最新のデータを収集したことが記録されます。

Process Backgrounded
2014/03/10-15:59:47 Munin::Node::Server (type Net::Server::Fork) starting! pid(32231)
Resolved [*]:4949 to [::]:4949, IPv6
Not including resolved Host [0.0.0.0] IPv4 because it will be handled by [::] IPv6
Binding to TCP port 4949 on Host :: with IPv6
2014/03/10-16:00:04 CONNECT TCP Peer: "[::ffff:203.28.51.227]:45965" Local: "[::ffff:50.23.111.122]:4949"
2014/03/10-16:05:04 CONNECT TCP Peer: "[::ffff:203.28.51.227]:46109" Local: "[::ffff:50.23.111.122]:4949"
2014/03/10-16:10:04 CONNECT TCP Peer: "[::ffff:203.28.51.227]:46109" Local: "[::ffff:50.23.111.122]:4949"

ノードでのプラグインの構成

必要なモジュールをインストールする

しかし、物事がうまくいかない可能性があります。プラグインの実行時のエラーもここに記録され、プラグインを機能させるための重要な手がかりになります。ここでは、nginx_requestプラグインに問題があることがわかります...

2014/03/10-11:25:05 CONNECT TCP Peer: "[::ffff:203.28.51.227]:38474" Local: "[::ffff:50.23.111.122]:4949"
2014/03/10-11:25:19 [22482] Error output from nginx_request:
2014/03/10-11:25:19 [22482]     Use of uninitialized value $LWP::VERSION in sprintf at /etc/munin/plugins/nginx_request line 109.
2014/03/10-11:25:19 [22482]     Can't locate object method "new" via package "LWP::UserAgent" at /etc/munin/plugins/nginx_request line 109.
2014/03/10-11:25:19 [22482] Service 'nginx_request' exited with status 2/0.

プラグインは実行可能なプログラムです-ほとんどはPerlで書かれています。 /usr/share/munin/plugins/(Ubuntu)には大きなコレクションがインストールされています。ほとんどがユーザーの貢献によるものであり、品質に大きなばらつきがあるようですが、必要なデータをシステムに問い合わせて、muninが使用できる形式に整理する必要があります。

それらのほとんどは、すでにインストールされているかどうかにかかわらず、Perlライブラリ、または対象のサービスの診断プログラムに依存しています。たとえば、 varnish のプラグインにはvarnishstatが必要です。同様にmemcachedのプラグイン。

しかし、上記の問題に戻りましょう...幸いなことに、私は自分の時間に少しPerlを実行し、プラグインがPerlモジュールLWP :: Useragentを必要とすることを学んだと推測しています。エラーをスローしているプラ​​グインを開くと、要件が何であるかについての手掛かりが得られる場合があります。それらのいくつかは、コマンドラインから実行して、何が起こるか、または機能するかどうかを確認できます。

上記の例を続けると、これは上記のnginx_requestエラーを押しつぶす可能性があります。

apt-get install libwww-Perl

または、そうでない場合があります...

データソースを有効にする

例として、nginxの場合、プラグインのsrcを覗くと、http://localhost/nginx-statusからデータを収集していることがわかるので、有効にする必要があります。または、前述のようにvarnishstatは例です。

または、そのままにしておくのが正しいかもしれません。

環境変数を提供する

さらに、プラグインにいくつかの環境/構成変数をフィードする必要がある場合があります。これは、/etc/munin/plugin-conf.d/munin-nodeを編集し、必要なものを追加することによって行われます。例えば:

[mysql_innodb]
env.warning 0
env.critical 0

また、ディレクトリ内のすべてのファイルを処理するため、この種類のコンテンツを含む新しいファイルを作成することによってもこれを行うことができます。しかし、私はそれを試しませんでした。

実際に環境変数を読み取るようにプラグインをテストするには、munin-runというツールがあります。 plugins dirでファイルに名前を付けるだけで使用できます

% munin-run nginx_request
request.value 10275
% 

アンダースコアのファイル名がぶら下がっているこれらのプラグインはどうですか?

/usr/share/munin/plugins/ディレクトリ内のかなり多くのプラグインにプラグインがあり、それらにシンボリックリンクしただけでは機能しません。彼らは、最後の文字としてアンダースコアを付けたものです。例:memcached_diskstat_if_。それらはぶら下がっているアンダースコアを残して、さまざまなパラメーターで再利用できるようにします。

それらを/etc/munin/plugins/からのシンボリックリンクを使用して追加しますが、(a)キーワードである可能性があるパラメーターを追加します(例:memcached_bytes)、または(b)パラメーターを参照する場合があります:if_eth0。何が期待されているかを知る最良の方法は、プラグインの内容を読むことです。よりよく構築されたプラグインのいくつかはあなたを助けるかもしれません。例:/usr/share/munin/plugins/mysql_ suggestは、適切なサフィックスのリストを出力します。

lrwxrwxrwx 1 root root 36 Mar 10 11:45 mysql_bytes -> /usr/share/munin/plugins/mysql_bytes
lrwxrwxrwx 1 root root 31 Mar 10 11:47 mysql_commands -> /usr/share/munin/plugins/mysql_
lrwxrwxrwx 1 root root 31 Mar 10 11:45 mysql_connections -> /usr/share/munin/plugins/mysql_
lrwxrwxrwx 1 root root 31 Mar 10 11:46 mysql_qcache -> /usr/share/munin/plugins/mysql_

リモートアクセスを構成する

マスターはノードのデータをポーリングするため、リモートマスターを使用している場合は、ノードの/etc/munin/munin-node.confを介してアクセスを許可することを忘れないでください。

マスターを構成する

同じホストでマスターとノードを実行できます。または、マスターを別の場所に配置することもできます。数分ごとにグラフを生成するのはかなりの手間なので、忙しい運用サーバーを監視している場合に推奨されます。

標準のドキュメントを使用してノードを/etc/munin/munin.confに追加すると、問題は発生しません。

ポーリングがどのように行われるかを確認するには、/var/log/munin/munin-update.logに注目してください。新しいプラグインからのデータが最初に表示されるとき、新しいrrdデータベースの構築を記録する一連のログエントリを取得する必要があります。

2014/03/10 12:45:15 [INFO] creating rrd-file for mysql_innodb->free: '/var/lib/munin/caradvice.com.au/syd.caradvice.com.au-mysql_innodb-free-g.rrd'

ここには、受信データに関連する警告やエラーを見つける場所もあります。

最後の1つの問題は、デフォルトでは、ノードデータの収集は2分ごとにのみ行われ、リモートポーリングは5分ごとにのみ行われることです。さらに、データをグラフに変換するのに60秒かかる場合があり、最終的に最初のエントリは、表示されない単一のデータポイントである可能性があります。したがって、サイクルタイムをいじらない限り、プラグインを正しく設定してからデータがグラフに表示されるまでに15分かかることがあります。

私はスチームの外にいます。これが他の誰かの助けにならない場合は、少なくとも私が何をしたかを思い出すのに少なくとも役立ちます。

最終結果は素晴らしいinfopornです...

enter image description here

19
John Mee

いくつかのグラフを削除して他のグラフを追加できますか?それはすべて修正されましたか?

munin-node構成からプラグインを削除すると、そのプラグインのグラフが削除されます。

プラグインを追加して、nginx、mysql、memcacheなど、何が起こっているかを表示するにはどうすればよいですか。

これらの製品のmuninプラグインをmunin-nodeにインストールします。

2
EEAA