ELFK集群部署(Filebeat+ELK) 本地收集nginx日志 远程收集多个日志

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

因此,filebeat常被用在非JAVAf的服务器上用于替代Logstash,收集日志信息。

实际上,Filebeat几乎可以起到与Logstash相同的作用,

可以将数据转发到Logstash、Redis或者是Elasticsearch中进行直接处理。

为什么要用filebeat来收集日志?为什么不直接使用lohstash收集日志?

因为logstash是jvm跑的,资源消耗比较大,启动一个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 "nginx" in [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.conf --path.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 毫秒。你可以根据实际情况进行调整。

相关推荐
LBuffer1 分钟前
破解入门学习笔记题二十五
服务器·前端·microsoft
xier_ran1 分钟前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
richxu2025100123 分钟前
Linux本地部署deepseek大模型之 6. Windows本地连接远程云服务器中的MySQL常见错误的解决办法
linux·服务器·windows
Ryan ZX26 分钟前
Ubuntu 升级OpenSSH10.2p1与OpenSSL3.5.4版本避坑实践
linux·运维·服务器·ubuntu
phoenix09811 小时前
ELK企业级日志分析系统学习
学习·elk
唐兴通个人2 小时前
新品上市咨询顾问新药上市顾问培训讲师唐兴通讲PMF从0到1天使用户种子用户冷启动问题
运维·服务器
尘缘浮梦2 小时前
RobotFramework框架环境搭建
linux·开发语言·python
江公望2 小时前
linux kernel struct clk_init_data结构浅解
linux
LCG元2 小时前
Sed 和 Awk 的终极实战:用一行命令搞定90%的文本处理
linux
serve the people2 小时前
Partial Prompt Templates in LangChain
服务器·langchain·prompt