zoukankan      html  css  js  c++  java
  • GoAccess 监控 Nginx 日志

    GoAccess 是一个免费的(由MIT许可)且开源的实时 Web 日志分析器和交互式查看器,可在 *nix 系统的终端中或通过浏览器运行。
    具体功能可以到 https://goaccess.io 查看。这里就不再赘述。

    实战 -- 简单分析 Nginx 日志

    先上命令

    goaccess /usr/local/nginx/logs/access.log 
    --ignore-panel=VISITORS 
    --ignore-panel=HOSTS 
    --ignore-panel=OS 
    --ignore-panel=BROWSERS 
    --ignore-panel=VIRTUAL_HOSTS 
    --ignore-panel=REFERRERS 
    --ignore-panel=REFERRING_SITES 
    --ignore-panel=KEYPHRASES 
    --ignore-panel=REMOTE_USER 
    --ignore-panel=GEO_LOCATION 
    --log-format=COMBINED 
    -q -a -o /usr/local/nginx/report/index.html 
    --real-time-html --daemonize
    

    以守护进程(--daemonize)实时分析(--real-time-html)nginx 日志(--log-format=COMBINED,通用日志格式,Nginx 适用于这种日志格式)的运行,并且忽略(--ignore-panel)一些不关心的模块。
    goaccess 创建了一个网页 —— index.html,该文件包含了监控数据,我们可以通过浏览器进行查看。

    Nginx 配置查看报表数据

    Nginx 配置一个域名解析到相应的目录,这个目录包含了 goaccess 的报表页面(/usr/local/nginx/report/index.html)。
    为了数据安全,这里简单的试用了 Nginx 的 ngx_http_auth_basic_module 提供的认证功能,默认情况下,nginx 已经安装了该模块。
    首先需要创建一个密码文件(/usr/local/nginx/logs/goaccess_pwd),此文件的书写格式是 用户名:密码,每行一个账户,密码必须使用函数 crypt() 加密。

    # 使用 goaccess 分析 nginx 日志生成的报表 html 页面
    # 页面账号 xxx 密码 xxx
    server {
            listen 80;
            server_name domainName;
            location / {
                    auth_basic "goaccess-login!";
                    auth_basic_user_file /usr/local/nginx/logs/goaccess_pwd;
                    root /usr/local/nginx/report/;
                    index index.html;
            }
    }
    

    more

    1. 在分析 200M 的 Nginx 日志时系统资源占用几乎可以忽略不计,只占用了 6M 的内存:
    [root@xxx~]# ps aux|grep goaccess
    root     15339  0.1  0.0 282836  6464 ?        Ssl  13:35   0:01 goaccess /usr/local/nginx/logs/access.log 
    
    1. -q 参数可以忽略请求的查询字符串。例如,www.google.com/page.htm? query => www.google.com/page.htm
      注意:删除查询字符串可以大大减少内存消耗,尤其是在带有时间戳的请求上。

    2. 使用 --daemonize 使得 GoAccess 成为守护进程的时候所有参数后的值都必须是绝对路径,否则将无法创建守护进程。

  • 相关阅读:
    HDFS Java Client对hdfs文件增删查改
    Linux du查询文件大小
    Algorithms(4th)谢路云译大纲总结(附实现源码)
    百度开源e-chart初探
    由于java.util.Arrays.asList(...)导致的异常
    插入排序(1)——直接插入排序(insert sort)
    选择排序(2)——堆排序(heap sort)
    选择排序(1)——简单选择排序(selection sort)
    交换排序(2)——冒泡排序(bubble sort)
    ※交换排序(1)——快速排序(quick sort)
  • 原文地址:https://www.cnblogs.com/manastudent/p/14377327.html
Copyright © 2011-2022 走看看