filebeat也是日志收集工具,和logstash相同。

filebeat的特点

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 &

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

vim /etc/my.cnf
添加两行
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
wq

systemctl restart mysqld

yum -y install nginx
yum -y install httpd

vim /etc/nginx/nginx.conf
修改端口以免冲突
systemctl restart httpd
systemctl restart nginx
vim /var/www/html/index.html
vim /usr/share/nginx/html/index.html

收集日志—拖入filebeat软件

vim filebeat.yml
先备份
注释信息删掉即可
打开output

line 123
指定发送的IP
line 
enabled: true
paths:
   - /var/log/nginx/access.log
   - /var/log/nginx/error.log
tag: ["nginx"]
fileds:
   service_name: 20.0.0.100_nginx
   log_type: nginx
   from: 20.0.0.100
   
 type: log
 enabled: true
 paths:
   - /etc/httpd/logs/access_log
   - /etc/httpd/logs/error_log
tags: ["httpd"]
fields:    //e对齐
  service_name: 20.0.0.100_httpd 
  log_type: httpd
  from: 20.0.0.100
  
type: log
enabled: true
paths:  //t对齐
  - /usr/local/mysql/data/mysql_general.log
tags: ["mysql"]
fields:
  service_name: 20.0.0.100_mysql
  log_type: mysql
  from: 20.0.0.100
   
wq

接下来就给日志文件赋权

接下来进入elk1主机(kibana+logstash)指定输入流和输出

input {
 beats { port=>"5045" }
}
output {
  if "nginx" in [tags] {
    elasticsearch {
      hosts => ["20.0.0.20:9200","20.0.0.60:9200"]
      index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
  }
   if "httpd" in [tags] {
    elasticsearch {
      hosts => ["20.0.0.20:9200","20.0.0.60:9200"]
      index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
  }
   if "mysql" in [tags] {
    elasticsearch {
      hosts => ["20.0.0.20:9200","20.0.0.60:9200"]
      index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
  }
  stdout {
  codec => rubydebug
  }
}

mysql主机

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

elk1

logstash -f nhm_21.conf --path.data /opt/test2 &

重启之后,进入ES

命中成功。

!!注意

如果反复命中不成功,需要将之前的进程号全部杀死,否则会导致新的进程任务ping之前错误进程任务

杀死进程的话一定要杀干净!

如何对logstash进行性能上的优化

logstash启动是在jvm虚拟机当中启动启动一次至少500MB内存

pipeline.workers:2

logstash的工作线程默认值就是cpu数,(cpu核数一般即可

pipeline.batch.size: 125

一次性能批量处理检索事件大小 125条

pipeline.batch.delay:50

查询更新延迟,50毫秒,也可以自行调整

fluentd代替logstash实现 EFK

20.0.0.20----ES
20.0.0.60----ES
20.0.0.15----kibana + fluentd

20.0.0.15
首先关闭防火墙,安装epel源
yum -y install epel-release.noarch

安装可视化界面----kibana

接下来安装组件
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh
 
systemctl start td-agent

配置文件位置
编辑fluentd配置文件的方法vim /etc/td-agent/td-agent.conf

修改运行用户和组
默认来说fluentd使用td-agent用户启动。一般自动配置完成,无须修改

<source>
  type tail
  path /var/log/nginx/access.log
  tag nginx.access
  format nginx
</source>


<match nginx.access>
  type elasticsearch
  host 20.0.0.60
  port 9200
  logstash_format true
  logstash_prefix efk_nginx
</match>

Wq退出之后用
/opt/td-agent/embedded/bin/fluentd -c /etc/td-agent/td-agent.conf
来检测配置文件是否正确

这样绿色+黄色才算成功,无误

error代表有误

接下来浏览器搜索20.0.0.15:8080   (8080为nginx的端口)

然后es查看

成功命中

创建索引

成功

fluenld相对于logstash。fluenld的配置很简单,但是生成任务速度很慢(第一次可能要1-3分钟),

logstash速度相较于fluenld速度快了不知多少倍,但是配置文件更复杂

原文地址:https://blog.csdn.net/qq_51506982/article/details/134673214

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5501.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注