0

syslog-ng のログを修正するマシンがあります。構成ファイルを編集して、ログをローカル ファイルに書き込む/data/logs/access.log

destination d_nginx_video { file("/data/logs/access.log" create_dirs(yes) template("$PROGRAM $MESSAGE\n"));}; 

次に、ログファイルをredisキューに送信して、ログに何らかの処理を使用させたい

しかし、最初にログファイルを読んでから、ログをredisに入れる必要があります

だから私は使っていますtail -F /data/logs/access.log|python process put to redis queueが、それは悪い方法です

tcp サーバーを実行してログ ファイルを受信し、syslog-ng を構成する方法を知りたいです。

私のTCPサーバースクリプトはTCPサーバースクリプトです

これ5144は、スクリプトでリッスンするsyslog-ngポートです

4

1 に答える 1

2

「ファイル」に加えて「プログラム」ディレクティブを使用し、ネットワークを使用せずにログをスクリプトに直接パイプすることを検討しましたか?

destination d_nginx_video { program("/path/to/python/script arg arg arg"
                                    template("$PROGRAM $MESSAGE\n"));
                            file("/data/logs/access.log" create_dirs(yes)
                                 template("$PROGRAM $MESSAGE\n")); };

私はsyslog-ngの専門家ではありませんが、スクリプトを実行し続け、syslogデーモン内からログを継続的に処理することを除けば、現在のアプローチと非常に似ているようです。syslog-ngのドキュメントには、もう少し情報が含まれています。

于 2012-10-10T11:48:42.880 に答える