Java 用udp方式像第三方系统推送数据

 

 

package com.bonc.utils;

import org.graylog2.syslog4j.Syslog;
import org.graylog2.syslog4j.SyslogIF;
import org.graylog2.syslog4j.impl.net.udp.UDPNetSyslogConfig;

import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SysLogUtil {
    public static void sendLog(String host, int port, String log, int level) {

        UDPNetSyslogConfig config = new UDPNetSyslogConfig();
        //设置syslog服务器端地址
        config.setHost(host);
        //设置syslog接收端口,默认514
        config.setPort(port);

        try {
            //向多个多个ip发送日志不执行shutdo会导致同一个实例无法发送到多个地址
            Syslog.shutdown();
            SyslogIF syslog = Syslog.createInstance("udp", config);
            syslog.log(0, URLDecoder.decode(log, "utf-8"));
        } catch (Exception e) {
            System.out.println("generate log get exception = "+ e.getMessage());
        }

        System.out.println("syslog Server host:" + host + " ,port:" + port + " ,log:" + log);
    }

    public static String makeLog(String srcHost, String srcPort, String dstHost, String dstPort,String operation, String content, String loginId){
        //准备发送内容
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateNowStr = sdf.format(new Date());

        StringBuilder msgStr = new StringBuilder();
        msgStr.append(" class=\"DSJHJ\"");
        msgStr.append(" type=\"3\"");
        msgStr.append(" time=\""+ dateNowStr +"\"");
        msgStr.append(" src_ip=\""+ srcHost +"\"");
        msgStr.append(" dst_ip=\""+ dstHost +"\"");
        msgStr.append(" src_port=\""+ srcPort +"\"");
        msgStr.append(" dst_port=\""+ dstPort +"\"");
        msgStr.append(" src_mac=\"\"");
        msgStr.append(" dst_mac=\"\"");
        msgStr.append(" protocol=\"\"");
        msgStr.append(" start_time=\"\"");
        msgStr.append(" end_time=\"\"");
        msgStr.append(" primary_user=\"\"");
        msgStr.append(" secondary_user=\""+loginId+"\"");
        msgStr.append("Operation=\""+operation+"\"");
        msgStr.append("Content=\""+content+"\"");
        msgStr.append(" dev_ip=\"133.64.102.231\"");
        msgStr.append(" dev_port=\"\"");
        msgStr.append(" dev_mac=\"\"");
        msgStr.append(" authen_status=\"\"");
        msgStr.append(" log_level=\"2\"");
        msgStr.append(" session_id=\"\"");
        msgStr.append(" param_len=\"\"");
        msgStr.append(" Param=\"\"");

        return msgStr.toString();
    }

    public static void main(String[] args) {
        String srcHost = "133.64.102.231";
        String srcPort = "8081";
        String dstHost = "192.168.1.200";
        String dstPort = "514";
        String operDes = "登录";
        String contentStr = "登录大数据汇聚平台";
        String loginId = "zhaofengchao";

        String msgStr = SysLogUtil.makeLog(srcHost,srcPort,dstHost,dstPort,operDes,contentStr,loginId);

        //向4A开始发送日志内容
        SysLogUtil.sendLog("133.65.243.94",5140,msgStr,0);

        /*dstHost = "192.168.1.215";
        dstPort = "5140";
        msgStr = SysLogUtil2.makeLog(srcHost,srcPort,dstHost,dstPort,operDes,contentStr,loginId);

        SysLogUtil2.sendLog("192.168.1.215",5140,msgStr,0);*/
    }
}

  

posted @ 2025-02-08 16:26  krt-wanyi  阅读(52)  评论(0)    收藏  举报