国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Syslog服務(wù)端UDP接收日志

mingde / 3611人閱讀

總體來說,如果做企業(yè)級(jí)日志管理分析,我們第一步就需要接入設(shè)備的日志,而大部分的操作系統(tǒng)都是支持syslog的,一般我們對(duì)日志這種敏感級(jí)別不是很高的信息通過UDP的形式從客戶機(jī)發(fā)送到syslog接收服務(wù)器,syslog我們一般不會(huì)主動(dòng)去采集,而是當(dāng)客戶機(jī)上有操作時(shí)產(chǎn)生的日志會(huì)自動(dòng)發(fā)送到syslog接收服務(wù)器。下面是一個(gè)接收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服務(wù)類.  采集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;

    /**
     * 構(gòu)造函數(shù),綁定主機(jī)和端口.
     * @param host 主機(jī)
     * @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;
    }

    /**
     * 設(shè)置超時(shí)時(shí)間,該方法必須在bind方法之后使用.
     * @param timeout 超時(shí)時(shí)間
     * @throws Exception
     */
    public final void setSoTimeout(int timeout) throws Exception {
        ds.setSoTimeout(timeout);
    }

    /**
     * 獲得超時(shí)時(shí)間.
     * @return 返回超時(shí)時(shí)間.
     * @throws Exception
     
      - 下午10:34:36
     */
    public final int getSoTimeout() throws Exception {
        return ds.getSoTimeout();
    }

    /**
     * 綁定監(jiān)聽地址和端口.
     * @param host 主機(jī)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);
    }


    /**
     * 接收數(shù)據(jù)包,該方法會(huì)造成線程阻塞.
     * @return 返回接收的數(shù)據(jù)串信息
     * @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;
    }

    /**
     * 將響應(yīng)包發(fā)送給請(qǐng)求端.
     * @param bytes 回應(yīng)報(bào)文
     * @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);
    }

    /**
     * 設(shè)置報(bào)文的緩沖長度.
     * @param bufsize 緩沖長度
     
      - 下午10:47:49
     */
    public final void setLength(int bufsize) {
        packet.setLength(bufsize);
    }

    /**
     * 獲得發(fā)送回應(yīng)的IP地址.
     * @return 返回回應(yīng)的IP地址
     
      - 下午10:48:27
     */
    public final InetAddress getResponseAddress() {
        return packet.getAddress();
    }

    /**
     * 獲得回應(yīng)的主機(jī)的端口.
     * @return 返回回應(yīng)的主機(jī)的端口.
     
      - 下午10:48:56
     */
    public final int getResponsePort() {
        return packet.getPort();
    }

    /**
     * 關(guān)閉udp監(jiān)聽口.
     
      - 下午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是你本機(jī)的IP也就是syslog服務(wù)器的IP
        String serverHost = "192.168.100.188";
        int serverPort = 514;
        UdpServerSocket udpServerSocket = new UdpServerSocket(serverHost, serverPort);
        while (true) {
            udpServerSocket.receive();
        }
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/64519.html

相關(guān)文章

  • 模擬Syslog客戶UDP發(fā)送日志

    摘要:上一篇,我初步整理了服務(wù)端接收日志的例子,本篇主要是對(duì)客戶端模擬操作的一個(gè)基本例子。 上一篇,我初步整理了Syslog服務(wù)端接收日志的例子,本篇主要是對(duì)客戶端模擬操作的一個(gè)基本例子。 package com.tony.util; import java.io.*; import java.net.*; /** * UDP客戶端程序,用于對(duì)服務(wù)端發(fā)送數(shù)據(jù),并接...

    Eidesen 評(píng)論0 收藏0
  • 使用 Graylog 管理服務(wù)日志

    摘要:日志管理是一件麻煩的事情,特別是服務(wù)多的情況下出了問題需要排錯(cuò)分析非常困難,一般會(huì)使用,但這篇文章將會(huì)介紹另外一個(gè)同樣優(yōu)秀的日志聚合平臺(tái)準(zhǔn)備工作安裝修改鏡像倉庫安裝安裝如果覺得麻煩可以用這個(gè)部署輔助工具自動(dòng)完成進(jìn)入工具目錄并自動(dòng)部署配置文 日志管理是一件麻煩的事情,特別是服務(wù)多的情況下出了問題需要排錯(cuò)、分析非常困難,一般會(huì)使用 ELK,但這篇文章將會(huì)介紹另外一個(gè)同樣優(yōu)秀的日志聚合平臺(tái) ...

    Fourierr 評(píng)論0 收藏0
  • 如何在 Rancher 中統(tǒng)一管理容器日志

    摘要:在中默認(rèn)開啟端口用于偵聽發(fā)送過來的日志報(bào)文。至此,在中如何部署一套完整系統(tǒng)已經(jīng)介紹完了,下面我將介紹如何將容器日志發(fā)送到中。下面我將介紹如何收集容器日志。目前日志顯的雜亂無序。,現(xiàn)在我們再去查看發(fā)現(xiàn)我們的容器日志已經(jīng)展示在這里了。 相信大家對(duì)于容器和 docker 這個(gè)概念并不陌生,很高興的是 docker 為我們提供了多種log-driver。 showImg(https://se...

    whinc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<