理论+实验:ELK日志分析系统

一、ELK日志分析系统简介

1.1 ELK日志分析系统简介-1

■ 日志服务器

  • 提高安全性
  • 集中存放日志
  • 缺陷
    ◆ 对日志的分析困难
    在这里插入图片描述
  • AppServer:提供业务(前端的业务)
  • Logstash:日志收集器,可以格式转换成ES可以识别的格式!!!
  • Elastic Search (必须是集群Cluster):通过kafka(消息队列),有效、有序的传递给Kibana Server。ES后面挂的是分布式存储,在这里是中央枢纽的作用

1.2 ELK日志分析系统简介-2

■ ELK日志分析系统-

  • Elasticsearch
  • Logstash
  • Kibana

■ 日志处理步骤
1.将日志进行集中化管理
2.将日志格式化(Logstash)并输出到Elasticsearch
3.对格式化后的数据进行索引和存储(Elasticsearch)

二、Elasticesarch介绍

■ Elasticsearch的概述

  • 提供了一个分布式多用户能力的全文搜索引擎
    ■ Elasticsearch核心概念
  • 接近实时
  • 集群
  • 节点
  • 索引
    ◆索引(库)> 类型(表)> 文档(记录)
  • 分片和副本

三、Logstash介绍

■ Logstash介绍

  • 一款强大的数据处理工具
  • 可实现数据传输、格式处理、格式化输出
  • 数据输入、数据加工(如过滤,改写等)以及数据输出

■ LogStash主要组件·

  • Shipper
  • lndexer
  • Broker
  • Search and Storage
  • Web Interface

四、Kibana介绍

■ Kibana介绍

  • 一个针对Elasticsearch的开源分析及可视化平台
  • 搜索、查看存储在Elasticsearch索引中的数据
  • 通过各种图表进行高级数据分析及展示

■ Kibana主要功能

  • Elasticsearch无缝之集成
  • 整合数据,复杂数据分析
  • 让更多团队成员受益
  • 接口灵活,分享更容易
  • 配置简单,可视化多数据源
  • 简单数据导出

五、部署ELK日志分析系统

■ 设备列表

主机                        操作系统                         主机名                   ip地址               主要软件
服务器                     Centos7.4                     node1                   20.0.0.20           Elasticsearch   Kibana
服务器                     Centos7.4                     node2                   20.0.0.21           Elasticsearch   
服务器                     Centos7.4                     apache                  20.0.0.22           Logatash Apache
【开局必做操作!】
[root@node1 ~]# systemctl stop firewalld         ###关闭防火墙
[root@node1 ~]# systemctl disable firewalld    ###关闭自启动
[root@node1 ~]# vim /etc/selinux/config         ###关闭核心防护
SELINUX=disabled                                               ###设置成disabled

【配置elasticsearch环境】

######登录20.0.0.20 更改主机名 配置域名解析查看java环境 #############

[root@localhost ~]# hostnamectl set-hostname node1   ###更改主机名为node1
[root@localhost ~]# su      ###刷新

[root@node1 ~]#  vi /etc/hosts    ###映射一下主机名和ip地址
20.0.0.20 node1
20.0.0.21 node2

[root@node1 ~]# java -version      ###查看java版本,如果装系统的时候装过工具包,就已经有1.8版本的了
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

######登录20.0.0.21 更改主机名 配置域名解析查看java环境 #############

[root@localhost ~]# hostnamectl set-hostname node2   ###更改主机名为node1
[root@localhost ~]# su      ###刷新

[root@node1 ~]#  vi /etc/hosts    ###映射一下主机名和ip地址
20.0.0.20 node1
20.0.0.21 node2

[root@node1 ~]# java -version      ###查看java版本,如果装系统的时候装过工具包,就已经有1.8版本的了
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

【部署elasticsearch软件】

####登录20.0.0.20####

1、安装elasticsearch-rpm包
上传elasticsearch-5.5.0.rpm 到/目录下
[root@node1 ~]# rpm -ivh elasticsearch-5.5.0.rpm 

2、加载系统服务
[root@node2 ~]# systemctl daemon-reload 
[root@node2 ~]# systemctl enable elasticsearch

