原版Filebeat+ELK

在日常运维工作中,对于系统和业务日志的处理尤为重要。今天,在这里分享一下自己部署的Filebeat+ELK开源实时日志分析平台的记录过程,有不对的地方还望指出。

简单介绍:

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

Filebeat+ELK是四个开源工具组成,简单解释如下:

Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。

Elasticsearch:是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash:是一个完全开源的工具,它可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

Kibana:也是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

这里之所以用Filebeat+ELK是因为Filebeat相对于logstash而言,更轻量级,占用系统资源少。

实验拓扑图

 环境信息:

操作系统 ip地址 软件
centos6.9 10.104.34.101 filebeat6.2.4
centos6.8 10.135.67.165 Logstash6.2.4
centos6.8 10.135.67.165 Elasticsearch6.2.4
centos6.8 10.135.173.165 Kibana6.2.4

我这里把elasticsearch和logstash部署在同一台服务器上了。

安装步骤:

1、配置Java环境:(安装elasticsearch的时候需要有Java环境,jdk可以去oracle官方网站下载,版本号可以和我的不一样)

#rpm -ivh jdk-8u102-linux-x64.rpm

2、安装elasticsearch:

#wget -P /usr/local/src/ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
#cd /usr/local/src
#tar xvf elasticsearch-6.2.4.tar.gz
#cp elasticsearch-6.2.4/config/elasticsearch.yml elasticsearch-6.2.4/config/elasticsearch.yml.default   --备份elasticsearch的默认配置文件,以防止修改时出错

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

这两行配置主要是为了解决之后启动elasticsearch会报检测失败的一个错,报错内容如下:

ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

原因:这是在因为Centos6不支持SecComp,而ES5.2.0版本之后默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

添加elastic用户,tar包启动必须使用普通用户运行

#useradd elastic
#chown -R elastic. /usr/local/src/elasticsearch-6.2.4

打开sysctl.conf文件,添加如下内容:

#vim /etc/sysctl.conf
 vm.max_map_count = 655360
#sysctl -p /etc/sysctl.conf

打开/etc/security/limits.conf文件,修改打开文件句柄数

#vim /etc/security/limits.conf  --添加如下内容
 * soft nofile 65536
 * hard nofile 65536
 * soft nproc 65536
 * hard nproc 65536
切换到elastic普通用户
#su - elastic
$cd /usr/local/src/elasticsearch-6.2.4
$./bin/elasticsearch

第一次启动需要一些时间,因为需要做一些初始化动作,如果没启动成功请查系elasticsearch的相关日志解决。注意上面只是前台启动调试,在后台需要加&,需要重新启动。

查看端口是否开启:

curl简单的测试下:

3、安装logstash

#wget -P /usr/local/src https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
#cd /usr/local/src/
#tar xvf logstash-6.2.4.tar.gz

4、安装filebeat

#wget -P /usr/local/src https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
#cd /usr/local/src
#tar xvf filebeat-6.2.4-linux-x86_64.tar.gz
#cp /usr/local/src/filebeat-6.2.4/filebeat.yml /usr/local/src/filebeat-6.2.4/filebeat.yml.default

编辑filebeat.yml文件,内容如下:

启动filebeat服务:

#cd /usr/local/src/filebeat-6.2.4
#./filebeat &  --在后台运行

注意:filebeat没有监听端口,主要看日志和进程,filebeat监听的文件记录信息在/usr/local/src/filebeat-6.2.4/data/registry里面

然后新建一个logstash启动指定logstash.conf的配置文件,内容如下:

这里我们只配置了input和output部分,其实Logstash默认有input、filter、output三个区域,但一般至少配置input和output部分就够了,并且logstash的默认配置文件logstash.yml我们选择不修改就行。

下面我们启动logstash,然后进行先进行简单的测试:

#cd /usr/local/src/logstash-6.2.4
#./bin/logstash -e ‘input { stdin { } } output { stdout { } }‘ --先进行不指定配置文件测试当我们输入hello world的时候,对应的下面也会输出

接下来指定配置文件logstash.conf进行测试:

#cd /usr/local/src/logstash-6.2.4
#./bin/logstash -f config/logstash.conf   --这里我们先前台启动方便调试,待调试成功后再后台启动

这个启动完一会后会输出如下数据,这些数据就是filebeat从access.log里采集过来的日志,其实这些数据也输入到了elasticsearch当中,可以用curl http://ip:9200/_search?pretty

进行验证(ip为elasticsearch的ip)

当然我们也可以看到对应的端口9600和5044是开启的

5、安装kibana

#wget -P /usr/local/src https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
#cd /usr/local/src
#tar xvf kibana-6.2.4-linux-x86_64.tar.gz
#cp kibana-6.2.4-linux-x86_64/config/kibana.yml  kibana-6.2.4-linux-x86_64/config/kibana.yml.default

