elk(filebeat)日志收集工具

elk(filebeat)日志收集工具

elk:filebeat日志收集工具 和logstash相同

filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多

filebeat可以运行在非Java环境。他可以代理logstash在非java环境上收集日志

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

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

logstash收集日志的过程:

input(从哪里收集)

filter(过滤)

output(发送es实例)

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

本机获取收集nginx的日志实验:

四台服务器

192.168.233.11

192.168.233.12

192.168.233.13

192.168.233.21

先关闭四个主机的防火墙和安全机制

cd 到opt目录下,把这个软件包拖到elk1(就是有logstash的主机)

解压软件包

tar zxvf filebeat-6.7.2-linux-x86_64.tar.gz

改名文件以及改配置文件

在四台主机操作重启配置文件

四台主机一块安装时间同步软件

yum install ntpdate -y

四台主机同步操作时间同步

data查看一下

在elk1安装一台nginx

yum -y install nginx,如果报错改端口号

改完nginx的配置文件 记得重启服务

在elk1安装一台httpd

开启httpd的服务

一个设置this httpd 一个设置this nginx

做httpd的配置文件

做nginx的配置文件

在浏览器查看

直接输IP就是httpd 加上8080端口就是nginx,因为上面的步骤将nginx的端口号改掉了

找到nginx日志的位置

cd /var/log/nginx

看他是不是绿色 如果不是绿色就赋权

先cd到opt 再cd到这个目录

给文件做备份

打开这个配置文件

在148行左右注释elasticsearch outputs

在167行左右取消logstash output的注释

在24行左右把enabled后面改成true ,path后面插七行/var/log/nginx/access.log

/var/log/nginx/error.log

tags:["nginx"]

fields:

service_name:192.168.233.11_nginx

log_type:nginx

from:192.168.233.11

(以上操作没标注的就都是在elk1操作)

配置logstash

创建目录log 写一个配置文件

写配置文件

cd到/opt/filebeat目录下

启动filebeat

出现这个没问题

nohup是指在后台记录执行命令的过程

.filebeat 运行文件

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

-c 指定配置文件

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

再开启一台elk1的终端

cd到opt里面的filebeat

然后查看日志

cd 到opt目录下的log

执行nginx.conf文件

出现问题先杀进程,以下是查看系统进程

然后杀进程

最后出现这个算成功

刷新

然后命中就会自动出现

远程收集多个日志实验

(Nginx+Apache+Mysql日志)

实验组件

logstash节点:20.0.0.10

Node1节点:node1/20.0.0.20 Elasticsearch

Node2节点:node2/20.0.0.30 Elasticsearch

日志来源服务器:20.0.0.81 MYsql Nginx Apache Filebeat

实验步骤

1.安装Filebeat并配置

#81

cd /opt/

--上传filebeat-6.7.2-linux-x86_64.tar.gz--

tar -xf filebeat-6.7.2-linux-x86_64.tar.gz

mv filebeat-6.7.2-linux-x86_64 filebeat

cd filebeat/

vim filebeat.yml

filebeat.inputs:

  • type: log

enabled: true

paths:

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

tags: ["nginx_81"]

fields:

service_name: 20.0.0.81_nginx

log_type: nginx

from: 20.0.0.81

  • type: log

enabled: true

paths:

  • /etc/httpd/logs/access_log

  • /etc/httpd/logs/error_log

tags: ["httpd_81"]

fields:

service_name: 20.0.0.81_httpd

log_type: httpd

from: 20.0.0.81

  • type: log

enabled: true

paths:

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

tags: ["mysql_81"]

fields:

service_name: 20.0.0.81_mysql

log_type: mysql

from: 20.0.0.81

--------------Elasticsearch output-------------------

(全部注释掉)

----------------Logstash output---------------------

output.logstash:

hosts: ["20.0.0.10:5045"] #指定logstash的IP和端口

2.配置logstash

10:

cd /opt/log/

vim nhm_81.conf

input {

beats { port => "5045"}

}

output {

if "nginx_81" in [tags] {

elasticsearch {

hosts => ["20.0.0.20:9200","20.0.0.30:9200"]

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

}

}

if "httpd_81" in [tags] {

elasticsearch {

hosts => ["20.0.0.20:9200","20.0.0.30:9200"]

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

}

}

if "mysql_81" in [tags] {

elasticsearch {

hosts => ["20.0.0.20:9200","20.0.0.30:9200"]

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

}

}

stdout {

codec => rubydebug

}

}

3.启动filebeat

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

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

4.结果

相关推荐
学嵌入式的小杨同学16 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
酥暮沐16 小时前
iscsi部署网络存储
linux·网络·存储·iscsi
darkb1rd16 小时前
四、PHP文件包含漏洞深度解析
网络·安全·php
❀͜͡傀儡师17 小时前
centos 7部署dns服务器
linux·服务器·centos·dns
Dying.Light17 小时前
Linux部署问题
linux·运维·服务器
S190117 小时前
Linux的常用指令
linux·运维·服务器
萤丰信息17 小时前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
小义_17 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
迎仔17 小时前
02-网络硬件设备详解:从大喇叭到算力工厂的进化
网络·智能路由器
运维小欣17 小时前
Agentic AI 与 Agentic Ops 驱动,智能运维迈向新高度
运维·人工智能