ELK日志分析平台.1-搭建
ELK日志分析平台.1-搭建
一、简介
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
2、四大组件
Logstash: logstash server 端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用作查寻和可视化日志;
Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
2、四大组件
Logstash: logstash server 端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用作查寻和可视化日志;
Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
3、ELK工作流程
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
简单的流程示意图如下:
二、开始部署
系统环境:CentOS 7.1
服务器IP:172.16.16.201
建立安装目录:/elk
新建测试用户:useradd elk
给予权限:chown -R elk:elk /elk
关于ELK三者的版本问题:最好统一在同一修订版本,否则会在最后出现版本错误而不能抓取到日志数据
如本次安装版本全部为6.1.1版本
1、安装JDK环境
Elasticsearch、Logstash、Kibana均需要JDK1.8及以上环境,所以需要先安装JDK
安装JDK过程略,参考笔记:JDK1.8安装笔记:http://www.chengzi520.com/?p=1512
2、安装Elasticsearch
安装版本:elasticsearch-6.1.1
安装目录:/elk/elasticsearch-6.1.1,安装过程略,参考笔记:elasticsearch-6.0.1安装:http://www.chengzi520.com/?p=1519
3、安装Logstash
安装版本:logstash-6.1.1
安装目录:/elk/logstash-6.1.1
1
2
3
4
5
6
7
|
# 下载
cd /elk
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.1.tar.gz
# 解压、进入目录
tar zxvf logstash-6.1.1.tar.gz
cd logstash-6.1.1
|
添加系统变量
1
2
3
4
5
|
vim /etc/profile
LOGSTASH_HOME=/elk/logstash-6.1.1
export PATH=$PATH:$LOGSTASH_HOME/bin
source /etc/profile
|
logstash常用参数
-e :指定logstash的配置信息,可以用于快速测试;
-f :指定logstash的配置文件;可以用于生产环境;
-e :指定logstash的配置信息,可以用于快速测试;
-f :指定logstash的配置文件;可以用于生产环境;
启动Logstash测试
测试1:通过-e参数指定logstash的配置信息,用于快速测试,直接输出到屏幕。
logstash -e “input {stdin{}} output {stdout{}}”
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[elk@localhost ~]$ logstash -e "input {stdin{}} output {stdout{}}"
Sending Logstash's logs to /elk/logstash-6.1.1/logs which is now configured via log4j2.properties
[2017-12-28T16:05:36,161][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"/elk/logstash-6.1.1/modules/netflow/configuration"}
[2017-12-28T16:05:36,212][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"/elk/logstash-6.1.1/modules/fb_apache/configuration"}
[2017-12-28T16:05:37,574][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2017-12-28T16:05:39,184][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.1.1"}
[2017-12-28T16:05:40,558][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
[2017-12-28T16:05:44,576][INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125, :thread=>"#<Thread:0x449f3ddb run>"}
[2017-12-28T16:05:44,792][INFO ][logstash.pipeline ] Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input: #等待手动输入
[2017-12-28T16:05:44,968][INFO ][logstash.agent ] Pipelines running {:count=>1, :pipelines=>["main"]}
HelloWorld # 手动输入
2017-12-28T08:05:58.028Z localhost.localdomain HelloWorld #这种输入直接原封不动返回
|
测试2:通过-e参数指定logstash的配置信息,用于快速测试,以json格式输出到屏幕。
logstash -e ‘input{stdin{}}output{stdout{codec=>rubydebug}}’
4、安装Kibana
安装版本:kibana-6.1.1
安装目录:/elk/kibana-6.1.1
1
2
3
4
5
6
|
# 下载、解压
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.1-linux-x86_64.tar.gz
tar zxvf kibana-6.1.1-linux-x86_64.tar.gz
mv kibana-6.1.1-linux-x86_64 ./kibana-6.1.1
cd kibana-6.1.1/
|
修改配置文件
1
2
3
4
5
|
vim config/kibana.yml
server.port: 5601 # 端口号
server.host: "172.16.16.201" # 本机IP
elasticsearch.url: "http://172.16.16.201:9200" # Elasticsearch url地址
|
启动
通过浏览器访问
http://172.16.16.201:5601