概述
本文将简单介绍运维数据分析系统 Elastic Stack,并描述其基础部署过程。
简介
ELK(Elasticsearch + Logstash + Kibana)用于日志集中分析系统,Elasticsearch 用于存储、搜索、分析数据,Logstash 用于接收并处理数据,Kibana 提供 Web UI 管理数据,客户端通过 Logstash-Forwarder 将指定的日志数据传递数据给 ELK 系统,大体流程如下图:
后来Elastic 团队收购了 Packetbeat 团队,就建立了 Beat,Beat 是一个轻量级的数据收集平台,可以将不同的数据发送 ELK 系统,例如日志、网络数据、系统信息等等。Elastic 团队在命名时最终将 ELK + Beat 命名为 Elastic Stack,并将整个产品线的版本提升至 5.0。
之前使用 ELK 时,几个产品的版本需要对应,例如使用 Elasticsearch 1.6,Logstash 1.5,Kibana 4.1,如果版本没有正确对应,将可能导致无法正常运行。目前 Elastic 团队已将整体产品线都提升到 5.0(Kibana 已经到 4 了),这样在部署系统时免去了操心版本对应的事情。
Elastic Stack (之后简称 ES)已经不单单用于分析日志,Beat 可以代理更多类型的数据输出,Beat 可以直接输出数据至 Elasticsearch,也可输出数据给 Logstash,再由 Logstash 处理后输出到 Elasticsearch,如下图
目前发布的 Beats 产品(Beats 的几个产品均为独立发布):
- Filebeat:收集日志数据
- Packetbeat:收集网络数据
- Metricbeat:收集系统及服务数据(替代Topbeat)
- Winlogbeat:收集 Windows 事件
Elastic Stack 中还包含一个以独立产品发布的插件 X-Pack,集成了监控、报警、报表及图表的功能。X-Pack 相当于一个插件集合包,简化了以往安装相关功能插件的过程。同时 X-Pack 还提供了管理(包括用户和角色的管理)及监控的 UI 界面。本文的安装配置先不涉及这个插件,以后再独立的文章中来介绍。
安装配置 Elastic Stack 5.0
下列描述均以操作系统 Centos7 为例部署,涉及服务端和客户端两台服务器,请确保服务端所在服务器内存至少大于 2G。
步骤:
- 1 准备工作
- 2 安装配置 Elasticsearch
- 3 安装配置 Kibana
- 4 安装配置 Filebeat
- 5 安装配置 Logstash (可选)
- 6 安装配置 Nginx (可选)
- 7 单独配置一个客户端
由于 FileBeat 可以直接输出数据给 Elasticsearch,因此前 4 部完成后,ES 系统已经可以运行。Nginx 用于反向代理 Kibana,生产环境中建议配置。
1 准备工作
1.1 安装 Java 环境
使用 yum 安装 Java:
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
这里 java-1.8.0-openjdk-devel
非必须安装,但以后安装插件时可能会需要 Java 的编译器(javac),因此建议提前安装好。
1.2 配置 ES 的 yum 源
导入签名:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
设置 yum 源
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Elastic Stack 相关产品均需要使用这个源。
1.3 操作系统配置
官方提供了生产环境下 Elasticsearch 所在操作系统的相关建议,详见 这里
虚拟内存设置,编辑 /etc/sysctl.conf
,追加:
vm.max_map_count=262144
修改文件句柄限制,编辑 /etc/security/l