热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ELK6.2+FileBeat6.2(单节点)入门

原文地址,转载请注明出处:https:blog.csdn.netqq_34021712articledetails79502672©王赛超谈到ELK&

原文地址,转载请注明出处:https://blog.csdn.net/qq_34021712/article/details/79502672   ©王赛超

谈到ELK,说起日志传输,首先想到的就是Logstash,Logstash主要的优点就是它的灵活性,这还主要因为它有很多插件。丰富的输入插件可以采集各种样式、大小和来源的数据。丰富的过滤插件可以实时解析和转换数据,能够动态地转换和解析数据,不受格式或复杂度的影响,Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用。

Logstash致命的问题是它的性能以及资源消耗(默认的堆大小是 1GB)。尽管它的性能在近几年已经有很大提升,与它的替代者们相比还是要慢很多的。如果服务器性能较差,并不推荐为每个服务器安装 Logstash ,这样就需要一个轻量的日志传输工具,将数据从服务器端经由一个或多个 Logstash 中心服务器传输到 Elasticsearch。

FileBeat介绍

Filebeat是一个轻量级的日志传输工具,它的存在正弥补了,Logstash的缺点:Filebeat作为一个轻量级的日志传输工具可以将日志推送到Logstash 或者缓冲池中。

详细参考官网介绍:https://www.elastic.co/cn/products/beats/filebeat  

FileBeat的配置文件官网地址

下载


https://www.elastic.co/downloads/beats/filebeat

点击LINUX 64-BIT下载,linux64位tar包。

安装


①解压

tar -zxvf filebeat-6.2.2-linux-x86_64.tar.gz
②重命名

mv filebeat-6.2.2-linux-x86_64 filebeat

环境介绍


主机 安装软件收集日志
172.20.1.186filebeat,Kibana系统日志和es日志
172.20.1.187Logstash,Elasticsearch+head插件收集各个节点filebeat日志

使用的软件版本为:Elasticsearch6.2+Logstash6.2+Kibana6.2+FileBeat6.2


ElasticSearch6.2单机安装


Elasticsearch-head插件安装


Logstash6.2单机安装

Kibana6.2安装使用

FileBeat+Logstash配置过程

①为什么通过使用SSL 编辑保护与Logstash的通信?

数据在远程传输过程中,可能被劫持和获取,继而造成的后果是数据信息泄露,那么如何有效的进行数据传输呢,您可以使用SSL相互身份验证来保护Filebeat和Logstash之间的连接。这可确保Filebeat仅将加密数据发送到受信任的Logstash服务器,并确保Logstash服务器仅从受信任的Filebeat客户端接收数据。

②生成密钥


在172.20.1.186(Filebeat所在服务器)上执行下面命令生成秘钥,为了区分,生成文件后面加个186来区分服务器:

openssl req -subj '/CN=172.20.1.186/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/filebeat186.key -out /etc/pki/tls/certs/filebeat186.crt
在172.20.1.187(Logstash所在的服务器)上执行下面命令生成秘钥:

openssl req -subj '/CN=172.20.1.187/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash.key -out /etc/pki/tls/certs/logstash.crt

使用以下命令将172.20.1.186上生成的FileBeat秘钥拷贝到Logstash所在的服务器上:

scp /etc/pki/tls/certs/filebeat186.crt root@172.20.1.187:/etc/pki/tls/certs/

使用以下命令将172.20.1.187上生成的Logstash秘钥拷贝到FileBeat所在的服务器上:

scp /etc/pki/tls/certs/logstash.crt root@172.20.1.186:/etc/pki/tls/certs/

③配置Filebeat

先使用 echo "" > filebeat.yml 将配置文件清空,因为里面有很多的注释,看起来很乱。


172.20.1.186(Filebeat)配置文件修改为:

filebeat.prospectors:
- type: log#设置为true使该配置生效enabled: truepaths:#收集日志路径,多个往下继续写就可以了- /var/log/messagesfields:#自定义属性,用来区分不通服务器上的日志log_source: 172.20.1.186-system
- type: logenabled: truepaths:- /usr/local/elk/elasticsearch/logs/es6.2.logfields:log_source: 172.20.1.186-es#下面三个属性配置根据[ 将java异常堆栈收集为一条消息,也可以logstash中配置multiline.pattern: '^\['multiline.negate: truemultiline.match: after#该属性可以配置只收集error级别和warn级别的日志,如果有配置多行收集,一定要将这个配置放在多行的后面include_lines: ['ERROR','WARN']#该属性配置不收集DEBUG级别的日志,如果配置多行 这个配置也要放在多行的后面exclude_lines: ['DEBUG']
output.logstash:#如果是多个logstash将下面三条属性打开#hosts: ["localhost:5044", "localhost:5045"]#loadbalance: true#worker: 3hosts: ["172.20.1.187:5044"]#这个index的值也可以自定义,用来修改@metadata[beat]值,默认是filebeatindex: "filebeat"ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash.crt"]ssl.certificate: "/etc/pki/tls/certs/filebeat186.crt"ssl.key: "/etc/pki/tls/private/filebeat186.key"

