0

logstash 用に別のサーバーがあり、ログはリモート マシンにあります。logstash 用の lumberjack のプラグインを使用して、これらの同じログをリモート マシンから logstash サーバーに送信します。

私はこれを試しました:

クライアント構成 (ログが存在する場所):

input {
        file{
                path => "/home/Desktop/Logstash-Input/**/*_log"
        }
}

output {

        lumberjack {
                hosts => ["xx.xx.xx.xx"]
                port => 4545
                ssl_certificate => "./logstash.pub"
    }

ファイル入力のパス変数からフィールドを抽出したいので、それに応じて異なるフィールド値に対して異なる解析パターンを適用できます。

例:こんな感じ

grok {
    match => ["path", "/home/Desktop/Logstash-Input/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logdate>[\d]+.[\d]+.[\d]+)/(?<logfilename>.*)_log"]
}

ここでサーバー、ログタイプは、フィールドに次のようなさまざまな解析パターンを適用するディレクトリ名です。

filter{

   if [server] == "Server2" and [logtype] == "CronLog" {
               grok........
}


if [server] == "Server3" and [logtype] == "CronLog" {
               grok............
}
}

ファイル入力は、パスからフィールドを抽出したいクライアントマシン上にあるため、logstash-server構成に上記を適用するにはどうすればよいですか???

Lumberjack はログをサーバーに正常に送信します。クライアントにgrokを適用してみました:

grok {
    match => ["path", "/home/Desktop/Logstash-Input/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logdate>[\d]+.[\d]+.[\d]+)/(?<logfilename>.*)_log"]
}

サーバー、ログタイプなどのフィールドをログに追加するクライアント コンソールを確認しましたが、logstsh-server コンソールではフィールドが追加されません。

上記を達成するにはどうすればよいですか????

4

1 に答える 1