如何安装fluentd 和fluentd-mongo的插件?然后收集nginx的 json格式的数据写到mongodb

news/2025/10/20 17:36:00/文章来源:https://www.cnblogs.com/lijintao1025/p/19153211

手动安装 Fluentd + MongoDB 插件并收集 Nginx JSON 日志

以下是完整步骤,从安装 Fluentd 到配置 Nginx JSON 日志存储到 MongoDB。

  1. 手动安装 Fluentd(td-agent)

如果已通过 RPM 安装 td-agent,跳过此步。否则:

下载 td-agent RPM(以 CentOS 7 为例)

wget https://packages.treasuredata.com/4/redhat/7/x86_64/td-agent-4.5.1-1.el7.x86_64.rpm

安装

sudo rpm -ivh td-agent-*.rpm

启动服务

sudo systemctl start td-agent
sudo systemctl enable td-agent

  1. 安装 MongoDB 插件

Fluentd 需要 fluent-plugin-mongo 插件来支持 MongoDB 输出:
sudo /usr/sbin/td-agent-gem install fluent-plugin-mongo

验证插件是否安装成功:
sudo /usr/sbin/td-agent-gem list | grep mongo

应输出:

fluent-plugin-mongo (1.0.0)

  1. 配置 Nginx 输出 JSON 格式日志

(1)修改 Nginx 日志格式

编辑 Nginx 配置文件(如 /etc/nginx/nginx.conf):
http {
log_format json_log escape=json
'{'
'"time":"$time_iso8601",'
'"remote_addr":"$remote_addr",'
'"request":"$request",'
'"status":"$status",'
'"body_bytes_sent":"$body_bytes_sent",'
'"http_referer":"$http_referer",'
'"http_user_agent":"$http_user_agent"'
'}';

access_log /var/log/nginx/access.log json_log;  # 使用 JSON 格式

}

重启 Nginx:
sudo systemctl restart nginx

(2)验证日志格式

tail -n 1 /var/log/nginx/access.log

输出示例:

  1. 配置 Fluentd 收集日志并写入 MongoDB

编辑 Fluentd 配置文件 /etc/td-agent/td-agent.conf:
sudo vim /etc/td-agent/td-agent.conf

替换为以下内容(根据您的 MongoDB 信息调整):

输入:收集 Nginx JSON 日志

@type tailpath /var/log/nginx/access.logpos_file /var/log/td-agent/nginx-access.postag nginx.access@type json # 解析 JSON 格式日志time_key time # 指定时间字段time_format %Y-%m-%dT%H:%M:%S%z # 匹配 JSON 中的时间格式

输出:存储到 MongoDB

@type mongohost 127.0.0.1 # MongoDB 服务器 IPport 27017database nginx_logs # 数据库名collection access # 集合名user user # 用户名(如有认证)password pqssword # 密码(如有认证)flush_interval 5s # 每 5 秒写入一次

可选:设置写入模式

time_key time # 将日志时间作为 MongoDB 的写入时间

输出:同时写入本地文件(调试用)

@type filepath /var/log/td-agent/nginx-access.log
  1. 启动 Fluentd 并验证

(1)重启 td-agent

sudo systemctl restart td-agent

(2)检查 Fluentd 日志

sudo tail -f /var/log/td-agent/td-agent.log

正常输出示例:

2023-10-01 12:00:00 +0800 [info]: starting fluentd-1.16.0
2023-10-01 12:00:00 +0800 [info]: listening port port=24224

(3)测试日志收集

访问 Nginx 服务生成日志:
curl http://localhost/

检查 MongoDB 是否写入数据:

进入 MongoDB Shell

mongo --host 127.0.0.1 -u user -p password --authenticationDatabase nginx_logs

查询数据

use nginx_logs
db.access.find().pretty()

输出示例:
{
"_id": ObjectId("65123456789abcdef0123456"),
"time": ISODate("2023-10-01T04:00:00Z"),
"remote_addr": "192.168.1.1",
"request": "GET / HTTP/1.1",
"status": "200",
"body_bytes_sent": "612",
"http_user_agent": "Mozilla/5.0..."
}

  1. 高级优化

(1)MongoDB 索引优化

