syslogサーバの構築

投稿者: | 2018年10月9日

syslogサーバの簡単な構築方法です。
ちなみにOSはAmazonLinuxです。
まずはyumでsyslog-ngをインストールします。
新しいamazonlinuxにはrsyslogが入ってますので入ってたらアンインストールします。

$ yum install syslog-ng --enablerepo=epel
$ yum install syslog-ng-libdbi --enablerepo=epel

自動起動設定を行います。

$ chkconfig syslog-ng on

続いてsyslogの設定ファイルを書き換えます。

$ vi /etc/syslog-ng/syslog-ng.conf

一番下でも良いので下記の記述を追加します。

source s_dummy {
        tcp(ip("0.0.0.0") port(514));
};
destination d_dummy_log {
        file("/var/log/dummy_log");
};
log {
        source(s_dummy);
        destination(d_dummy_log);
};

この設定はポート514で受けたログをdummy_logに出力するものです。
syslogを再起動すると設定が反映されます。

$ syslog-ng restart

これでsyslogサーバの完成です。
動作確認をするために送信サーバ側も設定します。
(なお、同じサーバからでもテストは可能です)
syslog-ngがインストールされている前提とし、syslogの設定ファイルを書き換えます。

$ vi /etc/syslog-ng/syslog-ng.conf

一番下でも良いので下記の記述を追加します。

#destination d_cron { file("/var/log/cron"); };
destination d_cron { tcp("XX.XX.XX.XX" port(514)); };

destination d_cronの行をコメントアウトし上記のように設定を追加します。
XX.XX.XX.XXは構築したサーバのIPアドレスになります。
上記の設定はcronログを出力する代わりにsyslogサーバへ転送するものになります。

$ syslog-ng restart

syslogを再起動するとcronログはsyslogサーバ側に出力されるようになります。
今回、外部サービスのsyslog転送機能を確認したいということで急遽syslogサーバが必要に簡易的に用意をしました。
最近はsyslog-ngよりも新しいrsyslogの方が標準ですが急いで構築したかったので慣れているsyslog-ngの方を使用しました。

コメントを残す

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