| 1 | = Syslogメモ = |
| 2 | Syslogを使うと複数のサーバのログをログサーバに集約することができます。ここでは、RedHat系OSで利用されているSyslogの実装の一つであるrsyslogの使い方を紹介します。 |
| 3 | |
| 4 | == rsyslogの設定 == |
| 5 | syslogでは、ファシリティと呼ばれるログのグループにより、カーネルのログやアプリケーションなどログの種類を指定します。アプリケーションのログをlocal0という名前のファシリティで出力するには、 |
| 6 | |
| 7 | '''/etc/rsyslog.conf''' |
| 8 | {{{ |
| 9 | local0.* /var/log/application.log |
| 10 | }}} |
| 11 | |
| 12 | 複数のサーバのログを集約するには、UDP(もしくはTCP)を利用してログを受け取る設定を行う必要があります。ネットワーク経由でログを受け取る設定は、rsyslogのSYSLOGD_OPTIONSを下記のように変更します。 |
| 13 | |
| 14 | '''/etc/sysconfig/rsyslog''' |
| 15 | {{{ |
| 16 | SYSLOGD_OPTIONS="-m 0 -r514" |
| 17 | }}} |
| 18 | |
| 19 | 設定が終わったら下記のコマンドによりrsyslogdを再起動すれば有効になります。 |
| 20 | {{{ |
| 21 | # /etc/init.d/rsyslogd restart |
| 22 | }}} |
| 23 | |
| 24 | CentOSやRedHatではデフォルトでは、ファイアウォールの設定によりsyslog(514ポート)のメッセージを受け付けないようになっています。 |
| 25 | 下記のようにREJECTルールの手前に514番のUDPを有効にする設定を記述します。 |
| 26 | |
| 27 | '''/etc/sysconfig/iptables''' |
| 28 | {{{ |
| 29 | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT |
| 30 | -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT |
| 31 | -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited |
| 32 | }}} |
| 33 | 変更したファイアウォールの設定を有効にするには、下記のコマンドを実行します。 |
| 34 | {{{ |
| 35 | # service iptables restart |
| 36 | }}} |