最新在学习elk系统,这里整理下elk的资料以及自己搭建步骤做一个笔记记录。更为详细的内容,等后续补充
系统环境:centos 6
虚拟机IP:192.168.1.104
ELK软件版本:elasticsearch-5.1.1、logstash-5.1.1、kibana-5.1.1
说明:由于centos6 使用官网最新版本5.2(截止目前)内核提示不支持,所以没有考虑最新版。
一、简介
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 来结合自定义搜索进行页面展示。
4,ELK优点
开源、配置简单、集中收集并统一管理、实时索引、可视化展示、集群扩展简单(多数需求中,单一节点无法满足需求)
5、ELK的帮助手册
ELK官网:https://www.elastic.co/
ELK官网文档:https://www.elastic.co/guide/index.html
ELK中文手册:http://kibana.logstash.es/content/elasticsearch/monitor/logging.html
二,环境搭建配置
elk整套系统我们配置到目录/usr/local/ELK中。
1,搭建Elasticsearch
mkdir /usr/local/ELK -p wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz tar zxvf elasticsearch-5.1.1.tar.gz -C /usr/local/ELK
配置Elasticsearch:
/ /usr/local/ELk/elasticsearch-5.1.1/config/elasticsearch.yml cluster.name: elktest node.name: elktestnode network.host: 0.0.0.0 http.cors.enabled : true http.cors.allow-origin : "*"
其他配置请根据自己需求进行调整或优化。
启动elasticsearch:
由于elasticsearch无法以root身份运行,我们先创建一个普通用户elk然后进行后续操作
useradd -r elk -s /sbin/nologin chown -R elk /usr/local/ELK/elasticsearch-5.1.1
启动:
sudo -u elk /usr/local/ELk/elasticsearch-5.1.1/bin/elasticsearch -d
将其加入到开机启动,将其命令写入/etc/rc.local,方便以后启动启动的时候就启动es。
查看启动:
tcp 0 0 :::9200 :::* LISTEN 1827/java tcp 0 0 :::9300 :::* LISTEN 1827/java
如果看到的有9200、9300监听,说明启动成功。web访问http://192.168.1.104:9200/测试如下:
{ "name" : "elktestnode", "cluster_name" : "elktest", "cluster_uuid" : "DNH30gzoSdaeDECXqnPX4A", "version" : { "number" : "5.1.1", "build_hash" : "5395e21", "build_date" : "2016-12-06T12:36:15.409Z", "build_snapshot" : false, "lucene_version" : "6.3.0" }, "tagline" : "You Know, for Search" }
2,Logstash安装配置
wget -c https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.tar.gz tar zxvf logstash-5.1.1.tar.gz -C /usr/local/ELK
设置环境变量:
vim /etc/profilge
export PATH=/usr/local/ELk/logstash-5.1.1/bin:$PATH
source /etc/profilge
logstash有两种启动,-e和-f 。其中-e用来快速测试不用修改配置文件,一般用来调试;还有一个是-f指定配置文件启动(主要)
基本配置完成,这里比较内容比较复杂,涉及到如何采集、过滤以及输出,这里不做过多演示。测试安装成功即可。
比如我们进行如下测试:
[root@elktest bin]# logstash -e "input {stdin{}} output {stdout{}}" Sending Logstash's logs to /usr/local/ELk/logstash-5.1.1/logs which is now configured via log4j2.properties The stdin plugin is now waiting for input: [2017-02-08T23:22:40,917][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>250} [2017-02-08T23:22:41,066][INFO ][logstash.pipeline ] Pipeline main started [2017-02-08T23:22:41,417][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
启动以后我们输入字符串:hello world ,后边会紧跟输出2017-02-08T15:23:00.259Z 0.0.0.0 hello world
测试以文件方式启动,创建test.conf:
input { stdin{} } output { stdout { codec => rubydebug{} } }
测试:
[root@elktest conf.d]# logstash -f test.conf Sending Logstash's logs to /usr/local/ELk/logstash-5.1.1/logs which is now configured via log4j2.properties The stdin plugin is now waiting for input: [2017-02-09T00:09:21,862][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>250} [2017-02-09T00:09:21,885][INFO ][logstash.pipeline ] Pipeline main started [2017-02-09T00:09:22,234][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} { "@timestamp" => 2017-02-08T16:09:23.979Z, "@version" => "1", "host" => "0.0.0.0", "message" => "", "tags" => []
3,Kibana配置
下载安装
wget -c https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-linux-x86_64.tar.gz tar zxvf kibana-5.1.1-linux-x86_64.tar.gz -C /usr/local/ELK mv kibana-5.1.1-linux-x86_64 kibana-5.1.1
修改配置文件/usr/local/ELK/kibana-5.1.1/config/kibana.yml
server.host: "192.168.1.104" elasticsearch.url: "http://192.168.1.104:9200"
启动kibana:
nohup /usr/local/ELK/kibana-5.1.1/bin/kibana > /dev/null &
同样,该命令写入到启动文件中,便于随系统启动。
查看启动:netstat -tnlp | grep 5601 看到有该端口监听,说明启动成功。访问http://192.168.1.104:5601/查看:
安装kibana成功。
参考文章:
ELK 日志分析系统:http://467754239.blog.51cto.com/4878013/1700828/
ElasticSearch 5.0.0 安装部署常见错误或问题:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt=1214
转载请注明:21运维 » ELK 日志分析系统简介以及环境搭建配置