ELK日志收集系统-filbeat

news2024/11/26 21:51:09

filebeat日志收集工具

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

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

filebeat可以运行在非Java环境,它可以代理logstash在非java环境上收集日志

logstash不足

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

filebeat工作流程

1、filebeat收集服务日志发送给logstash

2、logstash过滤,形成标准输出,发送到es主机上

3、es主机在发送给kibana

4、kiabana图形化界面

5、用户通过kiabana查看收集的日志

filebeat实验部署
安装filebeat
准备四台主机
把filebeat源码包拖到opt目录下

vim /etc/logstash/logstash.yml
64行

重启服务

做时间同步
yum install ntpdate -y
ntpdate ntp.aliyun.com 

安装nginx
并重启服务
给nginx的日志文件给权限
chmod 777 access.log error.log

给filebeat的配置文件做个备份
cp filebeat.yml filebeat.yml.bak

vim filebeat.yml

filebeat inputs模块

enabled:true
paths:
   - /usr/local/nginx/logs/access.log
   - /usr/local/nginx/logs/error.log
tags: ["nginx"]
fileds:
   service_name: 20.0.0.12_nginx
   log_type: nginx
   from: 20.0.0.12



mkdir log
vim file_nginx.conf
input {
  beats { port => "5044"}
}
output {
  if "nginx" in [tags]{
   elasticsearch {
    hosts => ["20.0.0.10:9200","20.0.0.11:9200"]
    index => "%{[fields][service_name]}-%{YYYY.MM.dd}"
   }
  }
  stdout{
    codec => rubydebug
  }
}

nohup ./filebaet -e -c filebeat.yml > filebeat.out &
nohup 表示在后台纪录执行命令的过程
./filebeat 运行文件
-e 使用标准输出的同时进行syslog文件输出
-c 配置文件
执行过程输出到filebeat.out,&后台运行
:

查看是否报错
tail -f /opt/filebeat/filebeat.out

logstash -f file_nginx.conf --path.data /opt/test	
本地收集

远程收集,远程收集多个日志

mysql

vim /etc/my.cnf
general_log=ON
generl_log_file=/usr/local/mysql/data/mysql_general.log

重启服务
查看日志文件是否创建成功

在MySQL上创建表
create table xiaobu (id int(2),name varchar(20));

mysql上安装nginx,httpd

vim /etc/nginx/nginx.conf
改变端口
重启服务

http
vim /var/www/html/index.html
vim /usr/share/nginx/html/index.html

浏览器访问
20.0.0.50:8080

把filebeat拖到opt目录下
压缩
cd /filebeat
vim filebeat.yml

 enabled: true
 paths: 
  - /var/log/nginx/access.log
  - /var/log/nginx/error.log
  tags: ["nginx_50"]
  fileds:
     service_name: 20.0.0.50_nginx
     log_type: nginx
     from: 20.0.0.50
- type: log
  enabled: true
  paths:
    - /etc/httpd/logs/access.log
    - /etc/httpd/logs/error.log
  tags: ["httpd_50"]
  fileds: 
     service_name: 20.0.0.50_httpd
     log_type: httpd
     from: 20.0.0.50
- type: log
  enabled: true
  paths:
    - /usr/log/mysql/data/mysql_general.log
    tags: ["mysql_50"]
  fileds: 
     service_name: 20.0.0.50_mysql
     log_type: mysql
     from: 20.0.0.50
     
     
cd /opt/log
vim file_mysql.log
input {
	beats { port => "5045"}

}
output {
	if "nginx_50" in [tags] {
		elasticsearch {
			hosts => ["20.0.0.10:9200","20.0.0.10:9200"]
			index => "%{[fileds][service_name]}-%{+YYYY.MM.dd}"
		}
	}
	if "httpd_50" in [tags] {
		elasticsearch {
			hosts => ["20.0.0.10:9200","20.0.0.10:9200"]
			index => "%{[fileds][service_name]}-%{+YYYY.MM.dd}"
		}
	}
	if "mysql_50" in [tags] {
		elasticsearch {
			hosts => ["20.0.0.10:9200","20.0.0.10:9200"]
			index => "%{[fileds][service_name]}-%{+YYYY.MM.dd}"
		}
	}
  stdout {
    codec => rubydebug
  }
}

