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.结果

相关推荐
长安11081 小时前
网络基础知识----路由器私网IP与公网IP(NAT)
网络·tcp/ip·智能路由器
我不听你讲话1 小时前
关系型与非关系型数据库视角下的 MySQL:特性解析与 Linux 部署实践
linux·mysql·nosql
Fcy6482 小时前
Linux下 进程控制(一) —— 进程的创建、终止和等待
linux·运维·elasticsearch·进程控制·进程创建、终止、等待
万象.7 小时前
Linux传输层TCP,UDP相关内容
linux·tcp/ip·udp
耀耀_很无聊7 小时前
09_Jenkins安装JDK环境
java·运维·jenkins
MaximusCoder7 小时前
等保测评命令——Centos Linux
linux·运维·经验分享·python·安全·centos
万象.7 小时前
Linux数据链路层通信原理及报文格式
linux·网络·网络协议
卷Java8 小时前
Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南
linux·运维·服务器
原来是猿10 小时前
Linux-【动静态库】
linux·运维·服务器
深圳市恒讯科技10 小时前
云服务器怎么选?从CPU、内存到IOPS的零基础选型手册
运维·服务器