Day28: 今天来聊一下将syslog 资料连线到 Azure Sentinel

规划syslog连接器

我们可以使用适合的Linux Log Analytics Agent,从以Linux为基础、支援 Syslog的机器或设备

将事件串流至Azure Sentinel。只要是可直接在主机上安装Log Analytics Agent的任何装置,

执行此串流作业。主机的原生Syslog精灵会收集指定类型的本机事件,并将事件转送到本机代理程序

,以串流至Log Analytics WorkSpace。

运作方式

Syslog是通用於Linux的事件记录通讯协定。适用於Linux的Log Analytics Agent,安装在虚拟机器或

设备上之後,安装後会设定本机 Syslog精灵,以将讯息转送至TCP Port 25224上的Agent。然後Agent

会透过HTTPS将讯息传送到Log Analytics WorkSpace,并剖析成Syslog资料表中的事件记录项目,资料表

位於[Azure Sentinel]>[记录]。

使用 syslog 从以 Linux 为基础的来源收集资料

检视连接器页面:

1.选取[资料连接器]页面。

2.选取[Syslog] 。

3.然後在预览窗格上选取[开启连接器]页面。

4.验证有必要条件所述的适当权限。

5.选取[选择安装代理程序的位置]选项以展开指示。

https://ithelp.ithome.com.tw/upload/images/20211012/201121829ZIqLSpGrh.png

针对 Azure Linux VM:

若要在 Azure Linux虚拟机器上安装代理程序:

1.在Azure Linux虚拟机器上安装代理程序。

2.选取连结以下载及安装Azure Linux虚拟机器代理程序。

3.在Linux VM的资料列上选取 [连线]。

https://ithelp.ithome.com.tw/upload/images/20211012/20112182eICoU1EmcR.png

设定Log Analytics代理程序

Log Analytics Linux 代理程序只会收集具有其设定中指定之设备和严重性的事件。

可以在Log Analytics工作区的[进阶设定] 中新增设备。

1.请存取 Log Analytics 工作区的 [进阶设定] 页面:

-从[Syslog 资料连接器]页面,选取[开启工作区进阶设定组态]。

-从Azure Sentinel入口网站,选取[设定]区域中的[设定]。在 [设定] 区域中选取 [进阶设定]。

2.选取[资料]。

3.选取[Syslog] 。

4.选取[将下列设定套用到我的电脑]选项。

5.输入设备名称,并选取每个设备的 +。

https://ithelp.ithome.com.tw/upload/images/20211012/20112182INBaGSuMG2.png

使用KQL 剖析syslog资料

Syslog收集器会将记录资料写入Syslog资料表。和 CEF收集器的差异之一是,讯息资料

会储存在名为SyslogMessage的字串栏位中。常见事件格式(CEF)连接器会将已剖析的

栏位写入 CommonSecurityLog。若为Syslog,会需要在每个使用Syslog资料表的查询

上剖析栏位,或写入剖析器。剖析器是一种KQL函式,将查询以函式的形式储存,接着会参考

函式名称。参考函式名称就像存取任何其他资料表一样。藉由建立剖析,只需要写入一次

SyslogMessage 剖析。

在[记录] 视窗中,建立查询、选取 [储存] 按钮,然後从下拉式功能表中选取 [函式]。

接着指定函式名称和别名。在此情况下,我们建立名为 MyParser 的函式,就可以使用名称

MyParser 来存取资料表。

Syslog
| where ProcessName contains "squid"
| extend URL = extract("(([A-Z]+ [a-z]{4,5}:\\/\\/)|[A-Z]+ )([^ :]*)",3,SyslogMessage), 
         SourceIP = extract("([0-9]+ )(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}))",2,SyslogMessage), 
         Status = extract("(TCP_(([A-Z]+)(_[A-Z]+)*)|UDP_(([A-Z]+)(_[A-Z]+)*))",1,SyslogMessage), 
         HTTP_Status_Code = extract("(TCP_(([A-Z]+)(_[A-Z]+)*)|UDP_(([A-Z]+)(_[A-Z]+)*))/([0-9]{3})",8,SyslogMessage),
         User = extract("(CONNECT |GET )([^ ]* )([^ ]+)",3,SyslogMessage),
         RemotePort = extract("(CONNECT |GET )([^ ]*)(:)([0-9]*)",4,SyslogMessage),
         Domain = extract("(([A-Z]+ [a-z]{4,5}:\\/\\/)|[A-Z]+ )([^ :\\/]*)",3,SyslogMessage)
| extend TLD = extract("\\.[a-z]*$",0,Domain)

<<:  程序中出现问号(?)跟冒号(:),这是什麽表达方式?

>>:  制作响应式网站-30天学会HTML+CSS,制作精美网站

Day 10 : 机器学习大杂烩

机器学习可以分为四大类 监督式学习 Supervised Learning 非监督式学习 Unsup...

第13天~

转场动画-老师说也不要花太多时间 一样先通通关掉+第3个 建activity_main.xml的bu...

如何替 RxJS 撰写测试 - 一般测试与弹珠图测试方法

今天我们来聊聊如何撰写测试程序来确保写出来的 RxJS 如我们所想的一般运作,也就是撰写测试程序码!...

第21天 - 来试着做一个简易购物系统(5),统计购物车价格

延续昨天的构想,今天来试试看能否成功。 昨天的构想好像有点错误,因为购物车只会有1台,且纪录是暂时的...

[经典回顾]知名通讯软件过度存取用户资讯事件

老议题+最近新闻 厂商的说法 iOS系统为App开发者提供相簿更新通知标准能力,相簿发生内容更新时会...