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

相关推荐
牧以南歌〆2 小时前
在Ubuntu主机中修改ARM Linux开发板的根文件系统
linux·arm开发·驱动开发·ubuntu
互联网搬砖老肖2 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
Antonio9152 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
夜月yeyue3 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
kfepiza3 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
无妄-20243 小时前
软件架构升级中的“隐形地雷”:版本选型与依赖链风险
java·服务器·网络·经验分享
艾伦_耶格宇4 小时前
【docker】-1 docker简介
运维·docker·容器
R.X. NLOS4 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
cuijiecheng20184 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
群联云防护小杜5 小时前
构建分布式高防架构实现业务零中断
前端·网络·分布式·tcp/ip·安全·游戏·架构