// 创建索引加速查询
db.access.createIndex({ "time": 1 }); // 按时间排序
db.access.createIndex({ "remote_addr": 1 }); // 按 IP 查询

(2)日志自动清理(TTL 索引)

// 自动删除 30 天前的日志
db.access.createIndex(
{ "time": 1 },
{ expireAfterSeconds: 2592000 } // 30 天 = 30243600 秒
);

(3)错误处理

如果 Fluentd 报错连接 MongoDB,检查:
• MongoDB 是否允许远程访问(bindIp: 0.0.0.0)。

• 防火墙是否放行 27017 端口:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

总结

步骤 关键命令/配置

  1. 安装 td-agent rpm -ivh td-agent-*.rpm

  2. 安装 MongoDB 插件 td-agent-gem install fluent-plugin-mongo

  3. 配置 Nginx JSON 日志 log_format json_log escape=json '{...}';

  4. 配置 Fluentd /etc/td-agent/td-agent.conf(MongoDB 输出)

  5. 验证数据 db.access.find().pretty()

现在,Nginx 的 JSON 日志已自动存储到 MongoDB! 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年气柱袋厂家推荐排行榜,防震/防摔/食品级气柱袋,奶瓶/奶粉/电子产品/化妆品气柱袋,缓冲包装与物流运输优选方案

2025年气柱袋厂家推荐排行榜:防震/防摔/食品级气柱袋,奶瓶/奶粉/电子产品/化妆品气柱袋,缓冲包装与物流运输优选方案 行业背景与发展趋势 随着电商物流行业的蓬勃发展,气柱袋作为现代包装领域的重要缓冲材料,正经…

详细介绍:EfficientNet:复合缩放

详细介绍:EfficientNet:复合缩放pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

2025 年防火涂料厂家最新推荐排行榜:精选优质企业,涵盖钢结构各类型涂料,助您精准选品

引言 在建筑与工业安全领域,防火涂料是抵御火灾、守护生命财产安全的关键防线。但当前市场乱象频发,部分企业生产的防火涂料未达国家标准,防火性能堪忧;品牌数量繁杂,产品质量差距悬殊,消费者和企业在选购时常常…

Docker 代理配置的迷思:为什么 127.0.0.1 不总是本地? - 若

在使用 Docker 时配置代理是一个常见的需求,但很多开发者都会遇到一个令人困惑的现象:明明代理服务运行在本机,使用 127.0.0.1 却无法正常工作。本文将深入探讨这个问题背后的原理。 问题现象 让我们先看两个相似的…

惠普打印机驱动下载与安装教程(图文详解 + 常见问题解决方案)

本文详细介绍了惠普打印机驱动的下载安装与配置教程,支持 Windows7/10/11 系统。通过官方安全下载渠道,提供全型号兼容驱动与图文安装步骤,并针对打印乱码、驱动不识别、扫描失败等常见问题提供解决方案。无论家用或…

PHP码农的微信业务开发利器

微擎系统:PHP码农的微信业务开发利器 作为一名深耕PHP开发的码农,我深知在微信生态中开发业务系统面临的挑战:接口对接繁琐、多平台适配复杂、功能迭代周期长。直到公司承接微信端业务需求时,我在网上偶然发现微擎…

深入解析:Matlab通过GUI实现点云的PCA配准(附最简版)

深入解析:Matlab通过GUI实现点云的PCA配准(附最简版)2025-10-20 17:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; di…

词向量:从 One-Hot 到 BERT Embedding,NLP 文本表示的核心技术 - 实践

词向量:从 One-Hot 到 BERT Embedding,NLP 文本表示的核心技术 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

2025年深圳网站建设/外贸独立站推广/阿里巴巴代运营/1688店铺代运营/短视频运营推广/微信小程序开发服务商权威推荐榜

2025年深圳网站建设/外贸独立站推广/阿里巴巴代运营/1688店铺代运营/短视频运营推广/微信小程序开发服务商权威推荐榜 行业背景与发展趋势 随着数字化转型浪潮的深入推进,深圳作为中国科技创新中心,其数字营销服务行…

计算机毕业设计Hadoop+Spatk+Hive滴滴出行分析 出租车供需平衡优化系统 出租车分析预测 大资料毕业设计(源码+LW+PPT+讲解)

