文章采集系统(ELK日志收集、Logstash、Kibana的简称,并非全部)

优采云 发布时间: 2022-02-09 02:09

  文章采集系统(ELK日志收集、Logstash、Kibana的简称,并非全部)

  ELK日志采集

  ELK 是 Elasticsearch、Logstash、Kibana 的缩写,这三个是核心套件,但不是全部。

  Elasticsearch是一个实时全文搜索分析引擎,提供数据采集、分析、存储三大功能;它是一套开放的 REST 和 JAVA API 结构,提供高效的搜索功能和可扩展的分布式系统。它建立在 Apache Lucene 搜索引擎库之上。

  Logstash 是一个采集、分析和过滤日志的工具。它支持几乎所有类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以接收来自多种来源的日志,包括 syslog、消息传递(例如 RabbitMQ)和 JMX,并且可以通过多种方式输出数据,包括电子邮件、websockets 和 Elasticsearch。

  Kibana 是一个基于 Web 的图形界面,用于搜索、分析和可视化存储在 Elasticsearch 指标中的日志数据。它利用 Elasticsearch 的 REST 接口来检索数据,不仅允许用户为自己的数据创建定制的仪表板视图,还允许他们以特别的方式查询和过滤数据。

  1、准备环境1.1、配置java环境

  去官网下载jdk1.8以上的包,然后配置java环境,保证环境正常使用。此处跳过安装过程。不明白的请自行百度。

  [root@vm96-yw-65-test-3060 application]# java -version

java version "1.8.0_181"

Java(TM) SE Runtime Environment (build 1.8.0_181-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

  1.2、下载ELK包

  去官网下载Elasticsearch、Logstash和Kibana。因为是测试环境,所以我下载了最新版本v6.4.0,下载后解压。

  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz

  2、配置2.1、修改系统配置

  Elasticsearch对系统最大连接数有要求,所以需要修改系统连接数。

  echo '

* hard nofile 65536

* soft nofile 65536

* soft nproc 65536

* hard nproc 65536

' >>/etc/security/limits.conf

  echo 'vm.max_map_count = 262144' >> /etc/sysctl.conf

  vim /etc/security/limits.d/90-nproc.conf

# 第一行最后一个数,修改为4096,如果是则不用修改

# limits.d下面的文件可能不是90-nproc.conf,可能是其他数字开头的文件。

* soft nproc 4096

root soft nproc unlimited

  2.2、elasticSearch 配置

  这其实是ELK的核心。启动时一定要注意。从5.0开始,提高了ElasticSearch的安全级别,不允许使用root账号启动,所以我们需要添加用户,所以还需要创建一个elsearch账号。

  groupadd es #新建es组

useradd es -g es -p elasticsearch #新建一个es用户

chown -R es:es /usr/elasticsearch-6.4.0/ #指定elasticsearch-6.4.0目录下的文件所属elsearch组

  修改配置文件

  vim /application/elasticsearch-6.4.0/config/elasticsearch.yml

······

path.data: /application/elasticsearch-6.4.0/data

path.logs: /application/elasticsearch-6.4.0/logs

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

network.host: 0.0.0.0

······

  启动

  su es ## 切换到普通用户

cd /application/elasticsearch-6.4.0/

./bin/elasticsearch -d ## -d 后台运行

  2.3、logstash 配置

  解压后进入config目录新建logstash.conf配置,添加如下内容。

  [root@vm96-yw-65-test-3060 config]# pwd

/application/logstash-6.4.0/config

[root@vm96-yw-65-test-3060 config]# vim logstash.conf

input {

file {

type => "log"

path => "/logs/*.log" ##创建一个/logs目录用于之后的测试

start_position => "beginning"

}

}

output {

stdout {

codec => rubydebug { }

}

elasticsearch { ##输出到es

hosts => "localhost:9200"

index => "log-%{+YYYY.MM.dd}"

}

}

  logstash做的事情是分三个阶段执行的:输入输入-》处理过滤器(非必须)-》输出输出,这是我们需要配置的三个部分,因为是测试,所以不加filter过滤和过滤,配置只有输入和输出。一个文件可以有多个输入。过滤器很有用,但也是个麻烦点。它需要大量的实验。nginx、Apache等服务的日志分析需要使用该模块进行过滤分析。

  [root@vm96-yw-65-test-3060 config]# nohup ../bin/logstash -f logstash.conf &

# 使用nohup,启动后台运行,如需关闭使用kill -9,建议多开窗口,启动ELK三个服务,可以观看控制窗口的报错信息

  2.4、kibana 配置

  它的配置也很简单,需要在kibana.yml文件中指定需要读取的elasticSearch地址和可以从外网访问的绑定地址。

  [root@vm96-yw-65-test-3060 config]# vim /application/kinbana-6.4.0/config/kibana.yml

······

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

server.host: 0.0.0.0

······

  启动

  [root@vm96-yw-65-test-3060 config]# nohup ../bin/kibana &

# 使用nohup,启动后台运行,如需关闭使用kill -9

  2.5、测试

  写测试日志

  vim /logs/test.log

Hello,World!!!

  启动logstash

  [root@vm96-yw-65-test-3060 config]# nohup ../bin/logstash -f logstash.conf &

  在浏览器中输入::5601/,即可打开kibana页面。

  单击管理 => 索引模式以创建索引。如果ES从logstash接收到日志数据,页面会显示可以创建的索引,否则会显示无法创建索引。请自行检查日志文件中的分析错误。

  创建索引后,点击左侧的Discover,可以看到对刚刚创建的日志的分析。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线