web-dev-qa-db-ja.com

Syslog-ng:リモートホストに送信する前にメッセージを変更する方法

SLES10でsyslog-ng 1.6.8を使用しています。このマシンから、すべてのイベントをリモートホスト10.30.38.115に転送する必要があります。ただし、予備的にメッセージを少し変更して、イベントの最後に「MyMark」プレフィックスを追加する必要があります。私は以下を試しました:

source src {
       internal();
       unix-dgram("/dev/log");
};


destination editredirect { udp("10.30.38.115" port(514) template("<$PRI> $DATE $Host $MSG MyMark\n") ); };

log { source(src); destination(editredirect); };

しかし、それは機能しません。リモートホストでは、これらのメッセージをまったく受信しません。実は、テンプレートを削除しても届きません。リモートホストは着信メッセージを受け入れるように構成されており、実際に受け入れます。

したがって、私の質問は、リモートホストにメッセージを送信する前にメッセージを変更できるようにsyslog-ng.confを調整する方法です。

更新:解決済み

リダイレクトが現在どのように編成されているかを次に示します。

リモートマシン:

source src {
        #
        # include internal syslog-ng messages
        # note: the internal() soure is required!
        #
        internal();

        #
        # the default log socket for local logging:
        #
        unix-dgram("/dev/log");

        #
        # uncomment to process log messages from network:
        #
        udp(ip("0.0.0.0") port(514));
        tcp(ip("0.0.0.0") port(1470)); };

ローカルマシン:

source src {
        #
        # include internal syslog-ng messages
        # note: the internal() soure is required!
        #
        internal();

        #
        # the following line will be replaced by the
        # socket list generated by SuSEconfig using
        # variables from /etc/sysconfig/syslog:
        #
        #unix-dgram("/dev/log");
        unix-stream("/dev/log");

        #
        # uncomment to process log messages from network:
        #
        #udp(ip("0.0.0.0") port(514));
};


destination editredirect { tcp("10.30.38.115" port(1470) template("<$PRI> $DATE $Host $MSG MyMark\n")); };
log { source(src); destination(editredirect); };
1
user54614

リダイレクトが現在どのように編成されているかを次に示します。

Remote machine:

source src {
    #
    # include internal syslog-ng messages
    # note: the internal() soure is required!
    #
    internal();

    #
    # the default log socket for local logging:
    #
    unix-dgram("/dev/log");

    #
    # uncomment to process log messages from network:
    #
    udp(ip("0.0.0.0") port(514));
    tcp(ip("0.0.0.0") port(1470)); };
Local machine:

source src {
    #
    # include internal syslog-ng messages
    # note: the internal() soure is required!
    #
    internal();

    #
    # the following line will be replaced by the
    # socket list generated by SuSEconfig using
    # variables from /etc/sysconfig/syslog:
    #
    #unix-dgram("/dev/log");
    unix-stream("/dev/log");

    #
    # uncomment to process log messages from network:
    #
    #udp(ip("0.0.0.0") port(514));

};

destination editredirect { tcp("10.30.38.115" port(1470) template("<$PRI> $DATE $Host $MSG MyMark\n")); };
log { source(src); destination(editredirect); };
0
user54614

これを試して

source src {

        internal();
        unix-stream("/dev/log");
};


destination editredirect { tcp("10.30.38.115" port(1470) template("$FULLDATE $PROGRAM  $MSGONLY MyMark \n") template_escape(no)); };
log { source(src); destination(editredirect); };
0
m0ntassar