部署ELK日志采集系统

优采云 发布时间: 2020-08-08 23:33

  ELK日志采集

  ELK是Elasticsearch,Logstash和Kibana的缩写. 这三个是核心程序包,但不是全部.

  Elasticsearch是一个实时的全文本搜索和分析引擎,它提供了采集,分析和存储数据的三种功能. 它是一组开放的REST和JAVA API结构,可提供有效的搜索功能和可扩展的分布式系统. 它建立在Apache Lucene搜索引擎库的顶部.

  Logstash是用于采集,分析和过滤日志的工具. 它支持几乎所有类型的日志,包括系统日志,错误日志和自定义应用程序日志. 它可以从许多来源接收日志,包括系统日志,消息传递(例如RabbitMQ)和JMX,并且可以通过多种方式输出数据,包括电子邮件,Websocket和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所做的事情分三个阶段执行: 输入输入-“处理过滤器(不必要)-”输出输出,这是我们需要配置的三个部分,因为它是一个测试,因此没有过滤器添加了过滤器和过滤器,仅配置输入和输出. 一个文件可以有多个输入. 过滤器非常有用,但它也更麻烦. 这需要大量的实验. 对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地址以及可以从Internet访问的绑定地址.

  [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!!!

  开始记录日志

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

  在浏览器中输入: : 5601 /,您可以打开kibana页面.

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

  创建索引后,单击左侧的“发现”以查看对刚创建的日志的分析.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线