Nginxのアクセスログとエラーログをリモートのsyslogサーバーにリダイレクトする必要があります。 http://nginx.org/en/docs/syslog.html から、私ができることがわかりました:
error_log syslog:server=192.168.1.1;
しかし、私は特定のTCP(UDPではない!)ポートにリダイレクトする必要があり、私は次のことを試しました:
error_log syslog:server=192.168.1.1:3000;
しかし、それは通過しません。ポートがTCPで、UDPではない)であることをNginxにどのように指定できますか?
どうもありがとう!
この方法でTCP=を介して送信する方法はありません。これは、ネットワークでログを送信するための非常に一般的な方法です。その必要性の証拠)。
ただし、ログを送信できるのはUDPのみが一般的であり、多くのネットワークデバイス(スイッチやルーターなど)はUDPでしか送信できないため、syslogゲートウェイへの送信が解決策になる場合があります。希望するポートのsyslogサーバーにリスナーを追加できません。それはあなたのUDPログを受け取り、代わりにTCPを介してそれらを中央サーバーに送ります。
私自身は、すべての作業をnginxに依存する代わりに、rsyslogを使用してnginxサーバーでログを収集し、中央サーバーに転送することを検討しました。送信先のプロトコルとポートを選択できます。
それをudpに送信し、192.168.1.1でsocatを実行できます。
socat UDP4-RECVFROM:192.168.1.1:3000,fork,reuseaddr TCP4-SENDTO:192.168.1.1:3000