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

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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 @   krt-wanyi  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示