ミドルウェア別 munin plugin 設定手順

# 各種ミドルウェア別 munin プラグイン設定手順

ミドルウェアによって、muninへのプラグインインストール方法が変わってきますので、備忘録的にメモしておきます。
muninのインストール（サーバ、クライアント）については、[AWS EC2でmunin 楽々リソース監視 しよう！](http://qiita.com/hit/items/366b8ae789411761f3f7)に記載しましたのでご確認ください ほんのり随時更新していく予定です

## 作業共通 （個人的

デフォルトで作成されている監視項目を削除します

```bash

cd /etc/munin/plugins
unlink sendmail_mailqueue 
unlink sendmail_mailstats
unlink sendmail_mailtraffic
unlink users
unlink threads
unlink proc_pri
unlink entropy
unlink irqstats
unlink forks
unlink interrupts
```

## 各種ミドルウェア別、プラグイン設定方法

### mysql

* perl モジュールのインストール

```bash
yum install --enablerepo=epel perl-IPC-ShareLite perl-Cache-Cache perl-Cache perl-DBD-MySQL
```

* プラグインのインストール

```bash
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/mysql_ mysql_commands
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_bpool
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_io
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_log
ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_tnx
ln -s /usr/share/munin/plugins/mysql_ mysql_select_types
ln -s /usr/share/munin/plugins/mysql_ mysql_table_locks
ln -s /usr/share/munin/plugins/mysql_ mysql_connections
ln -s /usr/share/munin/plugins/mysql_ mysql_slow
ln -s /usr/share/munin/plugins/mysql_ mysql_myisam_indexes
ln -s /usr/share/munin/plugins/mysql_ mysql_network_traffic
ln -s /usr/share/munin/plugins/mysql_ mysql_qcache
ln -s /usr/share/munin/plugins/mysql_ mysql_qcache_mem
```

* MySQL の接続設定

```bash
_mysql_userid=ユーザーID
_mysql_passwd=パスワード

cat << _EOT_ >> /etc/munin/plugin-conf.d/munin-node
[mysql*]
env.mysqlopts -u ${_mysql_userid} -p${_mysql_passwd}
env.mysqladmin /usr/bin/mysqladmin
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysqluser ${_mysql_userid}
env.mysqlpassword ${_mysql_passwd}
_EOT_
```

* 動作確認

```bash

/usr/sbin/munin-run mysql_commands
--------------
Com_delete.value 52
Com_insert.value 1624
Com_insert_select.value 0
Com_load.value 0
Com_replace.value 0
Com_replace_select.value 0
Com_select.value 4
Com_update.value 4330
Com_update_multi.value 0
```

・mariadbの場合以下のようなエラーが出ることがあるので・・

```bash

Unknown section: INDIVIDUAL BUFFER POOL INFO at /etc/munin/plugins/mysql_commands line 1098.
```
```bash

'INDIVIDUAL BUFFER POOL INFO'   => \&skip,
```

という行を下記あたりに追記

```bash
vi /usr/share/munin/plugins/mysql_
---------------------------------
    my %section_map = (

        'BUFFER POOL AND MEMORY'   => \&parse_buffer_pool_and_memory,
        'FILE I/O'                 => \&parse_file_io,
        'INSERT BUFFER AND ADAPTIVE HASH INDEX'
            => \&parse_insert_buffer_and_adaptive_hash_index,
        'LATEST DETECTED DEADLOCK' => \&skip,
        'LATEST FOREIGN KEY ERROR' => \&skip,
        'LOG'                      => \&parse_log,
        'ROW OPERATIONS'           => \&skip,
        'SEMAPHORES'               => \&parse_semaphores,
        'TRANSACTIONS'             => \&parse_transactions,
        'BACKGROUND THREAD'        => \&skip,
        'INDIVIDUAL BUFFER POOL INFO'   => \&skip,    # → これを追記                                                                    
    );
---------------------------------
```

### apache

* プラグインのインストール

```bash
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/
ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/
ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/
ln -s /usr/share/munin/plugins/ps_ /etc/munin/plugins/ps_httpd

```

* apacheの計測用サブディレクトリ設定

```bash
cat << '_EOT_' > /etc/httpd/conf.d/status.conf
<IfModule mod_status.c>
    ExtendedStatus On
    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
</IfModule>
_EOT_
```

* configのチェック

```bash
/etc/init.d/httpd configtest
```

* 設定の反映

```bash
/etc/init.d/httpd graceful
```

* ステータス確認

```bash
curl http://127.0.0.1/server-status/?auto
```

* リバースプロキシなど設定している場合は・・・

ProxyPass /server-status ! でserver-statusだけは、プロキシしないように設定しておきましょう！

```
<IfModule mod_proxy.c>
SSLProxyEngine on
ProxyRequests Off
ProxyPass /server-status !
.
.

```


### redis

* プラグインのインストール

```bash
cd /usr/share/munin/plugins/
wget https://raw.github.com/bpineau/redis-munin/master/redis_
chmod 755 redis_
cd /etc/munin/plugins/
ln -s /usr/share/munin/plugins/redis_ redis_127.0.0.1_6379
```

* redisにパスワードを指定している場合は、下記コンフィグファイルを追加し、パスワードを設定する

```bash
cat << '_EOT_' > /etc/munin/plugin-conf.d/redis
[redis_*]
env.password passswwwword
_EOT_

* 動作確認

```bash
munin-run redis_127.0.0.1_6379
-----
multigraph redis_clients_6379
clients.value 1
multigraph redis_blocked_clients_6379
blocked.value 0
multigraph redis_memory_6379
memory.value 1777184
multigraph redis_fragmentation_6379
frag.value 2.01
multigraph redis_total_connections_6379
connections.value 48221
multigraph redis_expired_keys_6379
expired.value 0
multigraph redis_evicted_keys_6379
evicted.value 0
multigraph redis_pubsub_channels_6379
channels.value 0
multigraph redis_commands_6379
commands.value 317025
hits.value 44456
misses.value 957
multigraph redis_dbs_6379
db0keys.value 729
db0expires.value 291
-----

```