Elk-filebeat

前言

Elk:filebeat搜集日志工具和logstash相同

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

Filebeat可以运行在非Java环境,他可以代理logstash在非Java环境上收集日志

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

Filebeat收集的数据可以发往多个主机,远程收集

核心图:

本地采集:

实验环境:

在elk的基础上新加一台虚拟机,安装filebeat

安装filebeat

修改默认路径

做时间同步

yum install ntpdate -y

ntpdate ntp.aliyun.com

安装Nginx和httpd

验证

如何直接收集nginx日志

配置filebeat:

路径

注释(elasticsearch outputs)

取消注释(打开logsttash output)

创建目录

写一个脚本

为了实验效果,添加一个标准输出

开始收集,发送

Nohup表示在后台记录执行命令的过程

./filebeat运行文件

-e使用标准输出的同时进行syslog文件输出

-c指定配置文件

执行过程输出到filebeat.out这个文件当中。&表示后台运行

查看是否报错:successful表示成功

开启logstash收集,接收

访问测试(多刷几遍,以防收集不到,404也多刷几遍)访问呢错误日志,以便观察

Logstash收集日志的过程:

Input(从哪里收集)

Filebeat(过滤)

Output(发送ES实例)

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

打开数据库的日志功能

表中插入一些数据(便于实验效果查看)

安装一个nginx和一个http

添加一些访问内容,访问测试

开始收集日志准备

多余的注释信息全部删掉

Nginx模块

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/log/nginx/access.log

    - /var/log/nginx/error.log

  tags: ["nginx_54"]

  fields:

    service_name: 20.0.0.54_nginx

    log_type: nginx

    from: 20.0.0.54

http模块

- type: log

  enabled: true

  paths:

    - /etc/httpd/logs/access_log

    - /etc/httpd/logs/error_log

  tags: ["httpd_54"]

  fields:

    service_name: 20.0.0.54_httpd

    log_type: httpd

    from: 20.0.0.54

Mysql模块

- type: log

   enabled: true

   paths:

     - /usr/local/mysql/data/mysql_general.log

   tags: ["mysql_54"]

   fields:

     service_name: 20.0.0.54_mysqld

     log_type: mysql

     from: 20.0.0.54

注意:把这个三个的tags改一下(tags做一下区分)

总览图:

格式要对齐,要一模一样,一个符号都不能差

取消注释

回到elk收日志,便于查看是否命中,可以加上方框那一行,可以不加

input {

   beats { port => "5045" }

}

output {

    if "nginx_54" in [tags] {

    elasticsearch {

        hosts => ["20.0.0.52:9200","20.0.0.53:9200"]

        index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"

    }

   }

   if "httpd_54" in [tags] {

    elasticsearch {

        hosts => ["20.0.0.52:9200","20.0.0.53:9200"]

        index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"

    }

   }

   if "mysql_54" in [tags] {

    elasticsearch {

        hosts => ["20.0.0.52:9200","20.0.0.53:9200"]

        index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"

    }

   }

   stdout {

    codec => rubydebug

  }

}

启动,后台运行,开始传送

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

打开filebeat日志,便于观察

Logstash启动运行,收集日志

logstash -f nginx_54.conf --path.data /opt/test12&

涉及改端口问题

Logstash可以使用任意端口,只要没被在占用,都可以使用,推荐从1024之后开始使用

5044

5045

5046

改端口

ES查看        

如何对logstash性能上的优化(小优化):

Logstash启动是在Jam虚拟机当中启动,启动一次至少要占500M内存

Pipeline.workers:2

Logstash的工作线程,默认就是CPU数,4 2 8 4给一半即可,2核,2个

一次性可以处理检索事件的大小125条数,200

查询更新的延时,50毫秒,也可以自行调整,生产中一般都是15 10毫秒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值