CentOS7【rsyslog】で受信できない/出力できない場合の確認事項

rsyslog で受信しているはずのログがうまく転送されないときの確認項目を洗い出してみました。

サーバ側で tcp/udp 514 を Listen しているか?

ss -nltu で 514 ポートを開放しているか確認しましょう。

[root@localhost ~]# ss -nltu
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
udp    UNCONN     0      0                 *:514                           *:*
udp    UNCONN     0      0                :::514                          :::*
tcp    LISTEN     0      25                *:514                           *:*
tcp    LISTEN     0      25               :::514                          :::*

もし無ければ /etc/rsyslog.conf に以下行を追記(もしくはコメントイン)します。

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

そして "systemctl restart rsyslog" でサービス再起動しましょう。

サーバ側で受信を制限されていないか?

/etc/rsyslog.conf に AllowdSender で制限されていないか確認する。

$AllowedSender UDP, 127.0.0.1, host1, 192.168.1.0/24
$AllowedSender TCP, 127.0.0.1, host1, 192.168.1.0/24

等と書かれいて、かつ送信元がその範囲に含まれていない場合は , で区切って後ろに追記し、"systemctl restart rsyslog" でサービス再起動しましょう。

firewalld で制限されていないか

"firewall-cmd --list-all" で ports: 514/udp (もしくは services: syslog) や ports: 514/tcp (もしくは services: rsh) が設定されていることを確認しましょう。

services: syslog だけでは TCP の受信はできません。

入っていない場合は追加設定をします。

firewall-cmd --add-port=514/udp --permanent
firewall-cmd --add-port=514/tcp --permanent
firewall-cmd --reload

サーバ側の SELinux  が邪魔していないか?

"ausearch -i -l -m avc -ts today" コマンドで確認しましょう。受信時と同じ時間のログが出力されていたらほぼ間違いないでしょう。"setenforce 0" コマンドを打って SELinux による拒否を一時的に無効化した上で動作確認しましょう。

クライアント側でちゃんと送ってるの?

クライアント側でちゃんと送信しているかどうかを確認しましょう。syslogサーバが 192.168.1.1 の場合は以下のコマンドで通信が流れていることを確認します。

tcpdump -i any -nn port 514 host 192.168.1.1

tcpdump をインストールしていない場合は先にインストールしてから上を実行します。

yum -y install tcpdump

送信できていない場合はクライアント側の /etc/rsyslog.conf を再確認します。

UDPで送りたい場合

*.*  @192.168.1.1:514

TCPで送りたい場合

*.*  @@192.168.1.1:514

サービス再起動、起動状態確認

conf 設定後はサービス再起動します。

systemctl restart rsyslog
systemctl status rsyslog

シェアする

  • このエントリーをはてなブックマークに追加

フォローする