配置解释:


type: log 读取日志文件的每一行(默认)
enabled: true 该配置是否生效,如果改为false,将不收集该配置的日志
paths: 要抓取日志的全路径
fields: 自定义属性,可以定义多个,继续往下排就行
multiline.pattern: 正则表达式
multiline.negate: true 或 false;默认是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行
multiline.match: after 或 before,合并到上一行的末尾或开头
include_lines: ['ERROR','WARN'] 该属性可以配置只收集error级别和warn级别的日志,如果有配置多行收集,一定要将这个配置放在多行的后面
exclude_lines: ['DEBUG'] 该属性配置不收集DEBUG级别的日志,如果配置多行 这个配置也要放在多行的后面
hosts: Logstash所在的主机
loadbalance: 如果设置为TRUE和配置了多台logstash主机,输出插件将负载均衡的发布事件到所有logstash主机。如果设置为false,输出插件发送所有事件到随机的一台主机上,如果选择的不可达将切换到另一台主机。默认是false。
worker: 每个配置的主机发布事件到Logstash的工作者数量。这最适用于启用负载平衡模式。示例:如果您有2个主机和3个工作人员,则共有6个工作人员启动(每个主机3个)。
ssl.certificate_authorities: CA 证书,即用来签署证书的证书。这里表示配置 Filebeat 使其信任所有由该 CA 证书发行的证书。因为自签名证书的发行者和证书主体相同,所以这里直接使用 Logstash 证书使 Filebeat 信任使用该证书的 Logstash server

ssl.certificate & ssl.certificate_key: Filebeat 证书和 key 文件。Filebeat 将使用它们向 Logstash server 证明自己的可信身份。

④配置Logstash

172.20.1.189(Logstash)配置:vim logstash.conf 

input { beats { port => 5044 ssl => true #如果收集多个filebeat日志,用逗号隔开配置#["/etc/pki/tls/certs/filebeat186.crt","/etc/pki/tls/certs/filebeat181.crt"]ssl_certificate_authorities => ["/etc/pki/tls/certs/filebeat186.crt"] ssl_certificate => "/etc/pki/tls/certs/logstash.crt" ssl_key => "/etc/pki/tls/private/logstash.key" ssl_verify_mode => "force_peer" }
} output { elasticsearch { hosts => ["http://172.20.1.187:9200"] #默认使用[@metadata][beat]来区分不同的索引,也就是filebeat中配置的index字段 #index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" #我使用自定义fields字段来区分不同的索引 index => "%{[fields][log_source]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }

ssl_verify_mode: force_peer将使服务器要求客户提供证书。如果客户端没有提供证书,连接将被关闭

logstash中如何获取filebeat中添加的fields字段:

%{[fields][添加的字段名]}

⑤启动ELK+FileBeat

#FileBeat控制台启动方式
./filebeat -e -c filebeat.yml -d "publish"

控制台报以下异常:

ERROR pipeline/output.go:74 Failed to connect: x509: cannot validate certificate for 172.20.1.187 because it doesn't contain any IP SANs
解决办法:


删除之前的logstash证书,然后编辑logstash所在的服务器 vim /etc/pki/tls/openssl.cnf


找到 [ v3_ca ] 


加入下边一行:


subjectAltName = IP:172.20.1.187(前面的两个大写字母IP要带上,后面的地址为logstash所在的ip)

然后再将重新生成的logstash的证书,重新拷贝到filebeat所在的服务器。之前生成的Filebeat证书不用动。

⑥重新启动ELK+FileBeat

之后就可以在Elasticsearch-head插件中看到有两个新的索引创建了。




我们可以使用下面的命令往Elasticsearch的日志文件中输入一句话测试一下

echo "我是王赛超" > /usr/local/elk/elasticsearch/logs/es6.2.log

然后看FIleBeat的控制台打印

Kibana中也可以搜索到该日志信息:





测试FileBeat的java异常收集,为了方便测试直接修改FileBeat本机上安装的elasticsearch配置文件中的network.host: 0.0.0.0.0 然后日志中报以下异常


然后在Kibana中也可以搜索到该日志信息,FileBeat已将java异常多行收集为同一个日志时间:







推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
author-avatar
lao6345790
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有