ELK----filebeat日志收集工具

ELK:filebeat日志收集工具和logstash相同

filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多。

filebeat可以运行在非java环境。他可以代理logstash在非java环境上收集日志

filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用

filebeat收集的数据可以发往多个主机。远程收集。

数据流程图:

实验:

20.0.0.10:logstash+kibana+filebeat
20.0.0.20:es1
20.0.0.30:es2
20.0.0.75:mysql
 
 
vim /etc/logstash/logstash.yml
64行
path.data: /opt/log
重启服务即可
 
yum -y install ntpdate
#时间同步
ntpdate ntp.aliyun.com 
 
yum -y install nginx
#安装nginx
开启nginx
vim /usr/local/nginx/html/index.html
this is nginx
 
到浏览器页面访问测试一下
20.0.0.10:8080
 
回到10主机
cd filebeat
cp filebeat.yml filebeat.yml.bck
vim filebeat.yml
Logstash output部分
output.logstash:解除注释
hosts: ["20.0.0.10:5044"]解除注释
 15 filebeat.inputs:
 16 - type: log
 17   enabled: true
 18   paths:
 19     - /usr/local/nginx/logs/access.log
 20     - /usr/local/nginx/logs/error.log
 21   tags: ["nginx"]
 22   fields:
 23     service_name: 20.0.0.10_nginx
 24     log_type: nginx
 25     from: 20.0.0.10
 
  cd /opt/log
  vim nginx.conf
  input {
   beats { prot => "5044"}
  }
  
  output {
    if "nginx" in [tags] {
      elasticsearch {
        hosts => ["20.0.0.20:9200","20.0.0.30:9200"]
        index => "%{[fields][service_name]}"-%{+YYYY.MM.dd}
      }
    }
    stdout {
      codec => rubydebug
    }
  }
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
  #nohup表示在后台记录执行命令的过程
  #./filebeat运行文件
  #-e使用标准输出同时禁用syslog文件输出
  #-c指定配置文件
  cd /opt/log
  logstash -f file_nginx.conf --path.data /opt/ng3 &

到浏览器测试一下

logstash收集日志的过程:

input(从哪收集)

filter(过滤)

output(发送es实例)
 

远程收集多个日志

MySQL主机
vim /etc/my.conf
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
#开启日志功能和指定日志位置
systemctl restart mysqld.service
#重启MySQL服务
打开MySQL进入创建一个库和一个表给日志创造一点信息
 
yum -y install httpd
#安装httpd服务
yum -y install nginx
#安装nginx服务
修改nginx的端口号为8080
 
到浏览器访问测试一下httpd和nginx
20.0.0.75:80
20.0.0.75:8080
 
在MySQL主机上安装filebeat
cd filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml
打开optput
hosts: [20.0.0.10]
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/nginx/logs/access.log
    - /usr/local/nginx/logs/error.log
  type: ["nginx_75"]
  fields:
    service_name: 20.0.0.75_nginx
    log_type: nginx
    from: 20.0.0.75
 
- type: log
  enabled: true
  paths:
    - /var/log/httpd/access.log
    - /var/log/httpd/error.log
  type: ["httpd_75"]
  fields:
    service_name: 20.0.0.75_httpd
    log_type: httpd
    from: 20.0.0.75
 
- type: log
  enabled: true
  paths:
    - /usr/local/mysql/data/mysql_general.log
  type: ["mysql_75"]
  fields:
    service_name: 20.0.0.75_mysql
    log_type: mysql
    from: 20.0.0.75
 
回到elk主机
cd /opt/log
vim nhm_75.conf
input {
 beats { port => "5045"}
}
 
output {
 if "nginx_75" in [tags] {
  elasticsearch {
   hosts => ["20.0.0.20:9200","20.0.0.30:9200"]
   index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
  }
 }
 if "httpd_75" in [tags] {
  elasticsearch {
   hosts => ["20.0.0.20:9200","20.0.0.30:9200"]
   index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
  }
 }
 if "mysql_75" in [tags] {
  elasticsearch {
   hosts => ["20.0.0.20:9200","20.0.0.30:9200"]
   index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
  }
 }
   stdout {
    codec => rubydebug
  }
}
 
回到MySQL主机
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
 
回到elk主机
logstash -f nhm_75.conf --path.data /opt/nhm
 
回到MySQL主机修改端口号
hosts: ["20.0.0.75:5045"]
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
 
到elk主机
logstash -f nhm.conf --path.data /opt/nhm2 &
 
到浏览器查看一下es索引是否创建成功
再到kibana上创建索引查看是否有日志记录

logstash性能优化:

logstash启动是在jvm虚拟机当中其中,启动一次至少500M内存。

vim /etc/logstash/logstash.yml
41行
pipeline.workers: 2
#定义了logstash的工作线程,默认值就是cpu数。4核最好给2,8核给2,给一半即可
pipline.batch.size: 125
#一次性批量处理检索时间的大小
#125是条数。可以根据自行修改
50行
pipeline.batch.delay: 50
#查询更新的延迟
#50是50毫秒,也可也自行调整
#生产中一般10-15毫秒。也要看机器性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JavaServelet的同学录管理系统(Java毕业设计)

点击咨询源码 大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的…

锐捷配置DHCP动态分配地址

一、实验拓扑 二、实验目的 配置DHCP为四个部门动态分配IP地址 三、实验配置 第一步:配置基本IP地址并对端口进行规划 SW1 SW1(config)#vlan range 10,20,30,40,100 SW1(config-vlan-range)#exit SW1(config)#interface vlan 10 SW1(config-if-VLAN 10)#ip addres…

