seci-log 1.05 发布,日志分析增加业务系统日志

本次升级并没有增加新的告警,而是增加了业务日志分析,协议用的是udp 514端口,和syslog公用一个端口;由于业务日志五花八门要想进行适配和分析,必须先定好格式。下面详细介绍一下日志的格式,关键内容是以空格作为区分,属性和值是用等号进行分开的,整个日志中secisland business log 这三个字母是必须有的,其他字段都可以没有,但为了审计和分析的准确性,建议能加的都加上。格式示例如下:

secisland business log time="2015-04-26 15:42:34" user="zhang san" type=loginin biz="oa" model="web" srcip=192.168.1.1 srcport=442 srcprocess="ie" host=oa1 hostip=192.168.1.1 hostport=80 result=success protocol=http httpurl="http://aaa/login" desc="test aa"

字段                                  内容           备注

secisland business log 固定值 表示seci-log可以识别的业务日志标志。

time                           时间          时间格式是固定的年-月-日 时:分:秒,需要两头加双引号

user                                 用户名 需要加双引号

type                                 时间类型 可以任意,loginin和loginout这两个是系统内置的,当是这两个的时候可以产生登录类的告警。

biz                                 业务系统 业务系统名称,加双引号

model                            模块名 加双引号

srcip                                 源ip

srcport                        源端口

srcprocess                源进程名 加双引号

host                                主机名

hostip                        业务ip

hostport                        业务端口

result                        结果

protocol                           协议

httpurl                          http url 加双引号

desc                                 描述 加双引号


代码示例

列出了目前最主流的java和c#的的两个udp客户端代码的示例,其他语言类似的:

java

public  static  void  sendSyslog(String address,  int  port, String message)  throws  UnknownHostException,IOException {
         DatagramSocket socket =  new  DatagramSocket();
         InetAddress client = InetAddress.getByName(address);
         byte [] buffer = message.getBytes();
         DatagramPacket packet =  new  DatagramPacket(buffer, buffer.length, client, port);
         socket.send(packet);
         socket.close();
     }

c#

  public  static  void  sendSyslog( string  address,  int  port,  string  message)
         {
             byte [] data =  new  byte [1024];
             IPEndPoint ipep =  new  IPEndPoint(IPAddress.Parse(address), port);
             Socket server =  new  Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
             data = Encoding.ASCII.GetBytes(message);
             server.SendTo(data, data.Length, SocketFlags.None, ipep);
             server.Close();            
         }


204426_C1eP_247205.png

你可能感兴趣的:(日志分析,安全,secisland,seci-log)