Monit ログの出力先変更する方法

Monitのデフォルト設定では、ログの出力先が syslog(/var/log/messages や /var/log/secure)に指定されているので、messagesとかをログ監視しているとmonitのログを拾ってしまうケースあります。

このログの出力先を「/var/log/monit.log」に変更する方法を紹介します。

monit設定ファイルの編集

設定ファイル(/etc/monitrc)を編集します。
ログの出力先は標準ではsyslogに出力されているので「set log syslog」はコメントアウトして、「set log /var/log/monit.log」をその下に追加します

$ sudo vi /etc/monitrc
#set log syslog コメントアウトする
set log /var/log/monit.log

ログファイルの作成と権限設定

monitが起動時にログファイルを書き込めるように、再起動する前にログファイルを作成します。また、適切な権限を付与します

$ sudo touch /var/log/monit.log
$ sudo chmod 600 /var/log/monit.log

設定の反映

設定に構文エラーがないか確認してから、monitを再起動します。

# 設定ファイルのチェック
$ sudo monit -t

# 反映
$ sudo systemctl restart monit

ログローテーションの設定

ログファイルを独自に作成した場合、ログローテーションを設定しないとログファイルサイズが肥大化し続けてしまいます。logrotate の設定を追加してログローテーション実行するようにします

/etc/logrotate.d/monit というファイルを新規作成し、以下の内容を記述してください。

$ sudo vim /etc/logrotate.d/monit
/var/log/monit.log {
    weekly
    rotate 4
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/systemctl reload monit > /dev/null 2>&1 || true
    endscript
}
  • weekly: 1週間ごとに新しくします。(messages と同じ頻度)
  • rotate 4: 過去4回分(約1ヶ月分)をバックアップとして残します。
  • sharedscripts: 複数のログファイルを指定した場合でも、postrotate の実行を1回にまとめます(標準設定に多い記述です)。

ログローテーションの設定ファイルを作成すると、正しく動作するか以下のコマンドでテスト実行(ドライラン)が可能です。エラーが出なければ成功です。

$ sudo logrotate -dv /etc/logrotate.d/monit

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です