ホームページ >運用・保守 >Linuxの運用と保守 >Linux で syslog を構成してログ転送を実装する方法
Linux システムのほとんどのログは、syslog メカニズムを通じて生成および維持されます。 Syslog は、クライアントとサーバーに分かれるプロトコルです。クライアントはログを生成し、サーバーはログを受信します。そして、受信したログをファイルに保存するか、他の方法で処理します。
Linux では、一般的な syslog サーバー側プログラムは syslogd デーモンです。このプログラムは 3 つの場所からログを受信します。
[1]: unix ドメイン ソケット /dev/log
[2]: udp ポート 514
[3]: 特別なデバイス / dev/klog
これに応じて、ログ メッセージを生成するプログラムは、上記の 3 つの方法でメッセージを書き込む必要があります。ほとんどのプログラムでは、ログ メッセージは /dev/log ソケットに送信されます。
Unix オペレーティング システムでは、syslog がシステム ログに広く使用されています。 Syslog ログ メッセージは、ローカル ファイルに記録することも、ネットワーク経由で syslog サーバーに送信することもできます。 syslog を受信するサーバーは、複数のデバイスからの syslog メッセージを均一に保存できます。または、コンテンツを解析して、それに応じて処理します。一般的なアプリケーション シナリオは、ネットワーク管理ツール、セキュリティ管理システム、ログ管理システムです。完全な syslog ログには、
# [1]: ログのプログラム モジュール
[2]: 重大
[3]: 時刻
## [ 4]:ホスト名またはIP 【5】:プロセス名 【6】:プロセスID 【7】:テキスト 2001年BSD syslog プロトコルは、2016 年に定義された RFC3164 で説明されています: http://www.ietf.org/rfc/rfc3164.txt. ただし、この仕様の多くの内容は必須ではなく、多くの場合「提案」または「規約」です。この仕様は比較的遅く発行されたため、多くのデバイスがこの仕様に準拠していないか、完全には準拠していません。次に、この仕様について紹介します。 syslog を送信するデバイスが Device、syslog を転送するデバイスが Relay、syslog を受信するデバイスが Collector であることに同意します。 Relay 自体も独自の syslog を Collector に送信することができ、その際、Relay はデバイスとして表示されます。 Relay は、受信した syslog メッセージの一部のみを転送することもでき、この時点では Relay と Collector の両方として動作します。 Syslog メッセージは、受信側からの応答を必要とせずに、コレクターの UDP 514 ポートに送信されます。RFC3164 では、デバイスが送信元ポートとしても 514 を使用することを推奨しています。 syslog メッセージの UDP パケットは 1024 バイトを超えることができず、すべてが印刷可能な文字で構成されている必要があると指定されています。完全な syslog メッセージは、PRI、HEADER、MSG の 3 つの部分で構成されます。ほとんどの syslog には PRI セクションと MSG セクションが含まれますが、HEADER には含まれない場合があります。 2. ログ転送を実装するための syslog サーバーとクライアントの構成環境: ubantu16.04
1. サーバー
<1> /etc/default/rsyslog を変更します
<1>gt; SYSLOGD_OPTIONS は「-r -x -m 0」です-r は外部メッセージの受信を許可することを意味します -x は DNS を解析しないことを意味します,
-m 0 タイムスタンプマークの間隔を示します、
1 つ以上の IP からのログのみを受け入れるように指定する場合 (例: "-s 168.1.1.1:168.1.1.2"
& gt; /etc/rsyslog.conf を変更します
# 完全にナンス:$ModLoad imudp.so $UDPServerRun 514
ファイルの最後に次の 2 つの文を追加します
syslog.info;syslog.!err;syslog.!crit;syslog.!alert /var/log/mylog #info信息记录到日志服务器的/var/log/mylog中 syslog.err /var/log/testerror #error信息记录到日志服务器的/var/log/testerror中 2 、客户端
/etc/syslog.conf を変更します
キャンセルに関するメモを追加します:
$ModLoad imudp.so $UDPServerRun 514r r r r r r r
# @IP (IP はサーバーの IP アドレス)
3. サービスの再起動
4. テスト
# クライアントで次のコードを実行すると、server/var/log/mylog でログがサーバーに保存されたことがわかります## ####えー以上がLinux で syslog を構成してログ転送を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。