nohup ./filebeat -e -c filebeat.yml > filbeat.out &

kibana
logstash -f file_mysql.conf --path.data /opt/test1

logstash 可以使用任意端口,只要没被占用都可以使用,推荐从1024使用

logstash 性能上的优化

logstash启动时在JVM虚拟机当中启动,启动一次至少500MB的内存

找到logstash的配置文件
vim /etc/logstash/logstash.yml
pipeline.workers:2
定义了,logstash的工作线程,默认就是CPU数,4 1 4 8给一半即可,2核,2个
pipeline.batch.size: 125
一次性能够批量处理检索事件的大小 125条数
pipeline.batch.delay: 50
查询更新的延迟 50(毫秒),也可以自行调整 15(毫秒)

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

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

相关文章

【扫雷】C语言实现扫雷小游戏

扫雷 游戏资源介绍游戏功能介绍游戏代码编写教程游戏功能测试自动排雷测试地雷标记测试取消标记测试踩雷判定测试重复游戏测试胜利判定测试 头文件游戏主体文件用户主体文件 游戏资源介绍 本次对之前的扫雷游戏进行了重新编写与更新,在此次的游戏实现中新增加了剩余…

基于SSM的酒店预订管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

大模型训练为什么用A100不用4090

这是一个好问题。先说结论,大模型的训练用 4090 是不行的,但推理(inference/serving)用 4090 不仅可行,在性价比上还能比 H100 稍高。4090 如果极致优化,性价比甚至可以达到 H100 的 2 倍。 事实上&#x…

Docker+Anaconda+CUDA+cuDNN

一、导语 因为要复现文献的需求和实验室里师兄想要给我提升能力的多方面因素在一起,所以学习并实现了相关安装。在这里做一个记录,方便日后查看,如果能给其他同学带来便捷就更好了。 在这篇文章中,我的目标是搭建一个可以使用Py…

Spark_Spark高阶特性

wscg filter导致断链 Codegen 向量化 simdjson Orc Parquet 支持批量读取 spark本身对parquet支持比较好,因为parquet

04_Flutter自定义Slider滑块

