elasticsearch分析nginx日志并配置告警

本文介绍了如何使用Elasticsearch的ingest node和pipeline对Nginx日志进行字段拆解和预处理,通过Kibana设置字段映射,并在Grafana中配置数据源、导入模板及告警,以实现流量和响应时间的监控与告警推送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、背景

项目统一入口为nginx,为了直观的统计流量以及响应时间,故打算对nginx日志进行分析

2、思路

采用es ingest node预处理功能,利用pipeline对nginx进行字段拆解,设置模板对字段进行映射,理由kibana或者grafana对映射的字段进行分析

3、实践

es端

1、部署es,kibana(此处不介绍)
2、打开kibana并设置pipeline
pipeline的调试过程
确定nginx的日志格式

log_format  main  '$remote_addr - $remote_user [$time_iso8601] "$request" '
                             '$status $body_bytes_sent "$http_x_forwarded_for" '
                             '$upstream_cache_status $request_time';

确定nginx的日志输出(access)

172.25.36.1 - - [2021-02-07T14:16:47+08:00] "GET /ehc-portal-web/assets/images/user-exhibition/logo-ecard.png HTTP/1.1" 200 857 "-" HIT 0.000

利用kibana tool–>grok debugger进行调试
debug调试
得出pipeline格式:

%{
   IP:clientip} (%{
   USERNAME:ident}|-) (%{
   USERNAME:auth}|-) \[%{
   DATA:timestamp}\] \"%{
   WORD:method} %{
   URIPATHPARAM:request} HTTP/%{
   NUMBER:httpversion}\" %{
   NUMBER:Http_Status_Code} %{
   NUMBER:bytes} \"(%{
   USERNAME:X_Forwarded_For}|-)\" %{
   NOTSPACE:cache_status} (%{
   NUMBER:Request_Time}|-)
PUT _ingest/pipeline/nginx_access
{
   
    "description" : "my nginx access log pipeline",
    "processors": [
        {
   
            "grok": {
   
                "field": "message",
                "patterns": ["%{IP:clientip} (%{USERNAME:ident}|-) (%{USERNAME:auth}|-) \\[%{DATA:timestamp}\\] \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:Http_Status_Code} %{NUMBER:bytes} \"(%{USERNAME:X_Forwarded_For}|-)\" %{NOTSPACE:cache_status} (%{NUMBER:Request_Time}|-)"]
            }
        },
        {
   
      "remove": {
   
        "field": ["message", "agent", "ecs", "host", "input", "log"]
      }
    }

    ],
     "on_failure": [
    {
   
      "set": {
   
        "field": "error.message",
        "value": "{
   { _ingest.on_failure_message }}"
      }
    }
  ]
}

3、设置字段映射(对具体要分析的字段进行特定字段映射)

PUT _template/nginx_access
{
   
"index_patterns": "nginx_access*",
    "mappings" : {
   
      "properties" : {
   
        "request" : {
   
          "type" : "text",
          "fields" : {
   
            "keyword" : {
   
              "ignore_above" : 256,
              "type" : "keyword"
            }
          }
        },
        "agent" : {
   
          "properties" : {
   
            "hostname" : {
   
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值