ELK 日志分析系统简介以及环境搭建配置 – 21运维
通知: .-...

ELK 日志分析系统简介以及环境搭建配置

ELK 21运维 8256浏览 0评论

最新在学习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 来结合自定义搜索进行页面展示。
1

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指定配置文件启动(主要)
基本配置完成,这里比较内容比较复杂,涉及到如何采集、过滤以及输出,这里不做过多演示。测试安装成功即可。
比如我们进行如下测试:

[[email protected] 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{}
     }
}

测试:

[[email protected] 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/查看:
1
安装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 日志分析系统简介以及环境搭建配置

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 查看es集群状态: curl http://ip:9200/_cluster/health?pretty 查看模板: http://ip:9200/_template
    21运维2017-02-10 18:00 回复