ELK监控nginx日志总结

ELK介绍

ELK即ElasticSearch + Logstash + kibana

  • ES:作为存储引擎
  • Logstash:用来采集日志
  • Kibana可以将ES中的数据进行可视化,可以进行数据分析中常见的对属性求和、平均值、计数,按照时间戳或其他日志展示出来

整体的流程就是先把logstash启动,读取nginx日志数据存储到ES中,再用kibana进行统计以及可视化

一.nginx

第一步需要先把nginx的日志格式修改为json格式,这样方便logstash读取
找到配置文件位置,我的是在/usr/local/nginx/conf
在其中添加

  log_format main_json '{"@timestamp": "$time_local", '
                        '"remote_addr": "$remote_addr", '
                        '"referer": "$http_referer", '
                        '"request": "$request", '
                        '"status": $status, '
                        '"bytes": $body_bytes_sent, '
                        '"agent": "$http_user_agent", '
                        '"x_forwarded": "$http_x_forwarded_for", '
                        '"up_addr": "$upstream_addr",'
                        '"up_host": "$upstream_http_host",'
                        '"up_resp_time": "$upstream_response_time",'
                        '"request_time": "$request_time"'
                        ' }';
    access_log  logs/access.log main_json; # 引用日志格式名称

改完以后日志的格式就会变为json字符串,如下所示

{
    "@timestamp": "25/Feb/2022:10:58:15 +0800",
    "remote_addr": "192.168.2.95",
    "referer": "-",
    "request": "GET /api/getScreenshot?url=http://www.qhjyedu.com/0e/bd/c12a3773/page.htm&path=/data2/ncs-cyber/mirror/page_image/situation_image/gdzx20211020/ddd38417-971b-400f-b430-834022c57d97.png&errorKeyWord=中国民族伟大复兴&successKeyWord=中华民族伟大复兴 HTTP/1.1",
    "status": 304,
    "bytes": 0,
    "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36",
    "x_forwarded": "-",
    "up_addr": "192.168.3.222:9848",
    "up_host": "-",
    "up_resp_time": "12.193",
    "request_time": "12.193"
}

二.logstash

接着便是写logstash配置文件了,自己写一个配置文件,我的名字叫做nginx-access.conf,配置如下

input {
    file {
        path => ["/usr/local/nginx/logs/access.log"]   # 读取日志文件的路径
	start_position => "beginning"
	codec => json {    # 这里是将json字符串转化为json,不然的话会在es中存一个<属性,json字符串>
		charset => ["UTF-8"]
		}
    }
}
filter {  # 简单处理,无过滤操作
    }
output {
    elasticsearch {
        hosts => ["你的ip:port"]  # 你的es的ip+端口
	index => "logstash-nginx-access-%{+YYYY.MM.dd}" # 你的索引名

    }
    stdout {
        codec => rubydebug
    }
}

这样配置完配置文件以后,就可以执行logstash指令了,根据配置文件,读取指定的日志文件

logstash-6.7.2/bin/./logstash -f /home/xxx/nginx_access.conf --path.data=/home/xxx/logstash

之后可以在es中查看自己新建立的索引

由于我这里服务器的logstash和es都是已经部署好的,没有部署的话需要查看一下部署的教程,部署一下

另外,日志采集其实也可以使用fleatbeats,是一个更加轻量易用的日志采集工具

三.kibana

接着就可以在kibana中对es索引进行可视化了

1.management添加索引

选择你在es中存储的索引,直接一路next。

2.Discover查看索引

3.Visualize建立仪表盘模板

选择你想要展示的图标模式,我这里简单的测试了一下折线图,统计的同学应该对这些操作更加熟悉

纵轴选择count,横轴选择terms,执行一下,图表就出来了

点击上侧导航栏的save即可将你建立的这个视图模板保存,之后可以将其放入到dashboard持续监测

4.Dashboard

可以选择建立好的visualize,在这个地方进行展示

总结

一次关于elk的简单实践,主要的操作都在于部署、配置,不过由于我的服务器已经部署好了这些,只需要配置就行了。
另外不容易操作的点就在于visualize的配置,可能需要一些统计学知识,才能对数据进行更好的统计分析,以便公司做出更优的决策