解决 Linux git push 贡献者不同(没有出现绿点)的问题

第一步,通过下面的指令,修改 linux git 的配置文件: vi ~/.gitconfig会进入下图界面: 进入本地(Windows)中 git 的设置界面 复制 名称 和 Email 到 gitconfig 里,不要在末尾加 (空…

Java原来可以这么玩!CV实现多张图片生成视频

前言 比如我像将几张图片变成一个视频的形式发不到短视频平台,虽然短视频平台也有上传图片变成视频的功能,但是我想要具体控制每张图片显示多久后切换到下一个图片,短视频平台目前无法实现,于是乎,我用java代码实现了…

【数据结构】C语言实现链式二叉树(附完整运行代码)

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.项目功能演示 三.逐步实现项目功能模块及其逻辑详解 1.实现链式二叉树程序菜单 2.实现链式二叉树程序功能可循环使用 3.实现链式二叉树的新结点…

LeetCode-回文链表(234)

题目描述: 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 因为这一题是受到876题求链表中间节点的启发,所以在这里也加一下。 876.链表的中间结点…

探索 HTTP 请求的世界:get 和 post 的奥秘(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

在Go语言中实现HTTP中间件

在Web开发中,中间件是一种非常流行的设计模式,它可以用于处理请求、拦截请求并对其进行处理或转换。而在Go语言中,实现HTTP中间件就像给自己的HTTP服务器穿上了一层“魔法外衣”,让它变得更加灵活、可配置和可扩展。下面&#xff…

有可以平替SSL证书的数字证书吗

SSL证书和数字证书并不是完全等价的概念。SSL证书是一种数字证书的一种应用,用于在网络中加密和身份验证。数字证书是一种用于加密通信和验证身份的技术,SSL证书就是数字证书的一种特定形式。 除了SSL证书之外,还有其他类型的数字证书&#…

QT trimmed和simplified

trimmed:去除了字符串开头前和结尾后的空白; simplified:去除了字符串开头前和结尾后的空白,以及中间内部的空白字符也去掉(\t,\n,\v,\f,\r和 ) 代码: QString str " 1 2 3 4 5 …

Apache Commons BeanUtils: JavaBean操作的艺术

第1部分:Apache Commons BeanUtils 简介 咱们今天聊聊Apache Commons BeanUtils。这货简直就是处理JavaBean的利器,用起来又方便又快捷。不管是属性拷贝、类型转换,还是动态访问,BeanUtils都能轻松应对。 BeanUtils是啥&#xf…

043、循环神经网络

之——RNN基础 杂谈 第一个对于序列模型的网络,RNN。 正文 1.潜变量自回归模型 潜变量总结过去的信息,再和当前信息一起结合出新的信息。 2.RNN 循环神经网络将观察作为x,与前层隐变量结合得到输出 其中Whh蕴含了整个模型的时序信息&#xf…

NET中使用SQLSugar操作sqlserver数据库

目录 一、SqlSugar是什么? 二、迁移和建表 1.建立实体 2.创建上下文类 3.在Program中添加SqlSugar服务 4.在控制器中注入上下文类 三、简单实现CURD功能 总结 一、SqlSugar是什么? SqlSugar是一款老牌 .NET 开源ORM框架。 主要特点&#xff1a…

让某个页面一直处于最前面,可以屏蔽切屏检测

前言 学习通智慧树网课分屏,让某个页面一直处于最前面,可以屏蔽切屏检测。 页面一直处于最前面 前言1 安装包2 使用 1 安装包 https://download.csdn.net/download/qq_44850489/76684366 2 使用 一直下一步就可以 选择要放到前面的窗口&#xff0c…

设计模式--工厂方法模式

实验3:工厂方法模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解工厂方法模式的动机,掌握该模式的结构; 2、能够利用工厂方法模式解决实际问题。 [实验任务]:加密算法 目前常用…

ts相关笔记(extends、infer、Pick、Omit)

最近刷了本ts小册,对一些知识点做下笔记。 extends extends 是一个关键字,用于对类型参数做一些约束。 A extends B 意味着 A 是 B 的子类型,比如下面是成立的 ‘abc’ extends string599 extends number 看下面例子: type …

Leetcode—86.分隔链表【中等】

2023每日刷题(六十九) Leetcode—86.分隔链表 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* partition(struct ListNode* head, int x) {struct ListNode…

C语言操作符if语句好习惯 详解分析操作符(详解4)

各位少年: 前言 还记得我们上一章讲过一个比较抽象的代码,它要比较两次都是真的情况下才能打印,那么很显然这样写代码是有弊端的?哪我们C语言之父丹尼斯.里奇,先介绍一下上次拉掉了if语句的好习惯 好再分享一些操作符…

【基础篇】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的三大功能6、JVM的分类7、JVM的生命周期 1、虚拟机 虚拟机,Virtual Machine,一台虚拟的计算机,用来执行虚拟计算机指令。分为: 系统虚拟机&#x…

结构体的对齐规则

1.引入 我们在掌握了结构体的基本使⽤后。 现在我们深⼊讨论⼀个问题:计算结构体的大小。 这也是⼀个特别热门的考点: 结构体内存对齐。 2.具体分析 ⾸先我们得掌握结构体的对⻬规则: 1. 结构体的第⼀个成员对⻬到和结构体变量起始位置偏移量…