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毫秒。也要看机器性能

相关推荐
程序员泠零澪回家种桔子5 天前
微服务日志治理:ELK 栈实战指南
后端·elk·微服务·云原生·架构
虫小宝6 天前
淘宝返利软件的日志审计系统:Java Logback+ELK Stack实现操作日志的可追溯与可视化分析
java·elk·logback
一点事9 天前
windows:ELK搭建(单机)
windows·elk·jenkins
没有bug.的程序员10 天前
Spring Boot 日志管理:从 Logback 深度配置到 ELK 万亿级日志中枢实战
java·spring boot·elk·logback·日志·管理
橙露12 天前
日志分析与监控:ELK栈(Elasticsearch+Logstash+Kibana)搭建全流程指南
大数据·elk·elasticsearch
信创天地14 天前
国产化数据库深度运维:性能调优与故障排查实战指南
运维·数据库·安全·elk·自动化·rabbitmq
yangminlei17 天前
Elasticsearch 全面解析:从原理到实战的分布式搜索引擎指南
java·elk
我爱娃哈哈17 天前
SpringBoot + ELK + MDC:分布式系统日志追踪,快速定位跨服务调用链问题
spring boot·后端·elk
信创天地19 天前
信创环境下数据库与中间件监控实战:指标采集、工具应用与告警体系构建
java·运维·数据库·安全·elk·华为·中间件
信创天地20 天前
信创日志全流程管控:ELK国产化版本与华为日志服务实战应用
运维·安全·elk·华为·rabbitmq·dubbo