ELK是什么?
ELK是3个开源产品的组合:
- Elasticsearch、
- Logstash
- Kibana
全部由Elastic开发维护。
Elasticsearch是一个基于Lucene搜索引擎的NoSQL数据库。Logstash是一个日志管道工具,接受数据输入,执行数据转换,然后输出数据。Kibana是一个界面层,在Elasticsearch之上工作。另外,ELK栈中还包含称为Beats的日志收集器系列工具。
ELK最常见的使用场景是作为互联网产品的日志系统,当然ELK栈也可用于其他方面,例如:商业智能、大数据分析等。
为什么使用ELK?
ELK栈很受欢迎,因为它功能强大,开源免费,对于SaaS企业和创业公司等规模较小的公司,使用ELK搭建日志系统性价比很高。
Netflix、Facebook、微软(Microsoft)、领英(LinkedIn)和思科(Cisco)也使用ELK监控日志。
为什么使用日志系统?
日志系统记录了系统运行、业务处理的方方面面,在故障排除、业务分析、数据挖掘、大数据分析等方面起着越来越重要的作用。
ELK架构
ELK栈中的各个组件之间相互协作,不需要太多额外的配置,当然对于不同使用场景,架构也会有区别。
对于小型开发环境,通常架构如下:
对于有大量数据的生产环境,可能会在日志体系结构中添加其他部分,例如:提高弹性(添加Kafka、RabbitMQ、Redis)和安全性(添加nginx):