ELK系列二、Logstash读取Nginx日志写入ES中

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: ELK系列二、Logstash读取Nginx日志写入ES中

上一篇讲了 ELK 的部署,本篇来实战一下,将 nginx 的日志通过 Logstash 传输到 Elasticsearch 中,然后我们通过 Kibana 去查看日志。

安装 Nginx

sudo cat > /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

yum install -y nginx

启动 nginx

systemctl start nginx

浏览器访问机器 IP,如果有防火墙/安全组请记得开放 80 端口
image.png

先看一下 nginx 访问日志

image.png

配置 Logstash

Logstash 是由 Elastic 公司推出的一款开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送指定的存储库中,Logstash 官方介绍

Logstash 包含 3 个主要部分:输入(inputs),过滤器(filters)和输出(outputs)。

  • inputs 主要用来提供接收数据的规则,比如使用采集文件内容;
  • filters 主要是对传输的数据进行过滤,比如使用 grok 规则进行数据过滤;
  • outputs 主要是将接收的数据根据定义的输出模式来进行输出数据,比如输出到 Elasticsearch 中。

上一篇文章我们已经安装好了 Logstash,然后我们开始写 logstash 的配置文件,新建 nginx_access.conf 写入如下内容:

input {
    file {
        # 读取文件的路径, 基于 glob 匹配语法
        path => "/var/log/nginx/access.log"
        type => "nginx_access"
        # beginning/end 是否从头读取文件, 默认从尾部读取
        start_position => "beginning"
    }
}

filter {
    grok {
        match => { "message" => "%{HTTPD_COMBINEDLOG}" }
    }
}

output {
    # 输出到 ES 中, 自动按天创建索引
    elasticsearch {
        hosts => ["192.168.199.161:9200"]
        index => "nginx-%{+YYYY.MM.dd}"
    }
}

logstash 加载配置文件

/usr/share/logstash/bin/logstash -f nginx_access.conf

image.png

在浏览器中访问 http://ip:5601

image.png

点击 Add your data 按钮,Create index pattern 创建索引匹配规则,输入 nginx 可以看到下面已经匹配到一条索引

image.png

继续 Next step 下一步,选择 @timestamp Time field,然后 Create index pattern 创建

image.png

左侧菜单点击 Discover 就可以看到 nginx 的访问日志啦

image.png


参考

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4天前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
162 90
|
3月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
272 3
|
4月前
|
存储 JSON 监控
开源日志分析Logstash
【10月更文挑战第22天】
96 1
|
4月前
|
存储 监控 安全
|
6月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
1天前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
20 10
|
2月前
|
存储 应用服务中间件 Linux
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
77 4
|
3月前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
141 5
|
3月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
227 3
|
4月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
269 60