filebeat是一款轻量级的日志收集工具可以在非JAVA环境运行

因此,filebeat常被用在非JAVAf的服务器用于替代Logstash收集日志信息
实际上,Filebeat几乎可以起到与Logstash相同的作用,
可以数据转发到Logstash、Redis或者是Elasticsearch中进行直接处理

为什么要用filebeat来收集日志?为什么不直接使用lohstash收集日志?
因为logstashjvm跑的,资源消耗比较大,启动一个logstash需要消耗500M左右的内存
(这就是为什么logstash启动特别慢的原因)。

filebeat只需要10M左右的内存资源
常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送logstash
lostash根据配置文件进行过滤然后过滤之后的文件传输elasticsearch中,最后通过kibana展示

filebeat结合logstash带来的好处?
1、通过logstash具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量
从而减轻Elasticsearch持续写入数据的压力。

2、从其它数据源(例如数据库s3对象存储消息传递队列)中提取

3、将数据发送多个目的地,例如S3,HDFS(hadoop部署文件系统)或写入文件

4、使用数据流逻辑组成更复杂处理管道

部署ELK集群

4台机器

####ELK1##

防火墙

改名

更改工作目录

#######同步操作

安装时间工具

yum install ntpdate -y

ntpdate ntp.aliyun.com 

任意一台机器输入data 查看时间是否有一致

####ELK1##################

为了方便识别 修改httpd 和NGINX的工作目录 

这个NGINX是yum安装工作目录如下

编译安装是 /usr/local/nginx/

页面测试一下端口老师上课改过 nginx是8080(没记录改的过程

本来nginx默认端口是80

输入端口默认是80

######如何本地收集niginx的日志

设置 filebeat 的主配置文件

nginx的日志赋权权限 能够读取日志内容

配置之前 先备份filebeat的配置文件,防止失误

配置输出

5044是filebeat的默认端口

outputs的下面elastisearch全部注释掉 因为日志只能发送一个 这里发送logstash

打开logstash注释 修改ip地址

eastiscearch注释

 修改

删除下面

查看nginx的日志格式 

注意空格 和-  输入下面

注意格式对齐 

标识nginx

索引名字为 192168.233.11_nginx

l类型为nginx

日志来源192.168.233.11

####配置logsatsh

5044是filebeat的默认端口

少了input  在后面截图

input {
   beats { port => “5044” }
 
}
 
output {
    if “nginxin [tags] {
    elasticsearch {
        hosts => [“192.168.233.12:9200″,”192.168.233.13:9200”]
        index => “%{[fields][service_name]}-%{+YYYY.MM.dd}”

}

}

   stdout {
    codec => rubydebug
  }
}

#启动 filebeat

开启收集日志

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

nohup 表示后台记录执行命令过程
./filebeat 运行文件
-e 使用标准输出的同时进行syslog文件输出
·c 指定配置文件
执行过程输出到filebeat.out这个文件当中,& 后台运行

一台elk1、查看输出日志的文件

查看日志发现报错

指定配置文件,再指定数据工作目录  

logstash -f file_nginx.confpath.data /opt/test1 &

这个命令启动logstash并使用file_nginx.conf作为配置文件,–path.data参数指定logstash的数据目录为/opt/test1。&符号表示后台运行logstash

c测试

索引已经创建成功

kabana也有索引

左边 选定字段

logstash通过filebeat远程收集多个日志

服务器mysql nginx httpd

mysql 上192.168.233.21

日志目录一生成

cat mysql_general.log

目录

创表数据日志已生产

装 nginx  httpd

改下端口 防止端口冲突

拖入安装包filebeat

j解压

改名

备份

把这之间注释掉的信息 全部删除 留着没用

注释掉下一个output

打开注释输入Lostash的IP

开一台mysql

查看NGINX的日志目录路径格式 给NGINX日志目录授权

查看httpd目录路径格式  给httpd 日志目录授权

查看MySQL的日志目录路径格式,授权

type: log
  enabled: true    
  paths:
    – /var/log/nginx/access.log
    – /var/log/nginx/error.log
  tags: [“nginx”]
  fields:
    service_name: 192.168.233.21_nginx
    log_type: nginx
    from: 192.168.233.21

type: log
  enabled: true    
  paths:
    – /etc/httpd/logs/access_log
    – /etc/httpd/logs/error_log
  tags: [“httpd“]
  fields:
    service_name: 192.168.233.21_httpd
    log_type: httpd
    from: 192.168.233.21

type: log
  enabled: true
  paths:
    – /usr/local/mysql/data/mysql_general.log
  tags: [“mysql“]
  fields:
    service_name: 192.168.233.21_mysqld
    log_type: mysql
    from: 192.168.233.21

标识方便识别 再次修改

在ELK1 上192.168.233.11

收日志到目录 /opt/log

接着上面 这里标识也改下

先到mysql启动felibeat文件往loastash上发

再到elk1上

指定配置文件,再指定数据工作目录  

这个命令将启动logstash并使用file_nginx.conf作为配置文件,–path.data参数指定了logstash的数据目录为/opt/test2。&符号表示在后台运行logstash

vim filebeat.yml

优化性能
pipeline.workers 2
该参数用于设置 Logstash 处理事件的工作线程数量。默认值核心数。
在一个拥有两个核心系统上,可以设置为 2,以充分利用系统资源

pipeline.batch.size 125
该参数定义了从输入检索事件批量大小然后将这批事件发送到过滤器和工作线程
默认值是 125。你可以根据你的需求系统性能进行调整。

pipeline.batch.delay 50
该参数定义了在轮询下一个事件之前等待时间,以确保形成一个适当大小的事件批量。
默认值是 50 毫秒。你可以根据实际情况进行调整。

原文地址:https://blog.csdn.net/Lachewuxian/article/details/134716126

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

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

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

发表回复

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