由于系统日志量还在可控范围,所以选择了 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 中呈现效果为:

转载:樊浩柏科学院
浙公网安备 33010602011771号