首页 > 其他分享 >filebeat实战

filebeat实战

时间:2024-04-11 10:47:46浏览次数:20  
标签:实战 opt filebeat 27 tomcat root es

1.打开filebeat支持nginx模块

[root@es-node1 /etc/filebeat]#ls
fields.yml  filebeat.reference.yml  filebeat.yml  filebeat.yml.bak  modules.d
[root@es-node1 /etc/filebeat]#ls modules.d/

[root@es-node1 /etc/filebeat]#filebeat version
filebeat version 7.9.1 (amd64), libbeat 7.9.1 [ad823eca4cc74439d1a44351c596c12ab51054f5 built 2020-09-01 19:58:51 +0000 UTC]
[root@es-node1 /etc/filebeat]#


查看开启了哪些模块
[root@es-node1 /etc/filebeat]#filebeat modules list
Error in modules manager: modules management requires 'filebeat.config.modules.path' setting


修改配置文件
[root@es-node1 /etc/filebeat]#tail -5 /etc/filebeat/filebeat.yml
logging.to_files: true

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: true 


默认未激活的模块
[root@es-node1 /etc/filebeat]#filebeat modules list|wc -l
60


激活filebeat对nginx支持的模块,本质就是去修改modules.d/下的yml文件,去掉了disable后缀

[root@es-node1 /etc/filebeat]#filebeat modules enable nginx
Enabled nginx


# 打开nginx模块文件,添加nginx日志输入源

cat > /etc/filebeat/modules.d/nginx.yml << 'EOF'
- module: nginx
  access:
    enabled: true
    var.paths: ["/var/log/nginx/access.log"]
  error:
    enabled: true
    var.paths: ["/var/log/nginx/error.log"]
  ingress_controller:
    enabled: false
EOF


# 最后修改filebeat.yml,不需要input了
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: true 

output.elasticsearch:
  hosts: ["10.0.0.51:9200"]
  indices:
    - index: "nginx-access-%{[agent.version]}-%{+yyyy.MM}"
      when.contains:
        log.file.path: "/var/log/nginx/access.log"

    - index: "nginx-error-%{[agent.version]}-%{+yyyy.MM}"
      when.contains:
        log.file.path: "/var/log/nginx/error.log"

setup.ilm.enabled: false
setup.template.enabled: false

logging.level: info
logging.to_files: true


# 清理es、filebeat、nginx环境、测试使用

# 重启filebeat

 

查看kibana(pipeline)

 

kibana展示es

 

2.filebeat收集tomcat日志

# jdk
[root@tomcat-10 ~/tomcat-all]#tar -xf jdk-8u221-linux-x64.tar.gz -C /opt
[root@tomcat-10 ~/tomcat-all]#ls /opt
jdk1.8.0_221

配置软连接,修改PATH
[root@tomcat-10 ~/tomcat-all]#ln -s /opt/jdk1.8.0_221/ /opt/jdk8
# sed命令,快速修改 /etc/profile 全局用户环境变量文件

sed -i.ori '$a export JAVA_HOME=/opt/jdk8\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

# tomcat
[root@es-node1 /opt]#tar -xf apache-tomcat-8.0.27.tar.gz 
[root@es-node1 /opt]#cd /opt/apache-tomcat-8.0.27/
[root@es-node1 /opt/apache-tomcat-8.0.27]#


# 修改tomcat日志格式
135         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
136                prefix="localhost_access_log" suffix=".txt"
137                pattern="{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&quot;:&quot;%l&quot;,&quot;authenticated&quot;:&quot;%u&quot;,&quot;AccessTime&quot;:&quot;%t&quot;,&quot;m    ethod&quot;:&quot;%r&quot;,&quot;status&quot;:&quot;%s&quot;,&quot;SendBytes&quot;:&quot;%b&quot;,&quot;Query?string&quot;:&quot;%q&quot;,&quot;partner&quot;:&quot;%{Referer}i&quot;,&qu    ot;AgentVersion&quot;:&quot;%{User-Agent}i&quot;}"/>


[root@es-node1 /opt/jdk8]#/opt/apache-tomcat-8.0.27/bin/shutdown.sh 
Using CATALINA_BASE:   /opt/apache-tomcat-8.0.27
Using CATALINA_HOME:   /opt/apache-tomcat-8.0.27
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.0.27/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/apache-tomcat-8.0.27/bin/bootstrap.jar:/opt/apache-tomcat-8.0.27/bin/tomcat-juli.jar
[root@es-node1 /opt/jdk8]#/opt/apache-tomcat-8.0.27/bin/startup.sh 
Using CATALINA_BASE:   /opt/apache-tomcat-8.0.27
Using CATALINA_HOME:   /opt/apache-tomcat-8.0.27
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.0.27/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/apache-tomcat-8.0.27/bin/bootstrap.jar:/opt/apache-tomcat-8.0.27/bin/tomcat-juli.jar
Tomcat started.
[root@es-node1 /opt/jdk8]#

# 查看tomcat日志。是否是json
[root@es-node1 /opt/jdk8]#cat /opt/apache-tomcat-8.0.27/logs/localhost_access_log.2023-02-19.txt 
{"clientip":"127.0.0.1","ClientUser":"-","authenticated":"-","AccessTime":"[19/Feb/2023:20:55:36 +0800]","method":"GET / HTTP/1.1","status":"200","SendBytes":"11250","Query?string":"","partner":"-","AgentVersion":"curl/7.29.0"}
[root@es-node1 /opt/jdk8]#

