背景

目前,阿里云态势感知与日志服务打通,对外开放平台依赖或者产生的日志,包括网络、主机、安全三大类共14种子类日志。提供近实时的日志自动采集存储、并提供基于日志服务的查询分析、报表报警、下游计算对接与投递的能力。

本文介绍如何在态势感知控制台日志中的日志分析功能。

选择特定类型的日志,即可对采集到的日志数据进行实时查询与分析、查看或编辑仪表盘、设置监控告警等。

操作步骤

  1. 登录态势感知控制台,在左侧导航栏中选择 日志分析 ,进入 日志分析 页面。
  2. 选择您需要查看的日志类型,确认右侧的 状态 为开启。
  3. 单击 日志分析

当前页面内嵌了日志服务的查询分析页面,系统会自动为您输入查询语句,选择特定的日志类型的主题,如__topic__: aegis-log-process, 查看安全告警的日志数据。

图 1. 日志分析

  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.com404的日志。例如:

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

字段查询

日志服务支持基于字段进行更精准的查询。

可实现数值类型字段的比较,格式为字段:值字段>=值,通过andor等进行组合。也可以和全文搜索组合使用,同样通过andor组合。

态势感知的个个字段同样可以基于字段查询,各个字段的含义、类型、格式等信息请查看态势感知日志字段。

示例:

  • 查询多字段

搜索所有严重的安全报警的日志:

__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__区分的。

    • 示例中用的字段levelwarn_typeip等都是态势感知日志特定日志类型的字段,详细的字段列表和信息,可以参考态势感知日志字段。
  • 查询数值字段

搜索所有响应时间超过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_unixtimenow()获取的时间转化为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第一个参数提供更多其他单位进行对齐,包括secondminiutehourweekmonthyear等,函数说明请参考日期和时间函数。

图 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_parsedate_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):

实时分析态势感知大数据日志相关推荐

  1. 态势感知大数据安全重要一环,实时日志分析上线!

    背景 网络信息安全形势 信息时代越来越发达,黑客或者恶意员工攻击系统.盗取数据的利益也越来越大.然而单点单面的防护已经无法有效的降低系统安全.数据泄露的风险了. 2018年,网络信息安全形势愈加严峻, ...

  2. 小白玩大数据日志分析系统经典入门实操篇FileBeat+ElasticSearch+Kibana 实时日志系统搭建从入门到放弃

    大数据实时日志系统搭建 距离全链路跟踪分析系统第二个迭代已经有一小阵子了,由于在项目中主要在写ES查询\Storm Bolt逻辑,都没有去搭建实时日志分析系统,全链路跟踪分析系统采用的开源产品组合为F ...

  3. 北京阿里云ACE态势感知大屏体验黑客攻击与防御

    活动介绍 拟定2018年12月25日晚自习19:00,在308实验室, 1小时时间: 带领同学们亲自操作体验下阿里云真正的企业应用如何部署: 部署现在最流行的态势感知监控大屏:让同学们真实的操作一下黑 ...

  4. 大数据日志分析项目架构

    老是弹出由于您编辑时间过长,页面和服务器之间的连接已断开,请先将文章内容另外保存,再刷新本页面继续编辑让我保存页面我也是醉了,图片多没法一次上传,上传图片还一直失败,我只好都放在一个附件里面了.阿里能 ...

  5. 大数据-日志接收处理

    文章目录 网站日志分析系统 1.数据收集:JS埋点 2.日志数据的提交方式 3.在哪里发起Get请求? 4.系统架构设计 5. 运行jt-logserver 5.1 Idea中打开项目 5.2 查看t ...

  6. java大数据日志分析与可视化设计

    伴随着大数据科技的发展和成熟,越来越多的企业和机构使用大数据来进行分析和决策.其主要的分析数据来源于日志文件,所以对日志文件的分析是很重要的也是很关键的步骤. 本系统实现的功能是,将日志信息生成.日志 ...

  7. 大数据日志分析系统-hdfs日志存储

    先补充spark的博客链接,没在目录显示 hdfs简介: Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统. 项目需求: 使用 ...

  8. 电商大数据日志收集系统之EFK

    背景 日志管理的挑战: 关注点很多,任何一个点都有可能引起问题 日志分散在很多机器,出了问题时,才发现日志被删了 很多运维人员是消防员,哪里有问题去哪里 集中化日志管理思路: 日志收集 -->格 ...

  9. python 分析大数据日志_大数据Web日志分析 用Hadoop统计KPI指标实例

    可以带着下面问题来阅读文章 问题: 1.MapReduce在日志分析的作用 思考: 该如何架构kpi系统,需要考虑什么问题. kpi:关键绩效指标法,即KPI绩效考核,是企业绩效考核的方法之一,其特点 ...

最新文章

  1. Java Jdbc减少交互提升批量处理性能,到底该如何优化才好?
  2. selenium+python面试题目总结,完整度80%,看看你会多少?
  3. hibenate.hbm2ddl.auto属性详解
  4. Feign客户端 - 超时时间配置
  5. cobbler 配置(转载)
  6. linux下添加服务,Linux下添加服务
  7. Linux 下 nginx反向代理与负载均衡
  8. 企业微信_获取access_token
  9. 为iPhone 12上市做准备,台积电月底前投产A14 Bionic芯片
  10. MariaDB数据库介绍之一、备份(mysqldump、lvm2快照、xtrabackup)
  11. 如何在 Ubuntu 14.04 里面配置 chroot 环境
  12. 【Oracle】解锁用户
  13. 【期权机理与python实践】
  14. 那些年,我了解过的医疗器械(偏影像方向)公司 (2017.03.24 Updating...)
  15. Linux中RAID与LVM磁盘列阵技术的使用
  16. 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构
  17. thzvv.com forum php,为什么Naver账号不能用了?
  18. 十月,再见;你好,十一月
  19. libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4.13) 但是 1.0.2n-1ubuntu5.1 正要被安装
  20. php下载pdf文件不全,关于php:Zip PDF文件下载无效

热门文章

  1. phoenix 开发API系列(二)phoenix 各类 api 实现方式
  2. Windows上安装HADOOP单机伪分布式集群
  3. PHP编译过程中常见错误信息的解决方法
  4. MultiRow发现之旅(一)- 高效模板设计器
  5. linux学习笔记(一):查看系统、硬件信息
  6. P2P中DHT网络原理
  7. 学用 ASP.Net 之 字符串 (2): string.Format
  8. 2006年大话IT数码新潮
  9. 什么是TensorFlow?
  10. BZOJ-1864-[Zjoi2006]三色二叉树(树形dp)