安全日志收集与分析——抢先体验阿里云 ElasticSearch

10月13日,云栖大会上阿里云与Elastic公司联合发布阿里云Elasticsearch产品。根据官方介绍,阿里云提供基于开源Elasticsearch及商业版X-Pack插件,致力于数据分析、数据搜索等场景服务。在开源Elasticsearch基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。

Elasticsearch(ES)是中小企业安全日志分析的必备工具。团队在获得试用资格后,随即开展了产品试用工作,抢先体验这款“新产品”。

申请开通服务

访问网址:https://data.aliyun.com/product/elasticsearch,直接购买。或参考官方指导手册:https://help.aliyun.com/document_detail/57876.html

在服务购买界面,选择 ES 实例相关的网络基础信息,包括:

  • 地域(目前华东1和华北2提供)
  • 版本(5.5.3 with X-Pack)
  • 网络类型(专有网络VPC)
  • 具体专有网络(VPC必须与 ES 在同一个区域)
  • 虚拟交换机(需要在 VPC 网络中提前配置好虚拟交换机)
  • 实例规格(1核2G 到16核64G)
  • 存储空间(20GB或以上)
  • 节点数(2个或以上)

安全日志收集与分析——抢先体验阿里云 ElasticSearch

服务开通后,在阿里云控制台可以看到实例具体信息。首次使用有个初始化的过程,需要等待,直到服务状态为“正常”。
安全日志收集与分析——抢先体验阿里云 ElasticSearch

以上图为例,ECS 在 VPC 内部的地址是:es-cn-v0h0c7flq001yfx70.elasticsearch.aliyuncs.com,也可以通过 ping 获取到ES服务器的IP 地址,取决于虚拟交换机上的 IP 地址规划。

重点配置项

首次使用ES,请通过阿里云控制台修改 Kibana 控制台密码。保存配置后,等待 ES 服务器重启生效。

此外,还需要修改 yml 文件配置,设置允许自动创建索引;否则 Logstash 上报日志时,会提示无权创建index。

以上两处修改,都需要重启ES 服务。目前系统不支持一次性修改,所以只能等待两次……

安全日志收集

以下是测试过程中VPC内服务器的基本网络参数哦说明:

  • 操作系统 CentOS1:172.16.0.2
  • Logstash 日志代理:172.16.0.3
  • Elasticsearch 主机:es-cn-v0h0c7flq001yfx70.elasticsearch.aliyuncs.com

操作系统日志收集

以收集和分析CentOS 操作系统日志 syslog 为例,安全团队需要在服务器上先配置好 Syslog参数,让服务器把系统日志发送到 Logstash收集代理。再由 Logstash 对日志进行必要的格式化,统一发送到 Elasticsearch。流程如下图所示:

安全日志收集与分析——抢先体验阿里云 ElasticSearch

在云主机上部署 Logstash

关于 ELK(Elasticsearch、Logstash和Kibana)技术栈相关的基础性问题,可以参考本人早先的几篇技术文章。

以下是一个示例的 Logstash 配置文件,用于收集和格式化syslog 日志,文件名:syslog.conf

input{
    syslog{
        host        => "0.0.0.0"
        port        => 1514
    }
}

filter{
# ....
}

output{
    elasticsearch{
        hosts => "http://es-cn-v0h0c7flq001yfx70.elasticsearch.aliyuncs.com:9200"
        index => "logstash-syslog"
        document_type => "syslog"
        user => "elastic"
        password => "********"
    }
    stdout{ codec => rubydebug }
}
#不建议生产环境使用 elastic 账户做连接。

在 Logstash 日志收集代理服务器上执行命令$LOGSTASH_HOME/bin/logstash - $LOGSTASH_HOME/syslog.conf,启动 Logstash,加载配置文件。

程序启动后将监听1514端口,接收远程主机发送的 syslog 日志。通过Logstash控制台可以看到程序过程中的各种状态信息,包括与 ES 的连接状态。

配置 CentOS 的 Syslog 参数

以 root 身份编辑CentOS 服务器系统文件/etc/rsyslog.conf,在文件末尾增加如下内容:

# 将 syslog 日志发送到172.17.0.3的 1514/TCP 端口
*.* @@172.17.0.3:1514  #Logstash Agent的 IP 地址

执行命令systemctl restart rsyslog, 重启 syslog 服务。

开箱即用的ES 控制台 Kibana

以上配置过程已经完成了操作系统syslog和日志收集代理 Logstash的配置,接下来就是通过 Kibana控制台访问 ES 数据库,进行日志的查询和安全分析。

首次使用&初始化

通过阿里云控制台ElasticSearch 主界面,直接点击【访问控制台】,可进入登录界面。首次访问需要创建Index Pattern,如果您是初次使用,建议默认为:logstash-*

安全日志收集与分析——抢先体验阿里云 ElasticSearch

配置完成后,通过左导航栏点选【monitoring】菜单,可以看到 Elasticsearch 服务器的基本运行参数,如下图:

安全日志收集与分析——抢先体验阿里云 ElasticSearch

日志查询

下图是 Kibana 控制台提供的日志查询界面,支持快速字符匹配,也支持基于字段 的查询。如果你喜欢lucence查询语法,也可以按需切换。

安全日志收集与分析——抢先体验阿里云 ElasticSearch

报表定制

安全团队在日常运维过程中,肯定少不了定制一些监控视图或报表来做数据统计、风险展现。阿里云 Elasticsearch 自带的 Kibana 完全能够满足这个需求。

安全日志收集与分析——抢先体验阿里云 ElasticSearch

上图是典型的安全监控视图,包括:账户登录次数排名,远程 IP 地址访问次数排名等。当然还有更过的高级功能,如:Graph 分析、机器学习等,等你来探索!

小总结

本次阿里云发布的Elasticsearch完全兼容ELK架构,适配各种开源组件。如果您的企业已经在用 ELK,可以将数据存储部分直接迁移到阿里云。 原有的日志收集代理 Logstash 仅需重新配置发送目标即可。提供 X-Pack 特性的阿里云ElasticSearch,可以提供免费版所不具备的安全保护和角色管理,让安全日志管理更放心。好吧,更多的重点优势都在下面,我就不啰嗦了:

  • 商业插件X-Pack

    • 提供X-Pack插件功能,为您提供权限管控、集群监控、数据可视化、机器学习等功能
  • 免部署

    • 一键开启服务,并提供“dedicated master”能力
  • 弹性扩容

    • 适应业务发展需求,提供服务不中断前提下的集群弹性扩容能力
  • 数据分析搜索

    • 100%兼容ELK架构,提供Kibana可视化交互式数据分析与搜索能力

阿里云自带的 ElasticSearch,成功解决了企业搭建、运营和维护 ELK 系统的绝大多数成本,安全团队只需要聚焦日志收集和监控分析,从此又可以自废一门功夫了:)

本文作者正在尝试为1000万家云上中小企业打造敏捷型安全团队的建设典范,如果您也感兴趣,欢迎来阿里云 MVP 社区与我交流。

补充阅读:

上一篇:蹭热点,聊聊区块链和加密货币相关的安全问题


下一篇:月饼事件代码