#配置filebeat文件

Filebeat.yml

  1 filebeat.inputs:
  2 - type: log
  3   enabled: true
  4   paths:
  5     - /opt/apache-tomcat-8.0.27/logs/localhost_access_log.*.txt
  6   json.keys_under_root: true
  7   json.overwrite_keys: true
  8   tags: ["tomcat"]
  9 
 10 filebeat.config.modules:
 11   path: ${path.config}/modules.d/*.yml
 12   reload.enabled: true
 13 
 14 output.elasticsearch:
 15   hosts: ["10.0.0.18:9200"]
 16   indices:
 17     - index: "nginx-access-%{[agent.version]}-%{+yyyy.MM}"
 18       when.contains:
 19         log.file.path: "/var/log/nginx/access.log"
 20 
 21     - index: "nginx-error-%{[agent.version]}-%{+yyyy.MM}"
 22       when.contains:
 23         log.file.path: "/var/log/nginx/error.log"
 24     - index: "tomcat-access-%{[agent.version]}-%{+yyyy.MM}"
 25       when.contains:
 26         tags: "tomcat"  
 27 
 28 setup.ilm.enabled: false
 29 setup.template.enabled: false
 30 
 31 logging.level: info
 32 logging.to_files: true

重启filebeat

[root@es-node1 /opt/jdk8]#vim /etc/filebeat/filebeat.yml
[root@es-node1 /opt/jdk8]#systemctl restart filebeat.service

 

3.小结

ElasticSearch + Filebeat + kibana玩法先到这,基本流程

1. filebeat + 目标软件日志(json)
2. 发给es
3. kibana管理es索引,进行数据展示,过滤,可视化管理

标签:实战,opt,filebeat,27,tomcat,root,es
From: https://www.cnblogs.com/sxy-blog/p/18128283

相关文章

  • 从零开始搭建云呼叫中心之FreeSwitch实战
    一.开篇在当今快速发展的数字化时代,企业对于高效率、低成本、可扩展性强的通信解决方案的需求日益增长。云呼叫中心作为一种新兴的服务模式,正逐渐取代传统的硬件呼叫中心。FreeSwitch,作为一款强大的开源通信平台,因其卓越的性能和灵活性而成为搭建云呼叫中心的理想选择。本文......
  • 自动化运维(十五)Ansible 实战之批量创建WEB服务器
        前面我们学习了一些Ansible模块的知识,从这一块篇开始我们进入到 Ansible实战内容的学习,我们会根据实际应用中的一些案例来演示这些模块的综合应用。现在我们有这么一个需求:在esxi虚拟机192.168.110.2上创建5台web服务器,web服务器配置为2核4G,50G硬盘,安装nginx服务......
  • Flutter实战 -- fl_chart(条形图)
    1-引入依赖fl_chart:^0.35.0#折线图2-条形图具体实现条形图代码:import'package:fl_chart/fl_chart.dart';import'package:flutter/material.dart';classMyHomePageextendsStatefulWidget{constMyHomePage({super.key,requiredthis.title});fina......
  • OpenCV与AI深度学习 | 实战 | 使用OpenCV确定对象的方向(附源码)
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|使用OpenCV确定对象的方向(附源码)导读本文将介绍如何使用OpenCV确定对象的方向(即旋转角度,以度为单位)。 1先决条件   安装Python3.7或者更高版本。可以参考下文链接:    ......
  • 鸿蒙HarmonyOS实战-ArkUI组件(Popup)
    ......
  • 【Vue I18n 国际化插件】vue3+vue-i18n 项目实战总结
    一、为什么要国际化?前端国际化:应用要服务于不同的地区的用户,所以应用不能单一语言;应用要能让不同地区的人无障碍使用就需要实现国际化。目前在各大商城项目中,对于国际化语言的需求越来越高了,其中最多的就是vue项目使用i18n插件实现多语言切换功能。前端国际化:应用要......
  • 实战7_公众号爬取方式
    获取某公众号下面的所有文章一.分析公众号登录公众号首页-图文消息-超链接点开后再选择其他公众号并输入要搜索的公众号名,点击搜索出的公众号,下面便会显示公众号下的文章名二.获取链接两次请求1.获取公众号请求token值是变化的fakeid是下次请求要用到的数据2.获......
  • NLP简单项目实战——ChatBOT(二)
    二、Seq2Seq(一)Seq2Seq原理        Seq2seq模型中的encoder接收一个长度为M的序列,得到1个contextvector,之后decoder把这一个contextvector转化为长度为N的序列作为输出,从而构成一个MtoN的模型,能够处理很多不定长输入输出的问题(二)Seq2Seq实现    1.实现......
  • 【SpringBoot实战篇】注册接口
    目录1 明确需求 2 阅读接口文档2.1基本信息2.2请求参数2.3响应数据3思路分析(1)UserController(2)UserService(3)UserMapper4开发4.1三层架构(1)UserController.java(2)UserService(3)UserMapper.java4.2工具类5 测试......
  • ABP-VNext 用户权限管理系统实战04---多数据库支持、批量插入
    系统用的.net core,数据库映射工具为efcore,可以支持多数据库。一、支持多数据库1、扩展AbpDbContextOptions类 需要引入的类 2、服务中注入 二、批量插入实现EFCORE批量插入接口IEfCoreBulkOperationProvider,使用杨中科的包:https://github.com/yangzhongke/Zack.EF......