如何实现自动化运维自动化运维之日志统一管理.docx

上传人:b****1 文档编号:614486 上传时间:2022-10-11 格式:DOCX 页数:8 大小:20.75KB
下载 相关 举报
如何实现自动化运维自动化运维之日志统一管理.docx_第1页
第1页 / 共8页
如何实现自动化运维自动化运维之日志统一管理.docx_第2页
第2页 / 共8页
如何实现自动化运维自动化运维之日志统一管理.docx_第3页
第3页 / 共8页
如何实现自动化运维自动化运维之日志统一管理.docx_第4页
第4页 / 共8页
如何实现自动化运维自动化运维之日志统一管理.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

如何实现自动化运维自动化运维之日志统一管理.docx

《如何实现自动化运维自动化运维之日志统一管理.docx》由会员分享,可在线阅读,更多相关《如何实现自动化运维自动化运维之日志统一管理.docx(8页珍藏版)》请在冰豆网上搜索。

如何实现自动化运维自动化运维之日志统一管理.docx

如何实现自动化运维自动化运维之日志统一管理

如何实现自动化运维?

自动化运维之日志统一管理

一、日志收集及告警项目背景

近来安全测试项目较少,想着把安全设备、nginx日志收集起来并告警,话不多说,直接说重点,搭建背景:

1.日志源:

安全设备日志(ImpervaWAF、绿盟WAF、paloalto防火墙)、nginx日志等;

2.日志分析开源软件:

ELK,告警插件:

Sentinl或elastalert,告警方式:

钉钉和邮件;

3.安全设备日志->logstash->es,nginx日志由于其他部门已有一份(flume->kafka)我们通过kafka->logstash->es再输出一份,其中logstash的正则过滤规则需要配置正确,不然比较消耗性能,建议写之前使用grokdebug先测试好再放入配置文件;

4.搭建系统:

centos7,JDK1.8,Python2.7

5.ELK统一版本为5.5.2

由于es和kibana的安装都比较简单,就不在下文中说明安装及配置方法了。

相关软件的下载链接如下:

Es:

https:

//artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz

Kibana:

 https:

//artifacts.elastic.co/downloads/kibana/kibana-5.5.2-linux-x86_64.tar.gz

Logstash:

 https:

//artifacts.elastic.co/downloads/logstash/logstash-5.5.2.tar.gz

测试链接Grokdebug:

http:

//grokdebug.herokuapp

二、安全设备日志收集

2.1ImpervaWAF配置

策略->操作集->新增日志告警规则

 

我这边没有用设备自身的一些日志规则,而是根据手册自定义了一些需要的日志字段,可在自定义策略的消息填入如下字段:

StartTime=$!

{Alert.createTime}AlarmID=$!

{Alert.dn}EventID=$!

{Event.dn}  AggregationInfo=$!

{Alert.aggregationInfo.occurrences}Alert_level=$!

{Alert.severity}  RuleName=$!

{Alert.alertMetadata.alertName}Category=$!

{Alert.alertType}  Alert_description=$!

{Alert.description}EventType=$!

{Event.eventType}  PolicyName=$!

{Rule.parent.displayName}SrcIP=$!

{Event.sourceInfo.sourceIp}  SrcPort=$!

{Event.sourceInfo.sourcePort}Proto=$!

{Event.sourceInfo.ipProtocol}  DstIP=$!

{Event.destInfo.serverIp}DstPort=$!

{Event.destInfo.serverPort}  WebMethod=$!

{Event.struct.httpRequest.url.method}Domain=$!

{Alert.serverGroupName}  URL=$!

{Event.struct.httpRequest.url.path}ResponseCode=$!

{Event.struct.httpResponse.responseCode}Alert_key=$!

{Event.struct.httpRequest.url.queryString}Action=$!

{Alert.immediateAction}  ResponseTime=$!

{Event.struct.responseTime}ResponseSize=$!

{Event.struct.responseSize}  Headers_value=$!

{Event.struct.httpRequest.headers.value}Parameters_value=$!

{Event.struct.httpRequest.parameters.value}

参数说明:

告警开始时间、告警ID、事件ID、事情数量、告警级别….HTTP返回码、触发告警字符串、响应动作、响应时间、响应大小、http包头的值,中间省略的部分请自行查看手册。

其实ImpervaWAF的总日志字段数不少于一两百个,单从这一点可以看出确实好于国产WAF太多。

针对ImpervaWAF的logstash配置如下:

