分布式实时日志分析平台ELK的部署与安装

一、概述

ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Logstash、Elasticsearch、Kibana三个组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案,本文主要讲ELK最常用的部署架构的组件安装,以及安装过程中的问题解决,后续文章会详细介绍ELK的常用架构,以及在生产环境中相关问题的解决方法。

image

二、安装部署

注:这里安装的ELK组件版本为5.6,需要JDK1.8及以上版本支持。

1、创建ELK用户

# groupadd elk //创建用户组
# useradd -g elk elk //创建用户,并指定用户组
# passwd elk //修改用户密码
# chown -R elk [ELK组件的安装目录] //给用户elk分配目录权限

2、从官网分别下载ELK组件

filebeat-5.6.3-linux-x86_64.tar.gz

logstash-5.6.3.tar.gz

elasticsearch-5.6.3.tar.gz

elasticsearch-head-master.zip

kibana-5.6.3-linux-x86_64.tar.gz

官网地址:https://www.elastic.co/cn/products

3、安装Elasticsearch

# tar -zxvf elasticsearch-5.6.3.tar.gz

3.1 启动

# ./bin/elasticsearch

3.2 Elasticsearch启动相关问题解决

(1)启动Elasticsearch5.6时报:can not run elasticsearch as root 错误!这里一般以rpm方式安装的话不存在该问题,如果安装的是tag.gz包,就会报该错误,解决办法,新建一个用户即可。

(2)启动Elasticsearch5.6报:process likely too low, increase to at least 错误,原因是新建的用户默认的可创建最大进程数被限制,解决方法:

  1. 切换到root用户
  2. vi /etc/security/limits.conf

添加如下内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

参数解释:

soft nproc: 单个用户可用的最大进程数量(软限制)

hard nproc: 单个用户可用的最大进程数量(硬限制)

soft nofile:单个用户可打开的最大文件描述符数量(软限制)

hard nofile:单个用户可打开的最大文件描述符数量(硬限制)

(3)Elasticsearch5.6启动后9200端口无法被访问,请修改config/elasticsearch.yml 文件,修改network.host项:network.host: localhost,或填写本机真实的IP

4、安装Elasticsearch-head-master

4.1 安装该插件后可在web页面查看Elasticsearch的相关信息,由于该插件运行的环境要依赖nodejs,所以需要先安装nodejs

(1)下载node-v8.9.0-linux-x64.tar.xz软件包

(2)$ xz -d node-v8.9.0-linux-x64.tar.xz //解压软件包

(3)$ tar -xvf node-v8.9.0-linux-x64.tar

(4)建立node与npm命令的软链接,这样可在任何地方访问该命令了

$ ln -s /home/project/elk/node-v8.9.0-linux-x64/bin/npm /usr/local/bin/npm

$ ln -s /home/project/elk/node-v8.9.0-linux-x64/bin/node /usr/local/bin/node

(5)验证是否安装成功:$ node -v

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

(1)解压下载好的包

(2)$ cd elasticsearch-head-master/

(3)$ npm install -g cnpm --registry=https://registry.npm.taobao.org //安装依赖包

(4)安装好后启动该插件,$ npm run start

(5)该插件默认端口为9100,打开后发现无法连接到Elasticsearch,在Elasticsearch版本5以上需要在Elasticsearch配置文件中加如下参数即可:

http.cors.enabled: true

http.cors.allow-origin: "*"

image

5、安装Logstash

# tar -zxvf logstash-5.6.3.tar.gz

5.1 Logstash相关命令

(1)测试启动,看配置文件是否正确:bin/logstash -f first-pipeline.conf --config.test_and_exit

(2)以config.reload.automatic方式启动,这样在修改配置文件后无需重新启动,它会自动加载:bin/logstash -f first-pipeline.conf --config.reload.automatic

(3)列出所有已安装的插件:bin/logstash-plugin list

(4)安装外部的插件:bin/logstash-plugin install [插件名称]

(5)更新所有插件:bin/logstash-plugin update

(6)更新指定插件:bin/logstash-plugin update logstash-output-kafka

(7)删除指定插件:bin/logstash-plugin remove logstash-output-kafka

6、安装Filebeat

# tar -zxvf filebeat-5.6.3-linux-x86_64.tar.gz

(1)启动:./filebeat -e -c filebeat.yml -d "publish"

(2)Filebeat的输出方向为Elasticsearch,默认启动Filebeat加载的ES索引模板是 filebeat.template.json,如:

output.elasticsearch: hosts: ["localhost:9200"] template.name: "filebeat" template.path: "filebeat.template.json" template.overwrite: false

默认情况下,如果一个模板已经存在于索引中,那么它就不会被覆盖。要覆盖现有的模板,需要设置

template.overwrite: true

如:Filebeat的输出方向为Logstash,则需手动指定加载的ES索引模板,手动载入ES模板命令:

url -XPUT 'http://localhost:9200/_template/filebeat' -d@/etc/filebeat/filebeat.template.json

删除索引模板:curl -XDELETE 'http://localhost:9200/filebeat-*'

(3)启用已经构建好的模块,-modules项后可填写多个模块,第一次启动需要设置-setup,之后无需-setup

./filebeat -e -modules=system,nginx,mysql -setup

注:命令参数解释

  • -E <setting>=<value> //覆盖特定的配置设置,如:

./filebeat -c filebeat.yml -E name=mybeat

  • -c <file> //指定配置文件的路径

详细参数请看:https://www.elastic.co/guide/en/beats/filebeat/current/command-line-options.html

(4)使Filebeat重新从指定日志文件的开头读取数据

  1. 先停掉Filebeat
  2. rm data/registry

7、安装Kibana

# tar kibana-5.6.3-linux-x86_64.tar.gz

7.1 问题解决

启动kibana后在浏览器中无法访问,解决方法:修改kibana.yml文件,修改server.host值 为 "localhost"

7.2 查询技巧:

(1)要精确查询字符串请使用双引号,如查询"hello, how are you"

(2)* 表示匹配0到多个字符,如 hello*

(3)? 表示匹配单个字符,如h?o

(4)+ 表示搜索结果中必须包含此项,- 表示搜索中不包含此项

(5)运算符AND、OR、NOT表示与或非,注意必须大写,如 hello AND you,表示查询结果中必须同时包含hello与you

(6)@version:1 表示查询@version字段值为1的结果项

(7)@version:[1 TO 10] 表示查询@version的范围在1到10的结果项

(8)转义特殊字符 + – && || ! ( ) { } [ ] ^ ” ~ * ? : \ 转义特殊字符只需在字符前加上符号\

8、配置

8.1 配置Logstash

新建logstash.conf配置文件,内容为:

input {
  beats {
    port => 5044 //配置启动端口为5044

  }
}

output {
  elasticsearch { //配置输出目的地为elasticsearch
    hosts => "localhost:9200"
  }
}

8.2 配置Filebeat

新建filebeat-test.yml,内容为:

filebeat.prospectors:
  -
    paths:
      - /home/project/elk/logs/test.log //日志路径
    input_type: log
    multiline: //日志多行内容合并
      pattern: '^\['
      negate: true
      match: after
    document_type: test //文档类型,可用于索引的构建

output:
  logstash: //输出目的地为logstash
    hosts: ["localhost:5044"]

9、运行

分别启动:Elasticsearch -> Logstash -> Filebeat -> Kibana

image

三、总结

本文主要介绍了ELK相关组件的安装,和安装过程中相关问题的解决,以及各组件的使用技巧,这里建议多看看Kibana中的查询技巧,可以在生产环境根据日志来快速定位问题。

转自:https://my.oschina.net/feinik/blog/1580087

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,706评论 4 366
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,002评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,462评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,375评论 0 216
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,763评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,849评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,033评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,768评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,490评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,734评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,204评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,566评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,227评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,137评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,934评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,926评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,774评论 2 274