到此这篇关于ELK监控nginx日志总结的文章就介绍到这了,更多相关ELK监控nginx日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解用ELK来分析Nginx服务器日志的方法

    所有ELK的安装包都可以去官网下载,虽然速度稍慢,但还可以接受,官网地址:https://www.elastic.co/ logstash 在Logstash1.5.1版本,pattern的目录已经发生改变,存储在/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-0.1.10/目录下,但是好在配置引用的时候是可以对patterns的目录进行配置的,所以本人在Logstash的根目录下新建了一个patterns目录.而配置目

  • ELK监控nginx日志总结

    ELK介绍 ELK即ElasticSearch + Logstash + kibana ES:作为存储引擎 Logstash:用来采集日志 Kibana可以将ES中的数据进行可视化,可以进行数据分析中常见的对属性求和.平均值.计数,按照时间戳或其他日志展示出来 整体的流程就是先把logstash启动,读取nginx日志数据存储到ES中,再用kibana进行统计以及可视化 一.nginx 第一步需要先把nginx的日志格式修改为json格式,这样方便logstash读取找到配置文件位置,我的是在/

  • ELK监控nginx日志的整体流程

    目录 ELK介绍 一.nginx 二.logstash 三.kibana 1.management添加索引 2.Discover查看索引 3.Visualize建立仪表盘模板 4.Dashboard 总结 ELK介绍 ELK即ElasticSearch + Logstash + kibana ES:作为存储引擎 Logstash:用来采集日志 Kibana可以将ES中的数据进行可视化,可以进行数据分析中常见的对属性求和.平均值.计数,按照时间戳或其他日志展示出来 整体的流程就是先把logstas

  • ELK收集Nginx日志的项目实战

    目录 01 安装 Nginx 和 ab 工具 1.1 安装 nginx 1.2 启动 Nginx 并测试 02 使用 Filebeat 采集日志并展示 2.1 配置 filebeat 采集 Nginx 日志 2.2 使用 Kibana 展示 Nginx 日志数据 03 采集 JSON 格式的 Nginx 日志 3.1 修改 Nginx 日志为 Json 格式 3.2 Filebeat 重新采集 Nginx 日志 3.3 自定义存储 Filebeat 采集日志的 ES 索引 04 使用 Fileb

  • PHP简单实现定时监控nginx日志文件功能示例

    本文实例讲述了PHP简单实现定时监控nginx日志文件功能.分享给大家供大家参考,具体如下: 此功能是为了实现,定时监控nginx生成的日志数据,并将新增的数据提交到一个接口(比如大数据的接口,让大数据来进行分析) define("MAX_SHOW", 8192*5); //新增数据提交阈值 define("LOG_NAME", ""); //读取的日志文件 define("LOG_SIZE", "");

  • ELK与Grafana联合打造可视化监控来分析nginx日志

    目录 修改nginx打印日志格式 安装logstash后,修改配置文件 配置解析: input段: filter段: output段: 安装GeoIP: 安装Grafana 配置Grafana数据源 配置Grafana 画图模版 打造一个帅气的监控需要什么: Grafana 前端数据分析平台 Elasticsearch 全文检索引擎 Logstash 日志收集处理框架 dashboard 监控面板出处 前提是elk集群和Grafana安装完毕,google上请自行搜索安装,这里不写了. 修改ng

  • Nginx状态监控以及日志分析详解

    1.Nginx状态监控 Nginx提供了一个内置的状态信息监控页面可用于监控Nginx的整体访问情况,这个功能由ngx_http_stub_status_module模块进行实现. 使用nginx -V 2>&1 | grep -o with-http_stub_status_module命令检测当前Nginx是否有status功能,如果输出ngx_http_stub_status_module则说明是有的,如果没有可以在编译时加上此模块. 默认情况下,status是关闭的,我们需要开启,并

  • 使用MongoDB分析Nginx日志的方法详解

    本文我们要从日志文件中找出IP访问最多的10条记录,然后判断其是否合法,从而采取对应的措施.感兴趣的朋友们一起来看看吧. 日志解析流程 正常情况下,关于Nginx日志解析的流程如下所示: 一般情况下我们会对要解析的日志提前进行切分,常用的方式是按照日期,然后保存1个星期的日志.然后接下来就是日志的解析了,在这个过程中会使用到一些工具或编程语言,例如awk.grep.perl.python. 最后的入库和可视化处理一般视业务而定,没有强制的要求. 日志查询的解决方案 而关于Nginx日志解析的常用

  • python实时监控logstash日志代码

    实时读取logstash日志,有异常错误keywork即触发报警. # /usr/bin/env python3 # -*- coding: utf-8 -*- # __author__ = caozhi # create_time 2018-11-12,update_time 2018-11-15 # version = 1.0 # 录像高可用报警 # 1 读取日志 使用游标移动 # 2 线上业务日志文件会切割,切割后,读取上一个切割的日志 import os import sys impor

  • ELK收集Tomcat日志的实现

    目录 01 Tomcat 安装与测试 02 修改 Tomcat 日志为 Json 格式 03 配置 Filebeat 采集 Tomcat 日志 04 使用Kibana查看Tomcat日志 01 Tomcat 安装与测试 1.1 安装 Tomcat 安装Tomcat的本体和相关官方测试demo,参考链接 apt-get install tomcat8 -y # 安装Tomcat本体 apt-get install tomcat8-docs tomcat8-examples tomcat8-admi

  • 关于nginx日志增加cookie信息

    一.获取全部cookie信息 这个比较方便,直接在nginx.conf文件中添加$http_cookie log_format main '[$time_local] - $remote_addr:$remote_port - $remote_user - $upstream_addr $upstream_status $upstream_response_time - ' '"$request" $status $bytes_sent $request_time ' '"$

随机推荐