CentOS7にmonitを導入してみる

# [概要]
CentOS7にmonitを導入方法をまとめる。
アラート送信設定は、未確認です。

* monitとは
 - [mont情報オレオレまとめ](http://qiita.com/ghfdjk/items/365beaea0cca1bdba580)

# [事前準備]
* CentOS7を準備しておく
 - [CentOS7の初期セットアップ手順](http://qiita.com/ghfdjk/items/779fa69bf9e15b9e6fee)

# [作業内容]
## monitのインストール
### epelからインストールするので、epel-releaseをインストール
```
$ sudo yum -y install epel-release
```

### monitをインストール
```bash
$ sudo yum -y install monit
```

### 関連ファイルを一応確認
```bash
$ rpm -ql monit
/etc/logrotate.d/monit
/etc/monit.d
/etc/monit.d/logging
/etc/monitrc
/usr/bin/monit
/usr/lib/systemd/system/monit.service
/usr/share/doc/monit-5.14
/usr/share/doc/monit-5.14/COPYING
/usr/share/doc/monit-5.14/README
/usr/share/man/man1/monit.1.gz
/var/log/monit.log
```

## 初期設定
### 設定ファイルのバックアップ
```bash
$ sudo cp -av /etc/monitrc{,.bak}
`/etc/monitrc' -> `/etc/monitrc.bak'
### -a 権限を出来る限りそのままにしてコピー
### -v コピー前にファイル名を表示する
### {,.bak} ブレース展開と言われる手法で.bakというファイル名でコピー
```

### 設定ファイルの編集
```bash
$ sudo vim /etc/monitrc
```

### サンプル設定ファイル
allow のIPアドレス設定は、`192.168.10.0/255.255.255.0` で設定も可能

```/etc/monitrc
# Monitデーモンによる、監視周期
set daemon  30

# ログ出力設定
set logfile syslog

# Monit Webインターフェースの設定
# `$ monit status` コマンドが実行するため必須の設定
set httpd port 2812 and         # Webインターフェースポートを指定(2812は初期値)
    allow 192.168.10.1          # アクセスを許可するIPアドレスを指定
    allow localhost             # アクセスを許可するIPアドレスを指定
    allow admin:monit           # インターフェイスのログインユーザ名とパスワード

# 設定フィアルをinclude
include /etc/monit.d/*
```


### アラートチェック
```bash
$ sudo vim /etc/monit.d/mail-format
```

#### サンプル設定ファイル
```bash
set mailserver smtp.gmail.com port 587
   username "メールユーザ名" password "メールパスワード"
   using tlsv1

# アラートメールの送信用サーバを指定
set mailserver localhost

# アラート通知先のメールアドレスを指定
#「not on {INSTANCE}」でmonitの設定変更通知が来なくなる。
set alert hoge@yahoo.co.jp not on {INSTANCE}

# アラートメールのフォーマット
set mail-format {
        from: monit@$HOST
        subject: monit alert --  $SERVICE $EVENT at $DATE
        message: $EVENT Service $SERVICE
                Date:        $DATE
                Action:      $ACTION
                Host:        $HOST
                Description: $DESCRIPTION

                Your faithful employee,
                Monit
}
```

### 構文チェック
```bash
$ sudo monit -t
Generated unique Monit id 128bb93349595cbfea7cf065aac50a8c and stored to '/root/.monit.id'
Control file syntax OK
```

### Monit起動と自動起動ON
```bash
$ sudo systemctl start monit
```

### 自動起動ON
```bash
$ sudo systemctl enable monit
Created symlink from /etc/systemd/system/multi-user.target.wants/monit.service to /usr/lib/systemd/system/monit.service.
```

### 起動確認
「Active:」が「active(running)」になっているので起動しています。

```bash
$ sudo systemctl status monit
● monit.service - Pro-active monitoring utility for unix systems
   Loaded: loaded (/usr/lib/systemd/system/monit.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2016-11-27 06:29:53 JST; 2min 32s ago
 Main PID: 30684 (monit)
   CGroup: /system.slice/monit.service
           └─30684 /usr/bin/monit -I

11月 27 06:29:53 server1 systemd[1]: Started Pro-active monitoring utility for unix systems.
11月 27 06:29:53 server1 systemd[1]: Starting Pro-active monitoring utility for unix systems...
11月 27 06:29:53 server1 monit[30684]: Starting Monit 5.14 daemon with http interface at [localhost]:2812
```

### 下記のURLにアクセスしてみる
※ログイン情報は「allow admin:monit」で設定したもの
http://{Monit Server IP}:2812/

![monit_monit_web](http://drive.google.com/uc?export=view&id=0Byh1aAqbAigJNHhOdUxYcWhuNEk)


## [事後確認・作業]