编辑kibana的配置文件

这里server.host理论上来说配置成本服务器的外网ip即可,但是我用的云服务器,配置成相应的外网ip在启动的时候会报无法分配对应的ip地址,至于是什么原因我也没搞明白,但是配置成0.0.0.0后就可

以正常启动。

打开浏览器输入:http://ip:5601(ip为kibana的外网ip地址)

进来之后首先创建一个索引,然后输入Time Filter field name名字,均填完之后点击创建。

点击Discover可以看到采集的日志已经到kibana这里来了,至此,filebeat+elk日志分析系统就搭建完了,还有许多高级功能需不断学习。

原文地址:https://www.cnblogs.com/Su-per-man/p/12155280.html

时间: 2024-11-02 09:17:18

原版Filebeat+ELK的相关文章

linux单机部署kafka(filebeat+elk组合)

filebeat+elk组合之kafka单机部署 准备: kafka下载链接地址:http://kafka.apache.org/downloads.html 在这里下载kafka_2.12-2.10.0.0.tgz(kafka和zookeeper都用同一个包里的). 一.安装和配置jdk(下载jdk,配置环境即可) JAVA_HOME=/opt/jdk1.8.0_131 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH

FILEBEAT+ELK日志收集平台搭建流程

filebeat+elk日志收集平台搭建流程 1.         整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kibana三款开源软件的集合. FILEBEAT:代替logstash的采集功能,轻量.耗用小. 目前收集的有nginx日志.java日志[单行|多行]. 都是通过在客户端的生成日志配置文件中定义好初步json格式,然后利用filebeat采集到logstash,存储到elasticsearch,最后通过k

helm部署Filebeat + ELK

helm部署Filebeat + ELK 系统架构图: 1) 多个Filebeat在各个Node进行日志采集,然后上传至Logstash 2) 多个Logstash节点并行(负载均衡,不作为集群),对日志记录进行过滤处理,然后上传至Elasticsearch集群 3) 多个Elasticsearch构成集群服务,提供日志的索引和存储能力 4) Kibana负责对Elasticsearch中的日志数据进行检索.分析 1. Elasticsearch部署 官方chart地址:https://gith

filebeat+elk简单搭配

参考: https://www.cnblogs.com/configure/p/7607302.html (kibana登陆认证[借用nginx转发]) https://www.elastic.co/cn/products(官网) https://zhuanlan.zhihu.com/p/23049700(filebeat) https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html#plugins-fil

Kafka+Zookeeper+Filebeat+ELK 搭建日志收集系统

ELK ELK目前主流的一种日志系统,过多的就不多介绍了 Filebeat收集日志,将收集的日志输出到kafka,避免网络问题丢失信息 kafka接收到日志消息后直接消费到Logstash Logstash将从kafka中的日志发往elasticsearch Kibana对elasticsearch中的日志数据进行展示 image 环境介绍: 软件版本: - Centos 7.4 - java 1.8.0_45 - Elasticsearch 6.4.0 - Logstash 6.4.0 - F

filebeat+elk+zookeeper启动命令

./filebeat setup --dashboards curl -X GET "10.0.6.114:9200/_cat/indices?v" 启动filebeatcd /opt/filebeat-6.5.4-linux-x86_64 ./filebeat -e -c filebeat.yml & 启动kafkacd /opt/kafka_2.11-2.1.0/bin./kafka-server-start.sh ../config/server.properties &

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程以及问题总结

安装流程: 稍后补充 参考内容:http://udn.yyuap.com/thread-54591-1-1.html ; https://www.cnblogs.com/yanbinliu/p/6208626.html 在搭建测试过程中遇到以下问题:1.FileBeat日志报 "dial tcp 127.0.0.1:5044: connectex: No connection could be made because the target machine actively refused it

Windows系统下Log4Net+FileBeat+ELK日志分析系统问题总结

问题如下:1.FileBeat日志报 "dial tcp 127.0.0.1:5544: connectex: No connection could be made because the target machine actively refused it"解决过程:A:修改FileBeat文件夹中filebeat.yml文件,直接输出结果到elasticsearch中,经测试elasticsearch中可以查看到数据,排除FileBeat问题 B:控制台中输入以下内容,启动log

海量日志下的日志架构优化:filebeat+logstash+kafka+ELK

前言: 实验需求说明 在前面的日志收集中,都是使用的filebeat+ELK的日志架构.但是如果业务每天会产生海量的日志,就有可能引发logstash和elasticsearch的性能瓶颈问题.因此改善这一问题的方法就是filebeat+logstash+kafka+ELK,也就是将存储从elasticsearch转移给消息中间件,减少海量数据引起的宕机,降低elasticsearch的压力,这里的elasticsearch主要进行数据的分析处理,然后交给kibana进行界面展示 实验架构图: