ELK日志分析系统

背景介绍

       随着软件行业的发展,软件系统的生产部署结构日趋复杂。对于一个分布式的系统,同一应用通常部署在不同的节点上,通过负载均衡的方式将请求分发到各个不同的节点进行处理。此时就会相对增加生产运维的复杂度,在进行问题查询的时候很难判断本次请求是在哪台机器上执行的,也就无法快速的对日志进行查询从而定位问题,因此,就需要对日志进行统一的处理和分析,以便方便开发和运维人员的问题处理速度。

本文介绍的是elastic stack开源的ELK组件,主要包括elasticsearch(简称es),logstash,kibana三个核心组件。
es是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能,对外提供REST和java api,可扩展性的分布式系统。
Logstash是一个用来搜集、分析、过滤日志的工具,几乎支持所有类型的日志,能够接收多种来源的日志,包括syslog、mq,并且能够输出到多种介质中,包括es,邮件等等。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户定制仪表板视图,还允许用户使用es语法进行操作。

ELK初版部署结构图

但是,在实际使用的过程中发现,logstash会占用很多系统资源,因此决定加入一个更轻量的日志收集组件(也是elastic stack的组件之一)filebeat。因此在加入filebeat之后,整个部署架构变成了如下图所示。


ELK第二版部署结构图

部署步骤

1.准备工作(ELK 三个组件必须使用同一个版本,其他边缘组件可以不使用)

安装包:
    elasticsearch-6.6.2.tar.gz
    kibana-6.6.2-linux-x86_64.tar.gz
    logstash-6.6.2.tar.gz
    filebeat-6.6.0-linux-x86_64.tar.gz
    jdk-8u192-linux-x64.tar.gz
机器:
    192.168.45.174,192.168.45.175,192.168.45.176(ES集群)
    192.168.45.2(logstash,kibana)
    192.168.45.136(应用服务器,安装filebeat)

2.开始安装ES集群

   注(1):由于ELK组件都是使用java开发的,因此需要安装1.8以上版本的jdk
      jdk的安装方法:https://www.cnblogs.com/kuoAT/p/7555298.html
   注(2):Elasticsearch不能使用root用户运行,需要单独创建用户
1)为es创建一个目录

mkdir elasticsearch

2)创建一个elk用户,并为elk用户授权elasticsearch目录

groupadd elk
useradd elk -g elk -p elk
chown -R elk:elk elasticsearch

3)上传es的安装包,并解压到elasticsearch目录

tar -zxvf elasticsearch-6.6.2.tar.gz

4)切换到root用户,修改以下文件

vi /etc/security/limits.conf
 添加如下四行
@elk hard nofile 65536
@elk soft nofile 65536
@elk  hard    nproc    4096
@elk  soft     nproc    4096
vi /etc/sysctl.conf
 添加以下内容
vm.max_map_count=655360

5)执行sysctl –p ,使配置生效
6)切换回elk用户,进入 elasticsearch/config/目录下,修改es的配置文件elasticsearch.yml

  cluster.name: my-application
  node.name: node-1
  node.master: true
  node.data: true
  path.data: elasticsearch/data
  path.logs: elasticsearch/logs
  network.host: 192.168.45.174
  http.port: 9200
  discovery.zen.ping.unicast.hosts: ["192.168.45.174", "192.168.45.175","192.168.45.176"]  // 配置ES集群各个节点
  discovery.zen.minimum_master_nodes:2  // 防止脑裂
3.开始安装filebeat

1)将filebeat上传到要进行日志收集的服务器上192.168.45.136,并解压

tar -zxvf filebeat-6.6.0-linux-x86_64.tar.gz

2)修改配置文件

vi filebeat-6.6.0-linux-x86_64/filebeat.yml

a. 修改其中的enabled为true,并配置paths(要收集的日志路径,可以使用* 代替)。也可以根据exclude_lines和include_lines来做一些过滤日志的行为。

filebeat.yml

b. filebeat的配置文件路径,以及是否允许重新加载配置文件。并设置索引的分片数量

filebeat.yml

c. 配置kibana地址


filebeat.yml

d. 配置logstash地址

filebeat.yml
4.开始安装logstash

1)将logstash安装包上传到192.168.45.2服务器并解压
tar -xvf logstash-6.6.2.tar.gz
2)修改logstash输入输出的配置文件logstash-sample.yml
a.input中配置filebeat的监听端口
b.filter中可以增加过滤条件对所有或者指定索引进行过滤
c.output中可以配置filebeat输出之后的索引


logstash-sample.yml
5.开始安装kibana

1)将kibana安装包kibana-6.6.2-linux-x86_64.tar.gz上传到192.168.45.2,并解压
tar -xvf kibana-6.6.2-linux-x86_64.tar.gz
2)修改配置文件

  vi kibana-6.6.2-linux-x86_64/config/kibana.yml
  修改下列内容
  server.port:5601
  server.host:"192.168.45.2"
  elasticsearch.host:["http://192.168.45.174", "192.168.45.175","192.168.45.176"]
6.分别启动ES集群,logstash,filebeat,kibana

1)分别在对应的bin目录下执行下列操作

  nohup ./elasticsearch >elasticsearch.log 2>&1 &    //ES启动服务
  nohup ./logstash >logstash.log 2>&1 &    //logstash启动服务
  nohup ./filebeat -e -c filebeat.yml >filebeat.log 2>&1 &    // filebeat启动服务
  nohup ./kibana >kibana.log 2>&1 &   //kibana启动服务

2)启动后可以在浏览器中输入192.168.45.2:5601来进入kibana界面进行日志查询


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