總體來說,如果做企業級日志管理分析,我們第一步就需要接入設備的日志,而大部分的操作系統都是支持syslog的,一般我們對日志這種敏感級別不是很高的信息通過UDP的形式從客戶機發送到syslog接收服務器,syslog我們一般不會主動去采集,而是當客戶機上有操作時產生的日志會自動發送到syslog接收服務器。下面是一個接收syslog的例子。
package com.tony.util; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.SocketException; /** * Copyright 2015 HP * All right reserved. * UDP服務類. 采集syslog * @version 1.0 * Creation date: 2015-8-18 - 下午16:32:31 */ public class UdpServerSocket { private byte[] buffer = new byte[1024]; private DatagramSocket ds = null; private DatagramPacket packet = null; private InetSocketAddress socketAddress = null; private String orgIp; /** * 構造函數,綁定主機和端口. * @param host 主機 * @param port 端口 * @throws Exception */ public UdpServerSocket(String host, int port) throws Exception { socketAddress = new InetSocketAddress(host, port); ds = new DatagramSocket(socketAddress); System.out.println("--------------service start----------------"); } public final String getOrgIp() { return orgIp; } /** * 設置超時時間,該方法必須在bind方法之后使用. * @param timeout 超時時間 * @throws Exception */ public final void setSoTimeout(int timeout) throws Exception { ds.setSoTimeout(timeout); } /** * 獲得超時時間. * @return 返回超時時間. * @throws Exception - 下午10:34:36 */ public final int getSoTimeout() throws Exception { return ds.getSoTimeout(); } /** * 綁定監聽地址和端口. * @param host 主機IP * @param port 端口 * @throws SocketException - 下午10:36:17 */ public final void bind(String host, int port) throws SocketException { socketAddress = new InetSocketAddress(host, port); ds = new DatagramSocket(socketAddress); } /** * 接收數據包,該方法會造成線程阻塞. * @return 返回接收的數據串信息 * @throws IOException - 下午10:38:24 */ public final String receive() throws IOException { packet = new DatagramPacket(buffer, buffer.length); ds.receive(packet); orgIp = packet.getAddress().getHostAddress(); String info = new String(packet.getData(), 0, packet.getLength()); System.out.println(info); //System.out.println("CONTENT="+info+":SOURCE_IP="+packet.getAddress().getHostAddress()+"SOURCE_PORT:"+packet.getPort()); return info; } /** * 將響應包發送給請求端. * @param bytes 回應報文 * @throws IOException - 下午11:05:31 */ public final void response(String info) throws IOException { System.out.println("Client IP" + packet.getAddress().getHostAddress() + ",Port:" + packet.getPort()); DatagramPacket dp = new DatagramPacket(buffer, buffer.length, packet .getAddress(), packet.getPort()); dp.setData(info.getBytes()); ds.send(dp); } /** * 設置報文的緩沖長度. * @param bufsize 緩沖長度 - 下午10:47:49 */ public final void setLength(int bufsize) { packet.setLength(bufsize); } /** * 獲得發送回應的IP地址. * @return 返回回應的IP地址 - 下午10:48:27 */ public final InetAddress getResponseAddress() { return packet.getAddress(); } /** * 獲得回應的主機的端口. * @return 返回回應的主機的端口. - 下午10:48:56 */ public final int getResponsePort() { return packet.getPort(); } /** * 關閉udp監聽口. - 下午10:49:23 */ public final void close() { try { ds.close(); } catch (Exception ex) { ex.printStackTrace(); } } /** * 測試方法. * @param args * @throws Exception - 下午10:49:50 */ public static void main(String[] args) throws Exception { //這里的IP是你本機的IP也就是syslog服務器的IP String serverHost = "192.168.100.188"; int serverPort = 514; UdpServerSocket udpServerSocket = new UdpServerSocket(serverHost, serverPort); while (true) { udpServerSocket.receive(); } } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64519.html
摘要:上一篇,我初步整理了服務端接收日志的例子,本篇主要是對客戶端模擬操作的一個基本例子。 上一篇,我初步整理了Syslog服務端接收日志的例子,本篇主要是對客戶端模擬操作的一個基本例子。 package com.tony.util; import java.io.*; import java.net.*; /** * UDP客戶端程序,用于對服務端發送數據,并接...
摘要:日志管理是一件麻煩的事情,特別是服務多的情況下出了問題需要排錯分析非常困難,一般會使用,但這篇文章將會介紹另外一個同樣優秀的日志聚合平臺準備工作安裝修改鏡像倉庫安裝安裝如果覺得麻煩可以用這個部署輔助工具自動完成進入工具目錄并自動部署配置文 日志管理是一件麻煩的事情,特別是服務多的情況下出了問題需要排錯、分析非常困難,一般會使用 ELK,但這篇文章將會介紹另外一個同樣優秀的日志聚合平臺 ...
摘要:在中默認開啟端口用于偵聽發送過來的日志報文。至此,在中如何部署一套完整系統已經介紹完了,下面我將介紹如何將容器日志發送到中。下面我將介紹如何收集容器日志。目前日志顯的雜亂無序。,現在我們再去查看發現我們的容器日志已經展示在這里了。 相信大家對于容器和 docker 這個概念并不陌生,很高興的是 docker 為我們提供了多種log-driver。 showImg(https://se...
閱讀 1360·2019-08-30 15:44
閱讀 2106·2019-08-30 11:04
閱讀 526·2019-08-29 15:17
閱讀 2544·2019-08-26 12:12
閱讀 3136·2019-08-23 18:09
閱讀 925·2019-08-23 15:37
閱讀 1525·2019-08-23 14:43
閱讀 2928·2019-08-23 13:13