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);*/
}
}