首頁>技術>

Logstash 可以從TCP Socket 中獲取日誌資料,和stdin和file方法一樣,假定每一行都是一個日誌。

下面的演示過程如下,通過Logstash獲取來自TCP Server端的輸出資料。

一、將Logstash的input 部分配置為客戶端

配置Logstash端,這裡引數mode 用於設定Logstash 作為客戶端,port 為指定的埠和Java程式碼中保持一致。

input {

tcp {

host => "127.0.0.1"

mode => "client"

port => 6000

}

}

output {

stdout {}

}

我們將上述配置檔案 tcp-input.conf 放置到 D:\\ElasticStack\\logstash-conf 目錄中。

二、將Java應用程式設計為伺服器端

用於發生資訊的程式實現程式碼如下,定時向Logstash 發生Welcome ... 訊息。

package com.rickie;

import java.io.IOException;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class TcpServer {

public static void main(String[] args) throws IOException, InterruptedException {

ServerSocket serverSocket = new ServerSocket(6000);

for (int i = 0; i < 10; i++) {

// 阻塞等待訊息

Socket socket = serverSocket.accept();

OutputStream outputStream = socket.getOutputStream();

outputStream.write(("Welcome, logstash" + i).getBytes());

outputStream.close();

Thread.sleep(1000000);

socket.close();

}

serverSocket.close();

}

}

三、進行除錯

依次啟動Java應用程式,也就是啟動TCP 服務端應用,模擬日誌資料輸入。

然後啟動logstash,也就是TCP 客戶端,接收來自TCP Server的日誌資料。

bin\\logstash -f ..\\logstash-conf\\tcp-input.conf

伺服器端傳送的字串,會經過Logstash 這個管道流向了螢幕(也就是客戶端)。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Vue3.0終於釋出了,結構更清晰,功能更模組化,偏向函數語言程式設計