文档章节

ELK(日志分析系统): Elasticsearch + Logstash + Kibana集群环境部署及应用

小致Daddy
 小致Daddy
发布于 2016/12/22 21:50
字数 1234
阅读 215
收藏 2

一.名词介绍:

ElasticSearch 搜索

logstash 管理日志和事件的工具

Kibana4 功能强大的数据显示客户端

redis 缓存

二.应用包准备:

elasticsearch-1.5.0.tar.gz

logstash-1.4.2.tar.gz

kibana-4.0.1-linux-x64.tar.gz

redis-2.8.19.tar.gz

jdk-7u45-linux-x64.tar.gz

三.部署安装:

1.集群部署模式:

2.安装JDK 1.7

省略安装步骤,推荐1.7+版本以上

java –version

设置java的环境变量,比如

vim ~/.bashrc

>> 

export JAVA_HOME= /home/xiel/Java/jdk1.7.0_45

export JRE_HOME=${JAVA_HOME}/jre 

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 

export PATH=${JAVA_HOME}/bin:$PATH 

>> 

source ~/.bashrc

 

3.安装Redis

A.创建目录data->redis,将src中的redis-cli、redis-server文件以及redis.conf文件复制至

……/data/redis目录下。

如cp –r redis-cli /home/xiel/module/redis-2.8.19.1/data/redis

B.启动:redis-server redis.conf &

C. 连接测试:redis-cli –h 127.0.0.1 -p 6379

127.0.0.1:6379> set username nieyong

OK

127.0.0.1:6379> get username

"nieyong"

表示安装配置成功。用命令介绍:

查询所有键值字段:KEYS *

清除所有数据:flushdb

查询key的list集合数量:llen

更多请查看官方API命令

注:./redis-cli -h IP -p 端口号
端口配置见:redis.conf中的port参数

4.安装Elasticsearch

A.解压elasticsearch-1.5.0.tar.gz

B.进入 bin目录,启动./ elasticsearch –d(后台启动)

C.测试验证,curl -X GET http://localhost:9200

{

  "status" : 200,

  "name" : "test-node1",

  "cluster_name" : "cluster",

  "version" : {

    "number" : "1.5.0",

    "build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",

    "build_timestamp" : "2015-03-23T14:30:58Z",

    "build_snapshot" : false,

    "lucene_version" : "4.10.4"

  },

  "tagline" : "You Know, for Search"

}

表示安装配置成功。

注:基本配置介绍../conf/ elasticsearch.yml

cluster.name: cluster(集群名称)

node.name: "test-node1"(集群结点名称)

node.master: true(是否可被选为主结点,默认true)

node.data: true(结点是否存储数据,默认true)

index.number_of_shards: 5(索引分片数)

index.number_of_replicas: 1(索引副本数)

transport.tcp.port: 9300(数据传输IP)

http.port: 9200(对外访问监听IP)

常用基本命令:

查询所有数据:curl http://localhost:9200/_search?pretty

集群健康状态:curl -XGET http://localhost:9200/_cluster/health?pretty

删除所有数据: curl -XDELETE 'http://localhost:9200/_all'

删除指定索引:curl -XDELETE 'http://10.21.16.86:9200/索引名称'

5.安装Logstash

A.解压logstash-1.4.2.tar.gz。

B.进入bin目录,./logstash agent –f 配置文件 &即可。         

logstash下载即可使用,命令行参数可以参考logstash flags,主要有

agent   #运行Agent模式

-f CONFIGFILE #指定配置文件

web     #自动Web服务

-p PORT #指定端口,默认9292

6.安装Kibana

A.解压kibana-4.0.1-linux-x64.tar.gz

B.进入bin,启动./kibana即可。

C.登录访问:http://10.21.16.86:5601(默认端口为5601)

注:可以修改kibana.yml配置elasticsearch的地址和索引

7.集成

把上面的系统集成起来

首先把redis和elasticsearch都启动起来

为logstash新建一个配置文件

vi redis.conf

配置文件内容如下

input {

  redis {

    host => "127.0.0.1"

    port => "6379"

    key => "logstash:demo"

    data_type => "list"

    codec  => "json"

    type => "logstash-redis-demo"

    tags => ["logstashdemo"]

  }

}

output {

  elasticsearch {

    host => "127.0.0.1"

  }

}

用这个配置文件启动logstash agent

./logstash agent -f redis.conf &

启动logstash内置的web

./logstash web &

查看web,应该还没有数据

http://127.0.0.1:9292

在redis 加一条数据

RPUSH logstash:demo "{\"time\": \"2013-01-01T01:23:55\", \"message\": \"logstash demo message\"}"

看看elasticsearch中的索引现状

curl 127.0.0.1:9200/_search?pretty=true