04_Flutter自定义Slider滑块 一.Slider控件基本用法 Column(mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[Text("sliderValue: ${_sliderValue.toInt()}"),Slider(value: _sliderValue,min: 0,max: 100,divisions: 10,thumbColor: Colors.…

二叉树的最近公共祖先(C++实现)

二叉树的最近公共祖先 题目思路代码&#xff08;详细注释&#xff09; 题目 二叉树的最近公共祖先 思路 我们可以通过两个栈来实现 实现一个FindPath函数&#xff0c;用来查找从根节点到目标节点的路径&#xff08;路径可以用栈来保存&#xff09; 路径保存好后&#xff0c;…

黄金比例设计软件Goldie App mac中文版介绍

Goldie App mac是一款测量可视化黄金比例的工具。专门为设计师打造&#xff0c;可以帮助他们在Mac上测量和可视化黄金比例&#xff0c;从而轻松创建出完美、平衡的设计。 Goldie App mac体积小巧&#xff0c;可以驻留在系统的菜单栏之上&#xff0c;随时提供给用户调用。 拥有独…

uniapp设置手机通知权限

提醒用户开启通知权限&#xff0c;与unipush功能联用 效果图&#xff1a; 方法&#xff1a; 直接使用即可&#xff0c;在真机或模拟器运行 setPermissions() {// #ifdef APP-PLUS if (plus.os.name Android) { // 判断是Androidvar main plus.android.runtimeMainActivity…

【LeetCode刷题-链表】--86.分隔链表

86.分隔链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class…

文件服务器迁移

文件服务器迁移还是比较简单的 win server加域 导出配额文件 选中所有项&#xff0c;点击导出 导出共享文件夹权限列表 导出文件夹的权限表&#xff0c;留作备用。需要用到“icacls” icacls c:\windows\* /save aclfile /t # C:\Windows 目录及其子目录中所有文件的 DAC…

等保——密评技术要求

密评简介 密评定义&#xff1a;全称商用密码应用安全评估, 是指对采用商用密码技术、产品和服务集成建设的网络和信息系统密码应用的合规性、正确性、有效性进行评估。密评对象&#xff1a;重要信息系统、关键信息基础设施、网络安全等保三级及以上的系统。评测依据&#xff1…

OpenCV数字图像处理——检测出图像中的几何形状并测量出边长、直径、内角

一、简介 在传统的自动化生产尺寸测量中&#xff0c;常用的方法是利用卡尺或千分尺对被测工件的某个参数进行多次测量&#xff0c;并取这些测量值的平均值。然而&#xff0c;这些传统的检测设备或手动测量方法存在着一些问题&#xff1a;测量精度不高、测量速度缓慢&#xff0…

使用std::mutext与std::condition_variables实现信号量

1. 信号量的定义 2. 使用std::mutext与std::condition_variables实现信号量 代码来自&#xff1a;https://zhuanlan.zhihu.com/p/462668211 #ifndef _SEMAPHORE_H #define _SEMAPHORE_H #include <mutex> #include <condition_variable> using namespace std;cla…

JSP forEach标签varStatus使用讲解(了解即可 基本用不到)

上文 JSP迭代标签之 forEach循环标签 基本使用讲解 我们讲了一下forEach标签 大多数时候会用的语法 但是varStatus 没有讲到 因为我觉得这个东西 做个了解就好了 如果你不感兴趣都可以不看 因为感觉开发中基本是用不到的 但是 官方有提供 我还是说一下 当前遍历的基本信息 包括…

postman接口测试教程与实例分享

postman 的界面图 各个功能区的使用如下&#xff1a; 快捷区&#xff1a; 快捷区提供常用的操作入口&#xff0c;包括运行收藏夹的一组测试数据&#xff0c;导入别人共享的收藏夹测试数据&#xff08;Import from file, Import from folder, Import from link等&#xff09;&…

【Python】获取ip

要使用Python获取IP地址&#xff0c;可以使用socket库中的gethostname()函数和gethostbyname()函数。 import socketdef get_ip_address():hostname socket.gethostname()ip_address socket.gethostbyname(hostname)return ip_addressip get_ip_address() print("IP地…

成功的蓝图:实现长期成长与卓越表现的 6 项策略

能在收入和利润上持续领先同行的公司寥寥无几&#xff0c;不到四分之一。McKinsey的最新研究揭示了这些增长标杆公司与众不同的六大心态和策略。过度谨慎的公司&#xff0c;尤其在动荡时期&#xff0c;也许能捱过当下&#xff0c;但往往无法发掘全部潜力。考虑到近五年历经前所…

事务的自动提交机制和隐式提交机制

自动提交机制就是一个sql语句完成默认提交一次&#xff0c;也就是说一个sql语句是原子性的。想关闭这种功能&#xff0c;两种方式一种写START TRANSACTION&#xff0c;另一种SET autocommit OFF 隐式提交机制&#xff0c;在START TRANSACTION后&#xff0c;会有一些情况导致语…

在centos7上源码安装nginx

1. 安装必要的编译工具和依赖项 在编译Nginx之前&#xff0c;你需要安装一些编译工具和依赖项。可以通过以下命令安装&#xff1a; yum install gcc-c pcre-devel zlib-devel make 2. 下载Nginx源代码 从Nginx官网下载最新的源代码。你可以使用wget命令来下载&#xff1a; …