计算机毕业设计Hadoop+Spatk+Hive滴滴出行分析 出租车供需平衡优化系统 出租车分析预测 大资料毕业设计(源码+LW+PPT+讲解)2025-10-20 17:23 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !importan…

微信小脚本入门学习教程,从入门到精通,微信小程序开发进阶(7)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Android studio build报错 - show

build报错> Task :app:checkDebugAarMetadata FAILED Execution failed for task :app:checkDebugAarMetadata. > Could not resolve all files for configuration :app:debugRuntimeClasspath.> Could not r…

2025 彩石瓦厂家最新推荐排行榜:权威解析金属瓦 / 屋顶瓦优质厂商,金属/屋顶/凉亭/昆明/云南彩石瓦厂家推荐

引言 随着绿色建筑理念深化与屋面材料升级,彩石瓦凭借耐候性强、装饰性佳的优势,成为别墅、文旅项目及新农村建设的核心选材。但市场现状令人担忧:既有产品基材厚度不达标、彩砂脱落等质量隐患,又存在新锐品牌与传…

2025 年最新干燥剂厂家推荐排行榜:深度剖析各品牌实力,涵盖氯化钙 / 氯化镁 / 硅胶等多类型干燥剂优选指南

在工业生产与日常生活中,干燥剂的防潮、保鲜作用愈发关键,小到食品药品储存,大到集装箱海运防潮,都离不开优质干燥剂的支撑。但当前干燥剂市场品牌繁杂,部分小品牌产品吸湿能力弱、持久度差,难以满足不同行业的专…

2025年螺杆泵厂家权威推荐榜:单干污泥料斗/浆料进料/高压耐磨/石油工业化工环保食品级船舶造纸加药计量/耐腐蚀高粘度污水污泥不锈钢铸铁304316全系解析

2025年螺杆泵厂家权威推荐榜:单干污泥料斗/浆料进料/高压耐磨/石油工业化工环保食品级船舶造纸加药计量/耐腐蚀高粘度污水污泥不锈钢铸铁304316全系解析 螺杆泵作为现代工业流程中不可或缺的核心设备,其技术水平和产…

2025 年工业 pH 计厂家最新推荐榜单:在线 / 污水 / 脱硫 / 发酵 / 化工等场景适用,国内优质厂家实力排行

引言 在工业生产与科研实验中,pH 计的精准度、稳定性直接关系到生产安全与实验结果可靠性。当前市场上 pH 计品牌杂乱,部分产品存在测量误差大、适配性差、售后缺失等问题,难以满足化工、环保、食品等多行业多样化需…

文明元代码:价值原语、共识具身与关系语法

文明元代码:价值原语、共识具身与关系语法 ——论人类共同世界的构建与演进 作者:岐金兰 机构:独立技术哲学研究者 导言:意义的生成之网 人类文明不仅是一座由制度与器物构筑的大厦,更是一张在历史时空中不断编织…

2025年扒胎机厂家推荐排行榜,液压无损扒胎机,全自动扒胎机,汽保扒胎机,轮胎扒胎机,汽车扒胎机,大轮胎扒胎机,无损扒胎机,辽南扒胎机,小车扒胎机,立式扒胎机公司推荐

2025年扒胎机行业深度解析与权威推荐榜单 行业背景与发展趋势 随着汽车保有量的持续增长和汽车后服务市场的快速发展,扒胎机作为汽保设备领域的重要装备,正经历着技术革新与产业升级的关键时期。液压无损扒胎机、全自…

springboot集成echarts显示图表

核心实体类设计 1.统一返回结果类 (Result.java) import lombok.Data;@Data public class Result<T> {private boolean success;private String message;private T data;public static <T> Result<T>…

2025年储罐厂家权威推荐榜:钢衬塑储罐/钢塑复合储罐/化工储罐/防腐储罐/PE储罐/盐酸储罐/硫酸储罐/聚丙烯储罐/不锈钢储罐/次氯酸钠储罐专业选购指南

2025年储罐厂家权威推荐榜:钢衬塑储罐/钢塑复合储罐/化工储罐/防腐储罐/PE储罐/盐酸储罐/硫酸储罐/聚丙烯储罐/不锈钢储罐/次氯酸钠储罐专业选购指南 在化工、制药、环保等工业领域,储罐作为关键设备,其性能和质量直…