2013年07月23日

CentOS6にmuninをインストール。ついでにApacheとMySQLも監視。

dump-munin-20130723.png
この画像の例のように、muninでサーバーを軽く監視しておきたいので、インストールしようと思う。

1. muninはepelからインストールするので、入れてなければ EPELを設定。
http://mirrors.fedoraproject.org/publiclist/EPEL/
ここから適当なミラーを選ぶと良いが、どこかのミラーから epel-release-6-8.noarch.rpm を入れる。
% su
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
...
# vi /etc/yum.repos.d/epel.repo
...
enabled=0 (デフォルトではepelを見に行かないようにしておく。この辺はお好みで。)
...

2. 次に、muninとmuninに必要なものをインストール。
# yum install --enablerepo=epel munin munin-node
...(いろいろたくさんパッケージが入る)
# service munin-node start (とりあえず起動)

3.Webからmuninを見えるように設定。
設定を直接httpd.confかVirtualHostの中に書いても良いし、conf/extra/munin.conf などに分けてincludeしてもいい。インストールしたmuninでは、/var/www/html/munin にファイルが生成されるので、Aliasを切る。必要なら認証もかける。
Alias /munin /var/www/html/munin
<Directory "/var/www/html/munin">
AuthUserFile ***passwdfile_path***
AuthName ByPassword
AuthType Basic
Require valid-user
</Directory>
こんな感じ。
/var/log/munin 以下にmuninのログがあって、munin-update.log あたりを覗くと、ちゃんと動いているかどうか分かる。5分に1回走るので、15分くらいしたら、http://****/munin にアクセスすると、グラフが見える。はずだ。

4.ついでに、Apacheも監視してみる。
まず、もし plugins にシンボリックリンクが張ってなかったら、こんな感じで張る。
ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
次に、muninがApacheからserver-statusを取れるように、Apacheを設定。httpd.confにでも、こんな感じの設定を追加。
# vi httpd.conf
...
LoadModule status_module modules/mod_status.so (もしコメントアウトされていれば有効化)
...
<Location /server-status>
AddDefaultCharset EUC-JP
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

ExtendedStatus On
Apacheを再起動したら、コマンドラインで動作をテストしてみる。
# munin-run apache_accesses
accesses80.value 0
value が U になっている時は、うまくserver-statusが取れてないと思われるので、'curl http://127.0.0.1/server-status' などと手動で実行してみて、apacheの設定が正しいか確認しよう。値が取れていれば、munin-node を再起動して、しばらくするとmuninのグラフに見えるはず。

5.さらに、MySQLも監視してみる。
もし入ってなければ perl-DBD-MySQL をインストール。
# yum install perl-DBD-MySQL

そして、plugins の下にシンボリックリンクを張る。必要なものだけ張ればいいと思うが、ここではとりあえず全部盛りとした。
ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/
ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/
ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/
(ここまでの4つと、ここから下は、オプションで必要な設定が異なるらしい)
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_commands
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_bpool
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_io
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_log
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_tnx
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_select_types
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_table_locks
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_connections
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_slow
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_network_traffic
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_qcache
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_qcache_mem
監視されるMySQL側には、muninでアクセスするアカウントを作成(既存のアカウントを使うのであれば不要)。
% mysql -h 127.0.0.1 -u root -p
...
mysql> GRANT ALL PRIVILEGES ON *.* TO 'munin'@'127.0.0.1' IDENTIFIED BY 'mypassword!!' WITH GRANT OPTION;
そして、munin-nodeがmysqlにアクセスできるように /etc/munin/plugin-conf.d/munin-node に設定を追加。
# vi /etc/munin/plugin-conf.d/munin-node
...(以下を追加)
[mysql*]
env.mysqladmin /usr/local/mysql/bin/mysqladmin (mysqladminへのパスを書く)
env.mysqlopts -u munin -pmypassword!! -h 127.0.0.1 --port=3306 (さっき設定したアカウントまたは既存のアカウント)
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysqluser munin
env.mysqlpassword mypassword!!
上2行は mysql_bytes から mysql_threads まで、下3行は mysql_ のプラグインに必要な設定のようで、両方必要のようだ。

設定したら、munin-run で動作確認。
# munin-run mysql_queries
Warning: Using a password on the command line interface can be insecure.
delete.value 373
insert.value 3025
replace.value 0
select.value 7018
update.value 177
cache_hits.value 0
# munin-run mysql_commands
Com_delete.value 373
Com_insert.value 3025
Com_insert_select.value 0
Com_load.value 0
Com_replace.value 0
Com_replace_select.value 0
Com_select.value 7018
Com_update.value 177
Com_update_multi.value 0
追補
MySQLとmuninのバージョンの組み合わせによっては、/usr/share/munin/plugins/mysql_ 系の各コマンドで、"Unknown section: INDIVIDUAL BUFFER POOL INFO at /etc/munin/plugins/mysql_**** line xxxx." のエラーが出て動作しないことがある。
これは、MySQL の SHOW ENGINE INNODB STATUS に、muninが読解不能のセクションが含まれているのが原因の模様。とりあえずの回避策として、当該のセクションをスキップするように変更。
# /usr/share/munin/plugins/mysql_
(1084行目あたり)
...
'TRANSACTIONS' => \&parse_transactions,
'BACKGROUND THREAD' => \&skip,
'INDIVIDUAL BUFFER POOL INFO' => \&skip,
);
...
これでスキップされるはずだ。

6.仕上げ
設定できたら、munin-node を再起動。ついでに、OSのブート時にmunin-nodeが起動するように設定しておく。
# service munin-node restart
# chkconfig --add munin-node
# chkconfig munin-node on
posted by usoinfo at 10:50 | Comment(1) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年07月10日

Microsoft .NET Framework 1.1 SP1 用セキュリティ更新プログラム (KB2833941) がWindowsUpdateでインストールできない

OSはWindows XP SP3。ランタイムが入っていないのが原因か? 必ずしもどもXPでも起こるわけではないようである。
手動でいく。

まずここ http://www.microsoft.com/ja-jp/download/details.aspx?id=39469 から、Windows XP、Windows Server 2003 (64 ビット)、Windows Vista、および Windows Server 2008 用 Microsoft .NET Framework 1.1 Service Pack 1 セキュリティ更新プログラム (KB2833941) をダウンロード。

実行すると、インストール途中で 'netfx.msiがないので場所を指定して' 的なことを言われる。WindowsUpdateで失敗していたのはこれのせいか。
netfx.msiを入手するため、ここ http://www.microsoft.com/ja-jp/download/details.aspx?id=26 から、Microsoft .NET Framework Version 1.1 再頒布可能パッケージ をダウンロード。
保存したフォルダでコマンドプロンプトを開き、
C:\>dornetfx.exe /C /T:C:\work
などとして、中身を解凍する。
そして、KB2833941 のnetfx.msiの場所に、解凍したフォルダを指定してやる。

これで解決。
posted by usoinfo at 05:37 | Comment(0) | Windows | このブログの読者になる | 更新情報をチェックする