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

相关推荐
风清再凯1 天前
01-ELK安装ES,ES-head
大数据·elk·elasticsearch
霸气del5 天前
ELK搭建
elk
正怒月神9 天前
docker-compose 启动 elk
elk·docker·容器
故事很腻i9 天前
安装elk
运维·elk·jenkins
小醉你真好9 天前
15、Docker Compose 安装ELK + Filebeat单机版
elk·docker·jenkins
東雪蓮☆12 天前
Filebeat+Kafka+ELK 日志采集实战
分布式·elk·kafka
虚伪的空想家22 天前
K8S部署的ELK分片问题解决,报错:unexpected error while indexing monitoring document
运维·elk·云原生·容器·kubernetes·报错·eck
三坛海会大神55523 天前
ELK分析系统详解
运维·elk
東雪蓮☆24 天前
ELK 企业级日志分析系统实战教程
linux·运维·elk