由于系统日志量还在可控范围,所以选择了 ELK+Beats 的方案,并未引入消息队列,当然后续需要可以对系统升级。鉴于此,只需要在日志平台部署 Elasticsearch 和 Logstash 集群,同时在应用服务器部署 Filebeat。
安装前准备
JAVA环境
ELK 需要 JAVA 8 以上的运行环境,若未安装则按如下步骤安装:
查看是否安装 |
在文件/etc/profile
配置环境变量:
指向安装目录,其中1.8.0.151需与版本号保持一致 |
执行source /etc/profile
命令,使配置环境生效。
安装GPG-KEY
由于后续采用 yum 安装,所以需要下载并安装 GPG-KEY:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch |
yum 命令会安装最新的版本,若需安装较旧的版本,请先从 官方地址 下载对应的旧版本 rpm 包,然后使用
rpm -ivh
命令安装。
Elasticsearch
安装
通过 官方地址 下载选择最新版本,然后解压:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz |
启动前,需要修改配置文件jvm.options
中 JVM 大小,否则可能会内存溢出,导致启动失败。
vim config/jvm.options |
由于 Elasticsearch 新版本不允许以 root 身份启动,因此先创建 elk 用户。这里使用 service 服务方式管理 Elasticsearch,修改启动用户和安装目录。
useradd elk |
设置开机启动服务,启动 Elasticsearch,其默认监听 9200 端口。
开启服务 |
最后,安装使用到的插件:
cd /usr/local/elk/elasticsearch |
安装 x-pack 插件后,对 Elasticsearch 的操作都需要授权,默认用户名为 elastic,默认密码为 changeme。
Kibana
首先,在/etc/yum.repos.d
目录下创建名为kibana.repo
的 yum 源文件:
[kibana-5.x] |
使用 yum 命令安装:
yum install -y kibana |
修改配置文件kibana.yml
以下配置项:
mkdir -p /usr/local/elk/kibana/config |
安装常用插件,例如 x-pack:
bin/kibana-plugin install x-pack |
Kibana 运行时 NodeJs 默认会最大分配 1G 内存,可以在启动时增加max-old-space-size
参数,以限制其运行内存大小:
vim bin/kibana |
修改 init 启动脚本,并启动 Kibana:
vim /etc/init.d/kibana |
配置 Web 服务后,访问 elk.fanhaobai.com 就可以看到 Kibana 强大又绚丽的界面。
安装 x-pack 插件后,访问 Kibana 同样需要授权,且任何 Elasticsearch 的用户名和密码对都可被认证通过。
Logstash
安装
首先,在/etc/yum.repos.d
目录下创建logstash.repo
文件:
[logstash-5.x] |
使用 yum 安装 Logstash,并测试:
安装logstash 5.x |
修改配置文件路径:
mv /etc/logstash /usr/local/elk/logstash/config |
修改 JVM 内存大小,防止出现内存溢出异常:
vim config/jvm.options |
生成并修改 init 启动脚本:
bin/system-install /etc/logstash/startup.options sysv |
安装 x-pack 插件,基本状态信息的监控:
bin/logstash-plugin install x-pack |
配置
主配置文件
Logstash 主配置文件为config/logstash.yml
,配置如下:
path.data: /var/lib/logstash |
配置管道
创建一个简单的管道(inputs → filters → outputs),配置文件为conf.d/filebeat.conf
。日志过滤处理后,直接推送到 Elasticsearch,在 output 部分需配置 Elasticsearch 的用户名和密码。
input { |
完整配置见 配置示例 部分,更多配置示例见 Logstash Configuration Examples。
启动
service logstash start |
Beats
Filebeat
安装
由于同 Elasticsearch 使用一个源,所以直接使用 yum 安装:
安装filebeat 5.6.6 |
修改 init 启动脚本:
vim /etc/init.d/filebeat |
配置启动服务:
chkconfig --add filebeat |
配置
创建 Filebeat 配置文件filebeat.yml
,开启 nginx 日志模块采集 access 日志信息:
filebeat.modules: |
启动
service filebeat start |
Filebeat 启动后,会侦测待采集文件内容是否有增加或更新,并实时推送数据到 Logstash。
因为 Filebeat、Logstash 有些配置并不向后兼容,更新升级后可能导致服务不可用,所以这里在
/etc/yum.conf
增加exclude=filebeat logstash
配置项,禁用yum update
的自动更新。
数据呈现
Filebeat 推送到 Logstash 过滤后,Elasticsearch 存储的数据格式为:
{ |
在 Kibana 中呈现效果为:
相关文章 »
- ELK集中式日志平台之一 — 平台架构 (2017-12-16)
- ELK集中式日志平台之三 — 进阶 (2017-12-22)