Mackerelのプラグインの利用方法

#はじめに
Mackerelでミドルウェアのモニタリングを行うための、基本的なプラグインの利用方法です。
例として`mackerel-plugin-mailq`の設定方法を記載しています。

#環境
前提としてMackerelの導入が必要となります。
Mackerel自体の導入方法は[公式ヘルプ](https://mackerel.io/ja/docs/)をご確認ください。（コマンド１、２個で導入できます。）
OSはCentOS7.6を使用しています。


#プラグインの導入
Mackerelが導入されている環境で以下のコマンドを実行すると、プラグインをインストールできます。

```bash:install
 $ yum install mackerel-agent-plugins
```

#プラグインの確認
プラグインファイルは/usr/bin/配下にmackerel-pluginのシンボリックリンクとして格納されます。

```bash:plugin
# ls -l /usr/bin/mackerel*
-rwxr-xr-x. 1 root root  7157912  5月 14 15:37 /usr/bin/mackerel-agent
-rwxr-xr-x. 1 root root 28896000  5月 14 15:36 /usr/bin/mackerel-plugin
lrwxrwxrwx. 1 root root       17  5月 24 10:17 /usr/bin/mackerel-plugin-accesslog -> ./mackerel-plugin
lrwxrwxrwx. 1 root root       17  5月 24 10:17 /usr/bin/mackerel-plugin-apache2 -> ./mackerel-plugin
lrwxrwxrwx. 1 root root       17  5月 24 10:17 /usr/bin/mackerel-plugin-aws-cloudfront -> ./mackerel-plugin
lrwxrwxrwx. 1 root root       17  5月 24 10:17 /usr/bin/mackerel-plugin-aws-dynamodb -> ./mackerel-plugin
lrwxrwxrwx. 1 root root       17  5月 24 10:17 /usr/bin/mackerel-plugin-aws-ec2-cpucredit -> ./mackerel-plugin
lrwxrwxrwx. 1 root root       17  5月 24 10:17 /usr/bin/mackerel-plugin-aws-ec2-ebs -> ./mackerel-plugin
以下略
```


#プラグインの使い方

`/etc/mackerel-agent/mackerel-agent.conf`内にはあらかじめ、主なミドルウェアに対応したモジュールがコメントアウト状態で記載されています。こちらのコメントアウトを外せば有効になります。
ただし、全プラグインが記載されているわけでは無いので、使用したいプラグインが設定ファイル内に記載されていない場合は、[公式のGitHub](https://github.com/mackerelio/mackerel-agent-plugins)内の各プラグインのソースとREADME.mdを確認するか、コマンドヘルプを参照する必要があります。



各プラグインのヘルプは引数`-h`を指定して実行することで確認できます。
`mackerel-plugin-mailq`の場合は以下のように表示されます。

```
$ mackerel-plugin-mailq -h
 Usage of mackerel-plugin-mailq:
  -M string
        shorthand for -mta
  -c string
        shorthand for -command
  -command string
        path to queue-printing command (guessed by -M flag if not given)
  -metric-key-prefix string
        prefix to metric key (default "mailq")
  -metric-label-prefix string
        prefix to metric label (default "Mailq")
  -mta string
        type of MTA (one of [exim qmail postfix])
  -tempfile string
        path to tempfile
```

ヘルプの内容に従い、postfixのメールキューのモニターコマンドを実行し、動作を確認します。

```
$ mackerel-plugin-mailq -M postfix
 mailq.count     0       1589373596 #メールキュー内のメール数と時間が表示される
```

# プラグインの設定
有効にするプラグインと引数が決定したら、`mackrel-agent.conf`にプラグイン設定を追加します。

```bash:/etc/mackerel-agent/mackerel-agent.conf
[plugin.metrics.mailq]
command = "/usr/bin/mackerel-plugin-mailq -M postfix"
```

追加が完了したら、mackrele-agentを再起動します。
`systemctl restart mackerel-agent`
これにより、プラグインが有効になります。

しばらく待つと該当のプラグインがカスタムメトリック欄に表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269326/8871139a-89e2-26ec-c1b4-7c193608c608.png)

#監視設定の追加
アラート設定を行う場合は、モニター設定を追加します。

「Monitors」-「監視ルールを追加」-「ホストメトリック監視」を追加。
メトリックの監視条件を記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269326/03fd87dd-dcb7-26a9-f328-abce3b7b8daa.png)

「作成」ボタンを押下すると監視設定が追加されます。
これでモニターの閾値を超えた時にアラートを発報するようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269326/0c3c18da-8680-f779-0e58-5391ae4f1a45.png)

# おわりに
Mackerelのプラグインを利用すれば、主要なミドルウェアの監視は簡単に実施できるようになると思います。
もっと特殊な監視がしたい場合はMackerelの[ヘルプページ](https://mackerel.io/ja/docs/)を参考に色々と試してみてください。

以上