实时分析态势感知大数据日志
背景
目前,阿里云态势感知与日志服务打通,对外开放平台依赖或者产生的日志,包括网络、主机、安全三大类共14种子类日志。提供近实时的日志自动采集存储、并提供基于日志服务的查询分析、报表报警、下游计算对接与投递的能力。
本文介绍如何在态势感知控制台日志中的日志分析功能。
选择特定类型的日志,即可对采集到的日志数据进行实时查询与分析、查看或编辑仪表盘、设置监控告警等。
操作步骤
- 登录态势感知控制台,在左侧导航栏中选择 日志分析 ,进入 日志分析 页面。
- 选择您需要查看的日志类型,确认右侧的 状态 为开启。
- 单击 日志分析 。
当前页面内嵌了日志服务的查询分析页面,系统会自动为您输入查询语句,选择特定的日志类型的主题,如__topic__: aegis-log-process
, 查看安全告警的日志数据。
图 1. 日志分析
- 输入您的查询分析语句,选择日志时间范围后单击查询。
说明 您的态势感知日志的保存时间为180天,180天之前的日志数据会被删除。
图 2. 查询日志
基于查询分析页面,您还可以对查询到的日志数据进行以下操作:
- 自定义查询与分析
日志服务定义了一系列查询语法和分析语法,支持多种复杂场景下的日志查询。详情请参考自定义查询与分析。
- 查看日志的时间分布
搜索框下方展示了符合查询时间和查询语句的日志的时间分布,以时间为横轴、数量为纵轴的柱状图形式展示。并显示查询到的日志总数。
说明:可以在柱状图上滑动以选择更小范围的时间区域,时间选择器
会自动更新为选择的时间范围,并刷新结果。
图 3. 日志的时间分布
- 查看原始日志
原始日志页签中,以分页的形式展示了每一条日志的详细内容,包括时间、内容以及其中的各个字段。您可以对列进行排序、对当前查询结果进行下载,也可以单击齿轮按钮,选择特定的字段进行展示等。
在页面中点击相应字段的值或分词,搜索框中自动输入相应的搜索条件。例如鼠标单击username: root
中的值root,会自动给搜索框加入如下语句:
原来的搜索语句 and username: root
图 4. 原始日志
- 查看分析图表
日志服务支持图表形式展示分析结果,您可以在统计图表页面根据需要选择不同的图表类型。详情请参考分析图表。
图 5. 统计图表
- 快速分析
快速分析功能为您提供一键交互式查询体验,帮助您快速分析某一字段在一段时间内的分布情况,减少索引关键数据的时间成本。详细说明请参考快速分析
图 6. 快速分析
自定义查询分析
日志查询语句由查询语法(Search)和分析语法(Analytics)两个部分组成,中间通过|进行分割:
$Search | $Analytics
类型 | 说明 |
---|---|
查询(Search) |
查询条件,可以由关键词、模糊、数值等、区间范围和组合条件等产生。如果为空或* ,则代表所有数据。
|
分析(Analytics) | 对查询结果或全量数据进行计算和统计。 |
说明: 两部分均为可选,当Search部分为空时代表针对该时间段所有数据不过滤任何条件,直接对结果进行统计。当Analysis部分为空时,代表只返回查询结果,不做统计。
查询语法
日志服务查询语法支持全文查询和字段查询,查询框支持换行显示、语法高亮等功能。
全文查询
不需要指定字段,直接输入关键字查询。可以用双引号("")包裹关键字,多个关键字之间以空格或and分割。
示例:
- 多关键字查询
搜索包含所有www.aliyun.com
和404
的日志。例如:
www.aliyun.com 404
或者:
www.aliyun.com and 404
- 条件查询
这里搜索所有包含www.aliyun.com
并且包含error
或者404
的日志。例如:
www.aliyun.com and (error or 404)
- 前缀查询
这里搜索所有包含www.aliyun.com
并且包含failed_
开头关键字。例如:
www.aliyun.com and failed_*
说明: 查询只支持后缀加*
,不支持前缀*
,如:*error
。
字段查询
日志服务支持基于字段进行更精准的查询。
可实现数值类型字段的比较,格式为字段:值
或字段>=值
,通过and
、or
等进行组合。也可以和全文搜索组合使用,同样通过and
、or
组合。
态势感知的个个字段同样可以基于字段查询,各个字段的含义、类型、格式等信息请查看态势感知日志字段。
示例:
- 查询多字段
搜索所有严重
的安全报警的日志:
__topic__ : sas-security-log and level: serious
如果要搜索某个客户端1.2.3.4
上所有的SSH
登录:可以这样:
__topic__:aegis-log-login and ip:10.117.13.74 and warn_type:SSHLOGIN
说明:
每一条态势感知的日志都有一个字段
__topic
表示主题,态势感知的14中日志,都是通过__topic__
区分的。- 示例中用的字段
level
、warn_type
、ip
等都是态势感知日志特定日志类型的字段,详细的字段列表和信息,可以参考态势感知日志字段。
- 示例中用的字段
- 查询数值字段
搜索所有响应时间超过1秒的本地DNS查询日志:
__topic__:local-dns and time_usecond > 1000000
也支持区间查询,查询响应时间大于1秒且小于等于10秒的本地DNS查询日志:
__topic__:local-dns and time_usecond in [1000000,10000000]
该查询还可以通过以下语句实现:
__topic__:local-dns and time_usecond >= 1000000 and time_usecond <= 10000000
详细的查询语法说明请参考索引与查询。
分析语法
您可以使用SQL/92语法对日志数据进行分析与统计,日志服务支持的语法与函数请查看实时分析简介。
说明:
- 分析语句中可以省略SQL标准语法中的from 表格名语句,即from log。
- 日志数据默认返回前100条,您可以通过LIMIT语法修改返回范围。
基于日志时间的查询分析
每一条态势感知的日志都有一个内置字段:__time__
,表示这条日志的时间,以便在统计时进行基于时间的计算。其格式为 Unix时间戳,本质是一个自从1970-1-1 0:0:0 UTC时间开始的累计过去的秒数。因此实际使用时,经过可选的计算后,需要格式化才可以展示。
- 选择并展示时间
这里在特定时间范围内,选择ip为1.2.3.4
的最新10条登录日志,展示其中时间、来源IP以及登录类型:
__topic__: aegis-log-login and ip: 1.2.3.4| select date_format(__time__, '%Y-%m-%d %H:%i:%s') as time, warn_ip, warn_type order by __time__ desc limit 10
图 7. 选择并展示时间
- 计算时间
查询登录过后的天数,可以使用 __time__
进行计算:
__topic__: aegis-log-login and ip: 1.2.3.4| select date_format(__time__, '%Y-%m-%d %H:%i:%s') as time, warn_ip, warn_type ,round((to_unixtime(now()) - __time__)/86400,1) as "days_passed"order by __time__ desc limit 10
说明: 这里使用round((to_unixtime(now()) - __time__)/86400, 1)
,先用to_unixtime
将now()
获取的时间转化为Unix时间戳,再与内置时间字段__time__
相减,获得已经过去的时间秒数。最后除以86400,即一天的总秒数,再用函数round(data, 1)
圆整为小数点后1位数的值,可得出每条攻击日志距离现在已经过去了几天。
图 8. 查询结果
- 基于特定时间分组统计
如果想知道特定时间范围内,某个设备的登录趋势如何,使用如下SQL:
__topic__: aegis-log-login and ip: 1.2.3.4
| select date_trunc('day', __time__) as dt,count(1) as PVgroup by dtorder by dt
说明: 这里使用内置时间字段__time__
,传给函数date_trunc('day', ..)
进行时间按天对齐,将每条日志分组到了其所属的天的分区中进行统计总数(count(1)),并按照分区时间块排序。函数date_trunc
第一个参数提供更多其他单位进行对齐,包括second
、miniute
、hour
、week
、month
、year
等,函数说明请参考日期和时间函数。
图 9. 统计结果
折线图方式展示:图 10. 折线图
- 基于时间分组统计
如果想知道更灵活的分组下时间规律,例如整个账户下设备每5分钟的登录趋势,需要进行数学计算。可以使用如下SQL:
__topic__: aegis-log-login
| select from_unixtime(__time__ - __time__% 300) as dt,count(1) as PVgroup by dtorder by dtlimit 1000
说明: 使用计算的内置时间字段计算__time__ - __time__% 300
,同时使用函数from_unixtime
进行格式化,将每条日志分组到了一个5分钟(300秒)的分区中进行统计总数(count(1)
),并按照分区时间块排序,获得前1000条,相当于选择时间内的前83小时的数据。
图 11. 时间分组统计结果
折线图方式展示:图 12. 折线图
更多关于时间解析的函数,例如将一个时间格式转化为另外一个格式,需要使用 date_parse
与 date_format
,函数说明请参考日期和时间函数。
基于客户端IP的查询分析
态势感知日志中有反映客户端IP的字段,如登录日志的登录源IP字段warn_ip
。
- 登录源国家分布
这里对某个设备登录的来源国家分布:
__topic__: aegis-log-login and uuid: 12344567
| SELECT ip_to_country(warn_ip) as country,count(1) as "登录次数"group by country
说明: 这里先用函数ip_to_country
得到这个登录源IPwarn_ip
对应的国家信息。
图 13. 登录源国家分布-分析结果
世界地图方式展示:图 14. 世界地图
- 登录者省份分布
如果您希望获得更详细的基于省份的分布,可以使用函数 ip_to_province
,例如:
__topic__: aegis-log-login and uuid: 12344567
| SELECT ip_to_province(warn_ip) as province,count(1) as "登录次数"group by province
说明: 这里使用了另外一个IP函数ip_to_province
来获得一个IP的所属省份。如果是中国以外的IP地址,依然会尝试转化为其国家所属省份(州),但在选择中国地图展示时,会无法展示出来。
图 15. 登录者省份分布-分析结果
中国地图方式展示:图 16. 中国地图
- 登陆者热力分布
如果期望获得一张登录者的热力图,可以使用另外一个函数ip_to_geo
,例如:
__topic__: aegis-log-login and uuid: 12344567
| SELECT ip_to_geo(warn_ip) as geo,count(1) as "登录次数"group by geolimit 10000
说明 : 这里使用了另外一个IP函数ip_to_geo
来获得一个IP的所在经纬度,并获取前1万条。
图 17. 登陆者热力分布-分析结果
高德地图方式展示:图 18. 高德地图
基于IP的更多解析功能,例如获得IP所属运营商 ip_to_provider
、判断IP是内网还是外网 ip_to_domain
等,可以参考IP地理函数。
进一步参考
进一步参考相关最佳实践:
- 阿里云态势感知 - 简介
- 阿里云态势感知 - 配置实时日志
- 阿里云态势感知 - 查询分析日志
- 阿里云态势感知 - 查看内置报表
- 阿里云态势感知 - 导出日志
- 扫码加入官方钉钉群 (11775223):
实时分析态势感知大数据日志相关推荐
- 态势感知大数据安全重要一环,实时日志分析上线!
背景 网络信息安全形势 信息时代越来越发达,黑客或者恶意员工攻击系统.盗取数据的利益也越来越大.然而单点单面的防护已经无法有效的降低系统安全.数据泄露的风险了. 2018年,网络信息安全形势愈加严峻, ...
- 小白玩大数据日志分析系统经典入门实操篇FileBeat+ElasticSearch+Kibana 实时日志系统搭建从入门到放弃
大数据实时日志系统搭建 距离全链路跟踪分析系统第二个迭代已经有一小阵子了,由于在项目中主要在写ES查询\Storm Bolt逻辑,都没有去搭建实时日志分析系统,全链路跟踪分析系统采用的开源产品组合为F ...
- 北京阿里云ACE态势感知大屏体验黑客攻击与防御
活动介绍 拟定2018年12月25日晚自习19:00,在308实验室, 1小时时间: 带领同学们亲自操作体验下阿里云真正的企业应用如何部署: 部署现在最流行的态势感知监控大屏:让同学们真实的操作一下黑 ...
- 大数据日志分析项目架构
老是弹出由于您编辑时间过长,页面和服务器之间的连接已断开,请先将文章内容另外保存,再刷新本页面继续编辑让我保存页面我也是醉了,图片多没法一次上传,上传图片还一直失败,我只好都放在一个附件里面了.阿里能 ...
- 大数据-日志接收处理
文章目录 网站日志分析系统 1.数据收集:JS埋点 2.日志数据的提交方式 3.在哪里发起Get请求? 4.系统架构设计 5. 运行jt-logserver 5.1 Idea中打开项目 5.2 查看t ...
- java大数据日志分析与可视化设计
伴随着大数据科技的发展和成熟,越来越多的企业和机构使用大数据来进行分析和决策.其主要的分析数据来源于日志文件,所以对日志文件的分析是很重要的也是很关键的步骤. 本系统实现的功能是,将日志信息生成.日志 ...
- 大数据日志分析系统-hdfs日志存储
先补充spark的博客链接,没在目录显示 hdfs简介: Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统. 项目需求: 使用 ...
- 电商大数据日志收集系统之EFK
背景 日志管理的挑战: 关注点很多,任何一个点都有可能引起问题 日志分散在很多机器,出了问题时,才发现日志被删了 很多运维人员是消防员,哪里有问题去哪里 集中化日志管理思路: 日志收集 -->格 ...
- python 分析大数据日志_大数据Web日志分析 用Hadoop统计KPI指标实例
可以带着下面问题来阅读文章 问题: 1.MapReduce在日志分析的作用 思考: 该如何架构kpi系统,需要考虑什么问题. kpi:关键绩效指标法,即KPI绩效考核,是企业绩效考核的方法之一,其特点 ...
最新文章
- Java Jdbc减少交互提升批量处理性能,到底该如何优化才好?
- selenium+python面试题目总结,完整度80%,看看你会多少?
- hibenate.hbm2ddl.auto属性详解
- Feign客户端 - 超时时间配置
- cobbler 配置(转载)
- linux下添加服务,Linux下添加服务
- Linux 下 nginx反向代理与负载均衡
- 企业微信_获取access_token
- 为iPhone 12上市做准备,台积电月底前投产A14 Bionic芯片
- MariaDB数据库介绍之一、备份(mysqldump、lvm2快照、xtrabackup)
- 如何在 Ubuntu 14.04 里面配置 chroot 环境
- 【Oracle】解锁用户
- 【期权机理与python实践】
- 那些年,我了解过的医疗器械(偏影像方向)公司 (2017.03.24 Updating...)
- Linux中RAID与LVM磁盘列阵技术的使用
- 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构
- thzvv.com forum php,为什么Naver账号不能用了?
- 十月,再见;你好,十一月
- libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4.13) 但是 1.0.2n-1ubuntu5.1 正要被安装
- php下载pdf文件不全,关于php:Zip PDF文件下载无效