web-dev-qa-db-ja.com

OpenVPNをセットアップしてログをローテーションする方法は?

Openvpnログをローテーションしたいです。どうすればこれを達成できますか?

3
flickerfly

次の内容を新しいファイル/etc/rsyslog.d/20-ovpn.confに追加します。これにより、rsyslogに送信されるログイベントが適切に処理されるようになります。

# Create a template for the vpn log location
$template OpenVPN,"/var/log/openvpn/ovpn.log"

# Save log events where the programname starts with ovpn like ovpn-server to the 
# location mentioned in the template
:programname, startswith, "ovpn-" -?OpenVPN

# Stop processing ovpn-* log events 
:programname, startswith, "ovpn-" ~

このコマンドを実行し、出力がないことを確認します。

grep ^log /etc/openvpn/server.conf

このコマンドが行を出力する場合は、構成に移動して、ログまたはログ追加行をコメントアウトする必要があります。これにより、syslogに送信するデフォルトのロギングがトリガーされます。

最後に、新しいファイル/etc/logrotate.d/ovpnを作成し、そのファイルに以下の内容を追加します。これは、毎週のローテーションを行うか、ログファイルのサイズが100Mになったらローテーションします。 4週間保持し、最後の2つを除くすべてを圧縮します。

/var/log/openvpn/*.log {
        weekly
        size 100M
        rotate 4
        compress
        delaycompress
        missingok
        notifempty
        create 640 syslog adm
}

Rsyslogを再起動してから、openvpnサービスを再起動して、これらの新しい構成が確実に取得されるようにします。 openvpnの再起動後、rsyslogによって/ var/log/openvpnおよび/var/log/openvpn/ovpn.logがすぐに作成されるのが見えるはずです。

8
flickerfly

上記の例ではレガシーrsyslog構文を使用しているようです。ドキュメントには、これが現在の構文になると書かれています:

if $programname startswith 'ovpn-' then /var/log/openvpn/ovpn.log
& ~

私はそれをテストしましたが、私のために動作します(TM)。

2
Josip Rodin