您好,登錄后才能下訂單哦!
本次升級并沒有增加新的告警,而是增加了業務日志分析,協議用的是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();
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。