3、更改elasticsearch主配置文件
[root@node1 ~]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# cp -p elasticsearch.yml elasticsearch.yml.bak
[root@node1 elasticsearch]# vim elasticsearch.yml
17/ cluster.name: my-elk-cluster   ####集群名字
23/ node.name: node1   ####节点名字
33/ path.data: /data/elk_data   ####数据存放路径
37/ path.logs: /var/log/elasticsearch/   ####日志存放路径
43/ bootstrap.memory _lock: false   ####不在启动的时候锁定内存:锁定物理内存地址,防止es内存被交换出去,也
55/ network.host: 0.0.0.0   ####提供服务绑定的IP地址,0.0.0.0代表所有地址
59/ http.port: 9200   ####侦听端口为9200
68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"]   ####集群发现通过单播实现,这里是节点的名字!!!

[root@node1 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

4、创建数据存放路径并授权
[root@node1 elasticsearch]# mkdir -p /data/elk_data    
[root@node1 elasticsearch]# chown elasticsearch:elasticsearch /data/elk_data/

5、启动elasticsearch是否成功开启
[root@node1 elasticsearch]# systemctl start elasticsearch
[root@node1 elasticsearch]# netstat -anpt | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      2894/jav

6、查看节点信息,用真机访问http://20.0.0.20:9200/

####登录20.0.0.21####

1、安装elasticsearch-rpm包
上传elasticsearch-5.5.0.rpm 到/目录下
[root@node1 ~]# rpm -ivh elasticsearch-5.5.0.rpm 

2、加载系统服务
[root@node2 ~]# systemctl daemon-reload 
[root@node2 ~]# systemctl enable elasticsearch

3、更改elasticsearch主配置文件
[root@node1 ~]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# cp -p elasticsearch.yml elasticsearch.yml.bak
[root@node1 elasticsearch]# vim elasticsearch.yml
17/ cluster.name: my-elk-cluster   ####集群名字
23/ node.name: node2   ####节点名字
33/ path.data: /data/elk_data   ####数据存放路径
37/ path.logs: /var/log/elasticsearch/   ####日志存放路径
43/ bootstrap.memory _lock: false   ####不在启动的时候锁定内存:锁定物理内存地址,防止es内存被交换出去,也
55/ network.host: 0.0.0.0   ####提供服务绑定的IP地址,0.0.0.0代表所有地址
59/ http.port: 9200   ####侦听端口为9200
68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"]   ####集群发现通过单播实现,这里是节点的名字!!!

[root@node1 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

4、创建数据存放路径并授权
[root@node2 elasticsearch]# mkdir -p /data/elk_data    
[root@node2 elasticsearch]# chown elasticsearch:elasticsearch /data/elk_data/

5、启动elasticsearch是否成功开启
[root@node2 elasticsearch]# systemctl start elasticsearch
[root@node2 elasticsearch]# netstat -anpt | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      2894/jav

6、查看节点信息,用真机访问http://20.0.0.21:9200/的浏览器打开  ,有文件打开下面的节点的信息
{
    
    
  "name" : "node1",
  "cluster_name" : "my-elk-cluster",
  "cluster_uuid" : "w-YTKpPDQ1a8vq1Q61Fb4w",
  "version" : {
    
    
    "number" : "5.5.0",
    "build_hash" : "260387d",
    "build_date" : "2017-06-30T23:16:05.735Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

【集群检查健康和状态】

http://20.0.0.20:9200/_cluster/health?pretty    ###检查群集健康情况
{
    
    
  "cluster_name" : "my-elk-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

http://20.0.0.20:9200/_cluster/state?pretty   ###检查群集状态信息
{
    
    
  "cluster_name" : "my-elk-cluster",
  "version" : 3,
  "state_uuid" : "HfhEz-gxQuu6kLnhHorg0g",
  "master_node" : "7NGcrv6VSlSLs_LLyIE8Gw",
  "blocks" : {
    
     },
  "nodes" : {
    
    
    "7NGcrv6VSlSLs_LLyIE8Gw" : {
    
    
      "name" : "node2",
      "ephemeral_id" : "Pu7eUtKDRRCnXakl07rwpw",
      "transport_address" : "20.0.0.21:9300",
      "attributes" : {
    
     }
    },
    "43JIvppTQHeSHI4rVlmgQg" : {
    
    
      "name" : "node1",
      "ephemeral_id" : "daQWZr6UT4i8PsXDZR3ZVA",
      "transport_address" : "20.0.0.20:9300",
      "attributes" : {
    
     }
    }
  },
  "metadata" : {
    
    
    "cluster_uuid" : "w-YTKpPDQ1a8vq1Q61Fb4w",
    "templates" : {
    
     },
    "indices" : {
    
     },
    "index-graveyard" : {
    
    
      "tombstones" : [ ]
    }
  },
  "routing_table" : {
    
    
    "indices" : {
    
     }
  },
  "routing_nodes" : {
    
    
    "unassigned" : [ ],
    "nodes" : {
    
    
      "43JIvppTQHeSHI4rVlmgQg" : [ ],
      "7NGcrv6VSlSLs_LLyIE8Gw" : [ ]
    }
  }

【安装elasticsearch-head插件】上述查看集群的方式,及其不方便,我们可以通过安装elasticsearch-head插件后,来管理集群

###登录20.0.0.20 node1主机###

上传node-v8.2.1.tar.gz到/目录下
[root@node1 ~]#  yum install gcc gcc-c++ make -y
###编译安装node组件依赖包###耗时比较长47分钟
[root@node1 ~]# tar xzvf node-v8.2.1.tar.gz    ###解压软件
[root@node1 ~]# cd node-v8.2.1/                      ###进入目录
[root@node1 node-v8.2.1]# ./configure            ###是用来检测你的安装平台的目标特征的,检测gcc、gcc-c++
[root@node1 node-v8.2.1]# make -j4 && make install


####安装phantomjs####前端框架
上传软件包到/usr/local/src/
[root@node1 ~]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2    ###解压
[root@node1 ~]# cd phantomjs-2.1.1-linux-x86_64/bin/                ###进入到指定目录
[root@node1 bin]# cp phantomjs /usr/local/bin/                            ###复制phantomjs到/usr/local/bin/  


###安装elasticsearch-head###数据可视化工具
[root@node1 ~]# tar xzvf elasticsearch-head.tar.gz            ###解压
[root@node1 ~]# cd elasticsearch-head/                              ###进入到指定目录
[root@node1 elasticsearch-head]# npm install                    ###前端工具,项目管理

#########修改主配置文件###############
[root@node1 elasticsearch-head]# cd
[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml    ###下面配置文件,插末尾###
http.cors.enabled:true            ###开启跨域访问支持,默认为false,注意冒号后面有空格
http.cors.allow-origin:"*"       ###跨域访问允许的域名地址,注意冒号后面有空格
[root@node2 ~]# systemctl restart elasticsearch                ###重启一下服务

####启动elasticsearch-head 启动服务器####
[root@node1 ~]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &   ### &:放到后台允许
[2] 49620
[root@node1 elasticsearch-head]# 
> [email protected] start /root/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

[root@node2 elasticsearch-head]# netstat -lnupt |grep 9100   ###查看一下是否起来了,一定要起
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      49121/grunt 

###登录20.0.0.21 node2主机###

上传node-v8.2.1.tar.gz到/目录下
[root@node2 ~]#  yum install gcc gcc-c++ make -y
###编译安装node组件依赖包###耗时比较长47分钟
[root@node2 ~]#tar xzvf node-v8.2.1.tar.gz    ###解压软件
[root@node2 ~]#cd node-v8.2.1/                      ###进入目录
[root@node2 node-v8.2.1]# ./configure            ###是用来检测你的安装平台的目标特征的,检测gcc、gcc-c++
[root@node2 node-v8.2.1]# make -j4 && make install


####安装phantomjs####前端框架
上传软件包到/usr/local/src/
[root@node2 ~]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2    ###解压
[root@node2 ~]# cd phantomjs-2.1.1-linux-x86_64/bin/                ###进入到指定目录
[root@node2 bin]# cp phantomjs /usr/local/bin/                            ###复制phantomjs到/usr/local/bin/  


###安装elasticsearch-head###数据可视化工具
[root@node2 ~]#  tar xzvf elasticsearch-head.tar.gz            ###解压
[root@node2 ~]#  cd elasticsearch-head/                              ###进入到指定目录
[root@node2 elasticsearch-head]# npm install                    ###前端工具,项目管理

#########修改主配置文件###############
[root@node2 elasticsearch-head]# cd
[root@node2 ~]# vim /etc/elasticsearch/elasticsearch.yml    ###下面配置文件,插末尾###
http.cors.enabled:  true            ###开启跨域访问支持,默认为false ,注意冒号后面有空格
http.cors.allow-origin:  "*"       ###跨域访问允许的域名地址,注意冒号后面有空格
[root@node2 ~]# systemctl restart elasticsearch                ###重启一下服务

####启动elasticsearch-head 启动服务器####
[root@node2 ~]# cd elasticsearch-head/
[root@node2 elasticsearch-head]# npm run start &   ### &:放到后台允许
[1] 49111
[root@node2 elasticsearch-head]# 
> [email protected] start /root/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100


[root@node2 elasticsearch-head]# netstat -lnupt |grep 9100   ###查看一下是否起来了,一定要起
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      49121/grunt 

####真机输入20.0.0.20:9100       可以看见群集很健康是绿色####
在Elasticsearch 后面的栏目中输入http://20.0.0.21:9200/   点击连接
ES是去中心化机制,两个节点都是master,不然down一台另一台补不上。

然后点连接会发现:集群健康值: green (0 of 0)
●onode1信息动作
★node2 信息动作

在这里插入图片描述
在这里插入图片描述

####登录20.0.0.20 node1主机#####索引为index-demo,类型为test,可以看到成功创建(也就是添加一个索引)

[root@node1 elasticsearch-head]#  curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
{
    
    
  "_index" : "index-demo",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    
    
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "created" : true
}
  • 真机输入20.0.0.20:9100 就能看见索引
    在这里插入图片描述
    在这里插入图片描述
  • 安装logstash
【安装logstash并做一些日志搜集输出到elasticsearch中】登录主机20.0.0.22
关闭防火墙关闭核心防护

1、更改主机名
[root@localhost ~]# hostnamectl set-hostname apache   ###更改主机名称
[root@localhost ~]# su      ###刷新

2、安装Apahce服务(httpd)
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd

3、安装Java环境
[root@apache ~]# java -version         ###如果没有装安装yum -y install java
openjdk version "1.8.0_181"
penJDK Runtime Environment(build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM(build 25.181-b13, mixed mode)


4、安装logstash
上传logstash-5.5.1.rpm到/opt目录下
[root@apache ~]# cd /opt
[root@apache opt]# rpm -ivh logstash-5.5.1.rpm				##安装logstash
[root@apache opt]# systemctl start logstash.service			##启动logstash
[root@apache opt]# systemctl enable logstash.service
[root@apache opt]# ln -s /usr/share/logstash/bin/logstash  /usr/local/bin/	##建立logstash软连接


5、logstash (Apache)与elasticsearch (node)功能是否正常,做对接测试####
Logstash这个命令测试
字段描述解释:
	-f  通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
	-e后面跟着字符串该字符串可以被当做logstash的配置(如果是"",则默认使用stdin做为输入、stdout作为输出)

	-t  测试配置文件是否正确,然后退出



6、输入采用标准输入输出采用标准输出---登录20.0.0.22 在Apache服务器上
[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }'

..........................................省略..........................................
10:08:54.060 [[main]-pipeline-manager] INFO logstash.pipeline - Pipeline main started
2018-10-12T02:08:54.116Z apache
10:08:54.164 [Api Webserver] INFO logstash.agent - Successfully started Logstash APl endpoint{
    
    :port=>9600}
www.baidu.com	####需要输入www.baidu.com
2020-10-29T03:48:03.027Z apache www.baidu.com
www.sina.com.cn	####需要输入www.sina.com.cn
2020-10-29T03:48:16.793Z apache www.sina.com.cn


7、使用rubydebug显示详细输出,codec为一种编解码器
[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
。。。。。。。。。。。。省略。。 。 。 。。。。。 。 。
The stdin plugin is now waiting for input:
10:40:06.558 [Api Webserver]INFO logstash.agent - Successfully started Logstash APl endpoint {
    
    :por=>9600}
www.baidu.com     ###输入www.baidu.com
{
    
    
    "@timestamp" => 2020-10-29T05:27:34.965Z,
      "@version" => "1",
          "host" => "apache",
       "message" => "www.baidu.com"
}
  • 使用logstash将信息写入elasticsearch中,输入 输出 对接
[root@apache opt]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["20.0.0.20:9200"] } }'
。。。。。。。。。。。。省略。。 。 。 。。。。。 。 。
The stdin plugin is now waiting for input:
10:40:06.558 [Api Webserver]INFO logstash.agent - Successfully started Logstash APl endpoint {
    
    :por=>9600}
www.baidu.com		###输入内容
www.sina.com.cn		###输入内容
www.google.com.cn		###输入内容

在这里插入图片描述

  • Apache主机对接配置
【登录20.0.0.22 Apache主机做对接配置】

###logstash配置文件###
Logstash配置文件主要由三部分组成: input、output、filter(过滤器)(根据需要)
[root@apache data]# chmod o+r /var/log/messages   ###给其他用户加一个执行权限
[root@apache data]# ll /var/log/messages 
-rw----r--. 1 root root 687915 Oct 29 01:38 /var/log/messages
[root@apache data]# systemctl restart logstash.service       ###重启一下

[root@apache data]# vim /etc/logstash/conf.d/system.conf   ###添加一个system.conf配置文件
input {
    
    
        file{
    
    
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
      }
output {
    
    
        elasticsearch {
    
    
        hosts => ["20.0.0.21:9200"]
        index => "system-%{+YYYY.MM.dd}"
        }
      }

[root@apache data]# systemctl restart logstash.service   ###重启服务     
  • 访问20.0.0.21:9200就能看见
    在这里插入图片描述
    在这里插入图片描述

  • 安装kibana

###登录20.0.0.21 node2主机###
##在node2主机安装kibana##
上传kibana-5.5.1-x86_64.rpm 到/usr/local/src目录
[root@node2 elasticsearch-head]# cd /usr/local/src/          ###进入目录
[root@node2 src]# rpm -ivh kibana-5.5.1-x86_64.rpm        ###解压上传的rpm包
[root@node2 src]# cd /etc/kibana/                                       ###进入kibana目录
[root@node2 kibana]# cp kibana.yml kibana.yml.bak        ###把yml文件备份一份
[root@node2 kibana]# vi kibana.yml                                    ###编辑
2/ server.port:5601	#### kibana打开的端口,第二行
7/ server.host: "o.0.0.0"	####kibana侦听的地址,第7行
21/ elasticsearch.url: "http://20.0.0.21:9200"	###和elasticsearch建立联系,第21行
30/ kibana.index: ".kibana"	####在elasticsearch中添加.kibana索引,第30行
[root@node2 kibana]# systemctl start kibana.service	###启动kibana服务
[root@node2 kibana]# systemctl enable kibana.service 	###开机启动kibana服务
  • 真机浏览器输入20.0.0.21:5601
    首次登陆创建一个索引名字 :systemc-* ###这是对接系统日志文件
    Index name or pattern ###下面输入system-*

然后点最下面的出面的create 按钮创建
在这里插入图片描述

然后点最左上角的Discover按钮会发现system-*信息

然后点下面的host旁边的add 会发现右面的图只有Time 和host选项了这个比较友好
在这里插入图片描述

  • 对接Apache主机的apache日志文件
#####对接Apache主机的Apache日志文件(访问的、错误的)#####在apache那台服务器上做!!
[root@apache opt]# cd /etc/logstash/conf.d/
[root@apache conf.d]# vi apache_log.conf
input {
    
    
       file {
    
    
          path => "/etc/httpd/logs/access_log"
          type => "access"     ###这里名称和下面output的type名称相对应,不要写错了
          start_position => "beginning"
       }
        file {
    
    
          path => "/etc/httpd/logs/error_log"
          type => "error"
          start_position => "beginning"
       }

      }
output {
    
    
       if [type] == "access" {
    
         ###这里access名称和上面type名称相对应
        elasticsearch {
    
    
         hosts => ["20.0.0.21:9200"]
          index => "apache_access-%{+YYYY.MM.dd}"
        }

       }
        if [type] == "error" {
    
    
        elasticsearch {
    
    
         hosts => ["20.0.0.21:9200"]
         index => "apache_error-%{+YYYY.MM.dd}"
        }
       }
     }

[root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf   

在这里插入图片描述
在这里插入图片描述

  • 登录20.0.0.21 node2主机,打开输入20.0.0.21
打开浏览器输入20.0.0.21:9100/查看索引信息###
能发现
apache_error-2019.04.16	apache_access-2019.04.16
  • 打开浏览器输入20.0.0.21:5601
点击左下角有个management选项---index   patterns---create   index pattern
---分别创建apache error-* 和 apache access-*的索引

六、实验报错集:

1、错误提示
[LogStash::Runner] FATAL logstash.runner - Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the “path.data” setting.
[root@apache ~]# netstat -anpt | grep logstash-5.5.1.rpm

解决方法:
原因:之前运行的instance有缓冲,保存在path.data里面有.lock文件,删除掉就可以。
解决办法:在 logstash.yml 文件中找到 Data path 的路径(默认在安装目录的data目录下)
[root@apache ~]# cd /usr/share/logstash/data/
[root@apache data]# ls -la
[root@apache data]# rm -rf .lock
[root@apache data]# systemctl restart logstash.service #重新启动以后正常

猜你喜欢

转载自blog.csdn.net/weixin_44733021/article/details/109334934