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个或以上)
服务开通后,在阿里云控制台可以看到实例具体信息。首次使用有个初始化的过程,需要等待,直到服务状态为“正常”。
以上图为例,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。流程如下图所示:
在云主机上部署 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-*
。
配置完成后,通过左导航栏点选【monitoring】菜单,可以看到 Elasticsearch 服务器的基本运行参数,如下图:
日志查询
下图是 Kibana 控制台提供的日志查询界面,支持快速字符匹配,也支持基于字段 的查询。如果你喜欢lucence查询语法,也可以按需切换。
报表定制
安全团队在日常运维过程中,肯定少不了定制一些监控视图或报表来做数据统计、风险展现。阿里云 Elasticsearch 自带的 Kibana 完全能够满足这个需求。
上图是典型的安全监控视图,包括:账户登录次数排名,远程 IP 地址访问次数排名等。当然还有更过的高级功能,如:Graph 分析、机器学习等,等你来探索!
小总结
本次阿里云发布的Elasticsearch完全兼容ELK架构,适配各种开源组件。如果您的企业已经在用 ELK,可以将数据存储部分直接迁移到阿里云。 原有的日志收集代理 Logstash 仅需重新配置发送目标即可。提供 X-Pack 特性的阿里云ElasticSearch,可以提供免费版所不具备的安全保护和角色管理,让安全日志管理更放心。好吧,更多的重点优势都在下面,我就不啰嗦了:
-
商业插件X-Pack
- 提供X-Pack插件功能,为您提供权限管控、集群监控、数据可视化、机器学习等功能
-
免部署
- 一键开启服务,并提供“dedicated master”能力
-
弹性扩容
- 适应业务发展需求,提供服务不中断前提下的集群弹性扩容能力
-
数据分析搜索
- 100%兼容ELK架构,提供Kibana可视化交互式数据分析与搜索能力
阿里云自带的 ElasticSearch,成功解决了企业搭建、运营和维护 ELK 系统的绝大多数成本,安全团队只需要聚焦日志收集和监控分析,从此又可以自废一门功夫了:)
本文作者正在尝试为1000万家云上中小企业打造敏捷型安全团队的建设典范,如果您也感兴趣,欢迎来阿里云 MVP 社区与我交流。
补充阅读: