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

简介: 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日志并进行多维度分析。
目录
相关文章
|
23天前
|
运维 监控 应用服务中间件
LNMP详解(十五)——Nginx日志分析实战
LNMP详解(十五)——Nginx日志分析实战
24 0
|
24天前
|
运维 应用服务中间件 Shell
LNMP详解(十六)——Nginx日志切割
LNMP详解(十六)——Nginx日志切割
22 5
|
4天前
|
弹性计算 应用服务中间件 Shell
切割 Nginx 日志文件
【4月更文挑战第28天】
12 0
|
3天前
|
弹性计算 应用服务中间件 Shell
切割Nginx 日志文件
【4月更文挑战第29天】
11 1
|
23天前
|
存储 应用服务中间件 nginx
nginx日志定时切割 按年月日
nginx日志定时切割 按年月日
13 0
|
23天前
|
网络协议 应用服务中间件 Linux
centos7 Nginx Log日志统计分析 常用命令
centos7 Nginx Log日志统计分析 常用命令
40 2
|
24天前
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
26 2
|
23天前
|
安全 Linux 网络安全
/var/log/secure日志详解
Linux系统的 `/var/log/secure` 文件记录安全相关消息,包括身份验证和授权尝试。它涵盖用户登录(成功或失败)、`sudo` 使用、账户锁定解锁及其他安全事件和PAM错误。例如,SSH登录成功会显示&quot;Accepted password&quot;,失败则显示&quot;Failed password&quot;。查看此文件可使用 `tail -f /var/log/secure`,但通常只有root用户有权访问。
69 4
|
25天前
|
运维 监控 数据可视化
日志服务 HarmonyOS NEXT 日志采集最佳实践
鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。
116756 10
|
2天前
|
XML Java Maven
Springboot整合与使用log4j2日志框架【详解版】
该文介绍了如何在Spring Boot中切换默认的LogBack日志系统至Log4j2。首先,需要在Maven依赖中排除`spring-boot-starter-logging`并引入`spring-boot-starter-log4j2`。其次,创建`log4j2-spring.xml`配置文件放在`src/main/resources`下,配置包括控制台和文件的日志输出、日志格式和文件切分策略。此外,可通过在不同环境的`application.yml`中指定不同的log4j2配置文件。最后,文章提到通过示例代码解释了日志格式中的各种占位符含义。