ELK日志收集系统-filbeat

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(毫秒)
相关推荐
JackSparrow4147 小时前
使用Elasticsearch代替数据库like以加快查询的各种技术方案+实现细节
大数据·clickhouse·elk·elasticsearch·搜索引擎·postgresql·全文检索
工作log1 天前
从零搭建 ELK + Kafka 日志收集系统(Spring Boot + Logback 直连 Kafka)
spring boot·elk·kafka
總鑽風12 天前
搭建Spring Boot + ELK日志平台,实现可视化日志监控
spring boot·elk·macos
七七powerful12 天前
运维养龙虾--使用workbuddy专家模式一句话部署ELK 日志分析平台
elk·workbuddy
人间打气筒(Ada)14 天前
「码动四季·开源同行」go语言:如何使用 ELK 进行日志采集以及统一处理?
开发语言·分布式·elk·go·日志收集·分布式日志系统
艾伦_耶格宇14 天前
【ELK】-1 ELK的简要介绍
elk
尽兴-19 天前
微服务日志采集与分析系统实战:ELK 架构全解析与落地
elk·微服务·架构·kibana·es·logstash·filebeat
泡沫·1 个月前
ELK 企业日志分析系统核心总结
elk
我爱学习好爱好爱1 个月前
ELK 7.17.10 收集Docker Compose部署的SpringBoot2+Vue3项目日志(Rockylinux9.6)
elk·docker·容器
我爱学习好爱好爱1 个月前
ELK 7.17.10 + Redis 5.0.7 构建高可用 Nginx 日志收集系统(Rocky Linux 9.6 实战)
redis·nginx·elk