千家信息网

如何使用logstash同步nginx日志到数据库

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,概述logstashlogstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很
千家信息网最后更新 2025年12月02日如何使用logstash同步nginx日志到数据库

概述

logstash

logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。

Nginx

Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

1.logstash安装(jdk提前安装1.8)

rpm -ivh logstash-6.6.2.rpm

2.上传数据库驱动jar包

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz

mkdir -p /usr/share/logstash/vendor/jar/jdbccd /usr/share/logstash/vendor/jar/jdbc[root@localhost soft]# cd /usr/share/logstash/vendor/jar/jdbc[root@localhost jdbc]# lltotal 984-rw-r--r--. 1 logstash logstash 1006959 Jul 11 19:43 mysql-connector-java-5.1.48-bin.jar[root@localhost jdbc]#

3.数据库创建库 并授权用户

create database nginxlog;use nginxlog;CREATE TABLE `consumerlog` (  `client_ip` varchar(128) DEFAULT NULL,  `log_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  `status` int(6) DEFAULT NULL,  `http_referer` text,  `AgentVersion` varchar(512) DEFAULT NULL,) grant all  on  nginxlog.* to  nginxlog@'%'  identified  by  '123456';

4.安装 logstash-output-jdbc插件

vim /usr/share/logstash/Gemfile# source "https://rubygems.org"  将国外的源注释,换成国内的source "https://gems.ruby-china.com/"/usr/share/logstash/bin/logstash-plugin install logstash-output-jdbc
Validating logstash-output-jdbcInstalling logstash-output-jdbcInstallation successful /usr/share/logstash/bin/logstash-plugin list | grep jdbclogstash-input-jdbclogstash-output-jdbc

5.nginx日志格式设置

log_format   access_log_json '{"client_ip":"$remote_addr","log_time":"$time_local","request":"$request","status":"$status","body_bytes_sent":"$body_bytes_sent","http_referer":"$http_referer","AgentVersion":"$http_user_agent","upstream_addr":"$upstream_addr","request_time":"$request_time","upstream_response_time":"$upstream_response_time"}';

6.

[root@localhost conf.d]# cat consumer_log.conf

/etc/logstash/conf.d

input{  file{    path => "/usr/local/tengine-2.1.2/logs/sxt-consumer.log"    start_position => "beginning"    stat_interval => "2"    codec => "json"  } } filter {    if [status] != "200" {         drop{}    }}output{  jdbc{    connection_string => "jdbc:mysql://192.168.14.61/nginxlog?user=nginxlog&password=123456&useUnicode=true&characterEncoding=UTF8"    statement => ["insert into consumerlog(client_ip,status,http_referer,AgentVersion) VALUES(?,?,?,?)", "client_ip","status","http_referer","AgentVersion"] }}

7.启动logstash

systemctl start logstash

8.验证数据

服务器 服务 数据 管道 能力 代理 数据库 功能 滤网 传输 强大 与此同时 中表 事实 事实上 内存 功能强大 场景 实时 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络运维和网络安全哪个容易学 杭州多诚网络技术有限公司 安全对软件开发的影响 数据库字段有平均值怎么建表 软件开发学的不好去干测试 新会定制软件开发 学校网络安全建设制度 软件开发在建工程账务处理 新建数据库用户时 代理服务器技术作用 linux服务器账号管理 网络安全和银行 单机版用友u8连接不到服务器 网络安全分级管理概念股 浙江通能软件开发 视频监控 软件开发 清华同方服务器硬盘热插拔 数据库链接池druid 收废品软件开发有限公司 对口单招计算机网络技术 数据库表联合查询 银行的数据库是技术部门吗 微信读书服务器存在问题 魔兽2.43技能数据库 青少年网络安全家长意见建议 数据库的er图转换为关系模型 网络技术推广公司经营理念 软件开发工程师证书有哪些 魔兽世界怀旧服新开两组服务器 重视网络安全的主题板报
0