curl -s http://127.0.0.1:9200/_status?pretty=true | grep logstash

再通过logstash web查询一下看看

http://127.0.0.1:9292

通过单独的kibana界面查看

http://127.0.0.1/html/kibana-latest/index.html#/dashboard/file/logstash.json

8.Logstash高级配置应用

A.Logstash文件采集输入Redis数据缓存配置。

vim shipper.conf
input {

  file {

    path => ["/home/xiel/module/logstash-1.4.2/logs/stdout.log"]

    exclude => ["*.gz", "access.log"]

  }

}

output {

  stdout {}

  redis {

    host => "10.21.16.86"

    port => "6379"

    data_type => "list"

    key => "logstash:redis"

  }

}  

B.Logstash端口监听方式采集输入Redis数据缓存配置。

vim logstash-syslog-shipper.conf   
input {

  tcp {

    port => 5140

    type => syslog

  }

  udp {

    port => 5140

    type => syslog

  }

}



filter {

  if [type] == "syslog" {

    grok {

      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }

      add_field => [ "received_at", "%{@timestamp}" ]

      add_field => [ "received_from", "%{host}" ]

    }

    syslog_pri { }

    date {

      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]

    }

  }

}

output {

  stdout {}

  redis {

    host => "10.21.16.86"

    port => "6379"

    data_type => "list"

    key => "logstash:redis"

  }

}

C.Logstash采集Redis输入Elasticsearch索引配置。

Logstash-es.conf

input {

        redis {

                host => "127.0.0.1"

                port => "6379"

                type => "redis-input"

                # these settings should match the output of the agent

                data_type => "list"

                key => "logstash:redis"

                # We use json_event here since the sender is a logstash agent

                #message_format => "json_event"

        }

}

output {

        # stdout { debug => true debug_format => "json"}

        elasticsearch {

        #host => "127.0.0.1"

        cluster => "cluster"   (Elasticsearch集群名称)

        codec => "json"

        protocol => "http"



        }

        stdout { codec => rubydebug }

}

9.Elasticsearch常用插件安装:

1.head

        和插件名字一样,首推这个插件。通过head,可以查看集群几乎所有信息,还能进行简单的搜索查询,观察自动恢复的情况等等。

(2)安装

方式1

1.下载https://github.com/mobz/elasticsearch-head

2. 命令载入安装

 ./plugin -u file:////home/xiel/installSoft/elasticsearch-head-master.zip(存放路径)

-i mobz/elasticsearch-head                                      

方式2

进入Elasticsearch所在bin目录下,执行以下命令

./ plugin -install Aconex/elasticsearch-head

(3) 运行es,找开http://localhost:9200/_plugin/head/

2.bigdesk

bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。

安装命令:\bin>plugin -install lukas-vlcek/bigdesk

进入http://localhost:9200/_plugin/bigdesk/

注:也可以像head方式1一样先下载对应插件,下载地址:

https://github.com/lukas-vlcek/bigdesk

进入bin目录下,执行:

./plugin -u file:////home/xiel/installSoft/bigdesk-master.zip(存放路径)

-i mobz/elasticsearch-head    

© 著作权归作者所有

小致Daddy

小致Daddy

粉丝 182
博文 553
码字总数 592128
作品 0
济南
技术主管
私信 提问
小白都会超详细--ELK日志管理平台搭建教程

目录 一、介绍 二、安装JDK 三、安装Elasticsearch 四、安装Logstash 五、安装Kibana 六、Kibana简单使用 系统环境:CentOS Linux release 7.4.1708 (Core) 当前问题状况 开发人员不能登录线...

渣渣辉
2018/07/15
0
0
CentOS7.3下ELK日志分析系统集群搭建

Elasticsearch是个基于Lucene实现的开源、分布式、restful的全文本搜索引擎,此外他还是一个分布式实时文档存储,其中每个文档的每个filed均是可被索引的数据,且可被搜索,也是一个带实时分...

wujunqi1996
2018/07/14
0
0
基于弹性堆栈(ELK堆栈)的日志分析、存储及展示

ELK简介 “ELK”是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。Elasticsearch是一个搜索和分析引擎。Logstash是一个服务器端数据处理管道,它同时从多个源中提取数据,对其...

cchenyz
2018/08/22
0
0
ElasticSearch+kibana+logstash集群部署

ELK原理与介绍   ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用...

若此生无缘
2018/08/22
0
0
初探 ELK - 每天5分钟玩转 Docker 容器技术(89)

在开源的日志管理方案中,最出名的莫过于 ELK 了。ELK 是三个软件的合称:Elasticsearch、Logstash、Kibana。 Elasticsearch 一个近乎实时查询的全文搜索引擎。Elasticsearch 的设计目标就是...

CloudMAN
2017/11/03
467
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
219
4
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部