快速搭建分布式日志管理系ELK(ElasticSearch+Logstash+Kibana)避坑指南

ELK全称:ElasticSearch + LogStash + Kibana

图解:

LogStash

     它可以流放到各自的服务器上收集Log日志,通过内置的ElasticSearch插件解析后输出到ES中。

ElasticSearch

       这是一个基于Lucene的分布式全文搜索框架,可以对logs进行分布式存储,类似于hdfs 

 Kibana

       所有的log日志都到ElasticSearch之后,我们需要给他展示出来,对吧? 这个时候Kibana就出手了,它可以  多维度的展示es中的数据。这也解决了用mysql存储带来了难以可视化的问题。

 

  1. 安装前需注意

主机需要已经有java8环境。

ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致

  1. Elasticsearch安装
    1. 下载安装

下载、解压安装包:

下载地址:https://www.elastic.co/downloads/elasticsearch

       Windows下载ZIP

       Linux下载TAR

这个页面下点击past releases可下载历史版本(该页面只提供最新版)。

【注意】ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致

    1. 运行

进入软件目录下,运行

Windows 下:     bin\elasticsearch.bat

       或者双击这个bat文件

Linux 下:           bin/elasticsearch

Linux后台运行: setsid bin/elasticsearch

注:Linux下让软件在后台运行,即关掉当前的命令行窗口软件也不退出,在命令行前加setsid即可。比如:setsid bin/elasticsearch

    1. Linux下运行Elasticsearch的几个坑
      1. 不能用root用户运行

创建elasticsearch组,创建elasticsearch用户,切换到elasticsearch下操作

[root@curly elasticsearch]# groupadd elasticsearch

[root@curly elasticsearch]# useradd elasticsearch -g elasticsearch -p elasticsearch

[root@curly elasticsearch]# chown -R elasticsearch:elasticsearch elasticsearch-6.3.0

[root@curly elasticsearch]# su elasticsearch

[elasticsearch@curly elasticsearch]$ cd elasticsearch-6.3.0

 

      1. 文件操作数量受限

对应报错:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

 

解决:

切换root,编辑文件:

vi /etc/security/limits.conf

 

加入以下两行:

@elasticsearch hard nofile 65536

@elasticsearch soft nofile 65536

 

      1. 内存受限

对应报错:

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 

切换root,编辑文件:

vi /etc/sysctl.conf

 

加入以下内容:

vm.max_map_count=655360

 

切回命令行,执行:

sysctl -p

 

    1. 检验

用浏览器访问:http://[ip]:9200,其中[ip]是安装Elasticsearch的主机ip。显示像下面的json说明安装运行成功:

{

  "name" : "node-0",

  "cluster_name" : "atscloud",

  "cluster_uuid" : "65agQRXqRHWX-i_G3jQ2Vw",

  "version" : {

    "number" : "6.2.2",

    "build_hash" : "10b1edd",

    "build_date" : "2018-02-16T19:01:30.685723Z",

    "build_snapshot" : false,

    "lucene_version" : "7.2.1",

    "minimum_wire_compatibility_version" : "5.6.0",

    "minimum_index_compatibility_version" : "5.0.0"

  },

  "tagline" : "You Know, for Search"

}

    1. 一些配置项(可选)

若无其他状况,Elasticsearch按默认的配置即可完好运行,这是一些其他额外的配置

      1. 改端口

将ip设置为0.0.0.0可应对大部分情况。若外部还是无法访问,设置成本机的ip地址。(设置成本机ip可一步到位,解决问题,推荐)

network.host: 0.0.0.0

 

外部访问的端口,默认9200。

http.port: 9200

      1. 设置文件路径

Elasticsearch的默认存放数据(data)及日志(log)的位置在软件自身的目录下,可修改。比如:

 

Linux下:

path.data: /data/es-data

path.logs: /var/log/elasticsearch

 

Windows下:

path.logs: D:\elasticsearch\log

path.data: D:\elasticsearch\data

      1. 集群配置

Elasticsearch集群名字,同一个集群配成同一个名字

cluster.name: elasticsearch-cluster

 

