nginx日志截取入库

前言:如何实现一个前端监控系统,那么nginx服务器的配置必不可少,那么如何进行nginx的配置,拿到当前请求的的错误信息,然后进行日志清洗过滤标准入库呢?下面我带领大家一步一步的进行实现引导。

监控实现的流程:

image.png

什么是Nginx:

Nginx服务器以其功能丰富著称于世。它既可以作为HTTP服务器,也可以作为反向代理服务器 或者邮件服务器;能够快速响应静态页面(HTML)的请求;支持FastCGI、SSL、Virtual Host、URL Rewrite、HTTP Basic Auth、Gzip等大量使用功能;并且支持更多的第三方功能模块的扩展。

Nginx的基本配置:

image.png

最外层的花括号将内容整体分为两部分,再加上最开始的内容,即第-行省略号表示的, nginx.conf-共由三部分组成,分别为全局块、events 块和htp块。在http块中,又包含htp全局块、多个server块。每个server块中,可以包含server全局块和多个location块。在同一配置块中嵌套的配置块,各个之间不存在次序关系。《摘自  Nginx高性能Web服务器详解 2.4章节》

nginx切分方式:

shell脚本的读取文件目录进行切分:

image.png

根据内置的变量进行切分:

image.png

Tips:

刚才的set其实是对nginx的变量标记,跟Javsscript的var、let 其实有异曲同工之妙,用正则提取当前的时间节点进行赋值切分,进行日志赋值。

日志默认定义的格式:

image.png

nginx内置变量说明:

image.png

什么是shell:

 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。​​​​​​​《摘自 shell 菜鸟教程》
在计算机语言中,Shell 是指一种命令行解释器,是为用户和操作系统之间通信提供的一种接口(想象一下,如果没有一种与计算机沟通的方式,那么计算机如何得到来自人脑的指令呢),它接受来自用户输人的命令,并将其转换为一系列的系统调用送到内核执行,并将结果输出给用户。《摘自 Linux系统命令及Shell脚本实践指南  章节11.1》
代码示例
#!/bin/sh
echo "大家好 我是shell"

getUserInfo(){

  echo "你想认识我吗:"

  read bool 

  echo $bool

  if [ $bool == 'yes' ]; then 

    echo "哦~ 谢谢!我叫shell!您叫什么?"

    # 再次输入
    read name

    echo "嗨~ 你好 $name"
  elif [ $bool = 'no' ]; then 

    echo "你居然给我说 $bool ! 我不活了!! 你不爱我了吗?"

    # 再次输入
    read test
    
    if [ $test == 'ai' ]; then 
    
      echo "你讨厌!滚吧"

    else
    
      echo "再见!男人的嘴骗人的鬼!"

    fi

  else

    echo "你在居然跟我说 $bool !!! 再见"

  fi
}

getUserInfo $1

crontab定时器:

Linux crontab是用来定期执行程序的命令。​​​​​​​

image.png

实现的脚本:

详情请看amazing-webNginxLog 欢迎star

你可能感兴趣的:(nginx日志截取入库)