input{   syslog{   type=>"syslog"   port=>514    }  }  filter{  grok {  match=>["message","%{GREEDYDATA:

StartTime}AlarmID=%{NUMBER:

AlarmID}  EventID=%{NUMBER:

EventID}AggregationInfo=%{NUMBER:

AggregationInfo}  Alert_level=%{DATA:

Alert_level}RuleName=%{GREEDYDATA:

RuleName}  Category=%{GREEDYDATA:

Category}Alert_description=%{GREEDYDATA:

Alert_description}  EventType=%{DATA:

EventType}PolicyName=%{GREEDYDATA:

PolicyName}SrcIP=%{IPV4:

SrcIP}  SrcPort=%{NUMBER:

SrcPort}Proto=%{DATA:

Proto}DstIP=%{IPV4:

DstIP}  DstPort=%{NUMBER:

DstPort}WebMethod=%{GREEDYDATA:

WebMethod}  Domain=%{DATA:

Domain}URL=%{GREEDYDATA:

URL}  ResponseCode=%{GREEDYDATA:

ResponseCode}Alert_key=%{GREEDYDATA:

Alert_key}  Action=%{DATA:

Action}ResponseTime=%{GREEDYDATA:

ResponseTime}  ResponseSize=%{GREEDYDATA:

ResponseSize}Headers_value=%{GREEDYDATA:

Headers_value}Parameters_value=%{GREEDYDATA:

Parameters_value}"]   #实际复制粘贴可能会有点格式问题,注意参数之间空一个空格即可   remove_field=>["message"]  }  geoip{   source=>"SrcIP" #IP归属地解析插件   }  }  output{   elasticsearch{    hosts=>"es单机或集群地址:

9200"      index=>"impervasyslog"   }   }

说明:

其中geoip为elk自带插件,可以解析ip归属地,比如ip归属的国家及城市,在仪表盘配置“地图炮”装X、查看攻击源地理位置的时候有点用,

2.2绿盟WAF配置

日志报表->日志管理配置->Syslog配置">针对绿盟WAF的logstash配置如下:

input和output参照impervawaf,贴出最要的grok部分,如下:

grok {    match=>["message",%{DATA:

syslog_flag} site_id:

%{NUMBER:

site_id}  protect_id:

%{NUMBER:

protect_id} dst_ip:

%{IPV4:

dst_ip} dst_port:

%{NUMBER:

dst_port}  src_ip:

%{IPV4:

src_ip}src_port:

%{NUMBER:

src_port}method:

%{DATA:

method}  domain:

%{DATA:

domain} uri:

%{DATA:

uri} alertlevel:

%{DATA:

alert_level}  event_type:

%{DATA:

Attack_types}stat_time:

%{GREEDYDATA:

stat_time}  policy_id:

%{NUMBER:

policy_id}rule_id:

%{NUMBER:

rule_id} action:

%{DATA:

action}  block:

%{DATA:

block}block_info:

%{DATA:

block_info} http:

%{GREEDYDATA:

URL}

2.3paloalto防火墙配置

(6.1版本,其他版本可能会有点差异)

新建syslog服务器->日志转发,具体看截图

 

针对PA的logstash配置如下:

input和output参照impervawaf,贴出最要的grok部分,如下:

grok {    match=>["message","%{DATA:

PA_Name},%{GREEDYDATA:

Time},%{NUMBER:

Eventid},%{DATA:

Category},%{DATA:

Subcategory},%{NUMBER:

NULL},%{GREEDYDATA:

Generate_Time},%{IPV4:

SourceIP},%{IPV4:

DestinationIP},%{IPV4:

NAT_SourceIP},%{IPV4:

NAT_DestinationIP},%{DATA:

RuleName},%{DATA:

SourceUser},%{DATA:

DestinationUser},%{DATA:

Application},%{DATA:

VMsys},%{DATA:

SourceZone},%{DATA:

DestinationZone},%{DATA:

IN_interface},%{DATA:

OUT_interface},%{DATA:

Syslog},%{DATA:

GREEDYDATA:

TimeTwo},%{NUMBER:

SessionID},%{NUMBER:

Repeat},%{NUMBER:

SourcePort},%{NUMBER:

DestinationPort},%{NUMBER:

NAT-SourcePort},%{NUMBER:

NAT-DestinationPort},%{DATA:

Flag},%{DATA:

Proto},%{DATA:

Action},%{DATA:

NUll2},%{DATA:

ThreatName},%{DATA:

Category2},%{DATA:

Priority},%{DATA:

Direction},%{NUMBER:

Serialnum},%{GREEDYDATA:

NULL3}"]

贴两张最终的效果图:

 

三、Nginx日志收集

由于nginx日志已经被其他大数据部门收集过一遍了,为避免重复读取,我们从其他部门的kafka拉取过来即可,这里说一下nginx收集的方式,f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1