集群节点名称,一般为本节点主机名。在一个集群中需唯一。

node.name: es-node-02

 

安装了Elasticsearch的主机的地址

discovery.zen.ping.unicast.hosts: ["192.168.10.44", "192.168.10.45", "192.168.10.46"]

 

集群搭建成功,访问[ip:port]/_cat/nodes,显示如下:

 

 

详细操作可参考:https://www.cnblogs.com/kevingrace/p/7693422.html

 

  1. Logstash安装
    1. 下载安装

下载、解压安装包:

下载地址:https://www.elastic.co/downloads/logstash

       Windows下载ZIP

       Linux下载TAR.GZ

这个页面下点击past releases可下载历史版本(该页面只提供最新版)。

【注意】ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致

    1. 配置

在logstash的bin目录下,新建一个文件,不妨命名为:logstash-gardpay.conf

文件内容:

input {

  tcp {

    host => "00.00.00.000"

    port => 9251

    mode => "server"

    tags => ["gardpay-dev"]

    codec => json_lines

  }

  tcp {

    host => "00.00.00.00"

    port => 9252

    mode => "server"

    tags => ["gardpay-test"]

    codec => json_lines

  }

 }

output {

  elasticsearch {

    action => "index"

    hosts => "00.00.00.00:9200"

    index  => "gardpaylog"

  }

}

 

配置项说明:

input – tcp 配置为绑定本机的port端口,作为一个日志服务器;

host填本机ip地址;

tags可为这个log服务打个标签,区分不同的环境,比如:开发环境"gardpay-dev",测试环境"gardpay-test"

output – elasticsearch是把logstash日志输出到elasticsearch,

hosts填elasticsearch的ip:端口,如:"00.00.00.00:9200"

index填在elasticsearch建立的索引名,如"gardpaylog"

其他按模板写即可。

    1. 运行

Windowns/Linux下,cd到logstash安装目录下,运行命令:

测试配置文件是否正确(由于配置文件是Ruby语言格式,可能发生语法错误):

Windows下:      bin\logstash -t -f config\rh2-logstash.conf

Linux下:            bin/logstash -t -f config/rh2-logstash.conf

运行服务:

Windows下:      bin\logstash -f config\rh2-logstash.conf

Linux下:            bin/logstash -f config/rh2-logstash.conf

Linux后台运行: setsid bin/logstash -f config/rh2-logstash.conf

    1. 验证

logstash并不容易验证,等ELK搭好后,运行程序,做一个整体上的验证即可。

  1. Kibana安装
    1. 下载安装

下载、解压安装包:

下载地址:https://www.elastic.co/downloads/logstash

       Windows下载WINDOWS

       Linux下载LINUX 64-BIT

这个页面下点击past releases可下载历史版本(该页面只提供最新版)。

【注意】ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致

    1. 配置

配置文件位置:安装目录/config/kibana.yml

服务绑定端口,默认5601:

server.port: 5601

 

将ip设置为0.0.0.0可应对大部分情况。若外部还是无法访问,设置成本机的ip地址。

server.host: 0.0.0.0

 

配置Elasticsearch地址

elasticsearch.url: "http://localhost:9200"

    1. 运行

进入软件目录下,运行

Windows 下:     bin\kibana.bat

       或者双击这个bat文件

Linux 下:           bin/kibana

Linux后台运行: setsid bin/kibana

    1. 验证

在浏览器,打开http://[ip]:5601,其中[ip]指kibana部署所在的主机地址,出现以下界面,说明安装成功。

 

 

 

  1. 结束 - ELK简要使用指南

至此,整个ELK服务环境搭建完成。

可以在java程序中把logback的logstash插件指向logstash中input的地址和端口,运行程序,输出log。

在浏览器kibana的界面,选择索引gardpaylog(刚才在logstash中配置的),即可看到日志:

 

点击图中的左上角的红框选择gardpaylog就可以查看gardpay的日志。右上角可以选择日志时间段

 

不同等级的log:

 

选择不同的标签(开发、或测试环境标识符,刚才在logstash中配置的tags):

 

模糊查询英文单词时,记得不确定的地方带*号:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值