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日志并进行多维度分析。
目录
相关文章
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
16天前
|
存储 监控 安全
|
3月前
|
应用服务中间件 nginx
nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
【8月更文挑战第27天】nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
277 6
|
3月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
3月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
3月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
24天前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
1月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
253 0
|
1月前
|
应用服务中间件 Linux nginx
Jetson 环境安装(四):jetson nano配置ffmpeg和nginx(亲测)之编译错误汇总
这篇文章是关于在Jetson Nano上配置FFmpeg和Nginx时遇到的编译错误及其解决方案的汇总。
87 4
|
4天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