前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK收集nginx access_log日志

ELK收集nginx access_log日志

作者头像
星哥玩云
发布2022-09-15 20:54:58
4820
发布2022-09-15 20:54:58
举报
文章被收录于专栏:开源部署开源部署

一、案例分析

公司为了每天都能够随时看到公司WEB业务的实时运行情况,希望运维通过分析access.log日志信息,实时展示一下数据给公司的运营部门:

  • 统计不同返回值的数量
  • 统计访问前5名的IP地址
  • 统计每日PV
  • 统计每日UV
  • …….

二、nginx access_log定义json格式日志

  • 部署nginx
  • 设置nginx 访问日志为json格式

a、部署nginx服务

代码语言:javascript
复制
[root@node4 ~]# tar xf nginx-*.rpm
[root@node4 ~]# cd nginx-*.rpm
[root@node4 ~]# yum -y install pcre-devel zlib-devel gcc-*
[root@node4 ~]# ./configure --prefix=/usr/local
[root@node4 ~]# make
[root@node4 ~]# make install

b、设置nginx 访问日志为json格式

由于ES是基于json来处理数据的,所以给ES的数据就必须是JSON数据,只有这样才能通过json将数据进行分析、统计。为了能让ES能分析access.log日志,我们让nginx直接将该日志的格式设置为json格式。

代码语言:javascript
复制
[root@node4 ~]# vim /usr/local/nginx/conf/nginx.conf

log_format main_json '{"@timestamp":"$time_local",'
'"N_client_ip": "$remote_addr",'
'"N_request": "$request",'
'"N_request_time": "$request_time",'
'"N_status": "$status",'
'"N_bytes": "$body_bytes_sent",'
'"N_user_agent": "$http_user_agent",'
'"N_x_forwarded": "$http_x_forwarded_for",'
'"N_referer": "$http_referer"'
'}';

    access_log  logs/access.log  main_json;

三、日志收集

filebeat设置-修改配置文件定义日志收集

代码语言:javascript
复制
[root@node4 ~]# egrep -v "(#|^$)" /etc/filebeat/filebeat.yml 
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/nginx/logs/access.log
  #添加以下两行,定义收集的是json日志
  json.keys_under_root: true
  json.overwrite_keys:  true
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 1
setup.kibana:
  host: "192.168.98.200:5601"
output.logstash:
  hosts: ["192.168.98.203:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

logstash设置-配置业务文件,接收Filebeat发送的数据,然后将数据发送给ES

代码语言:javascript
复制
[root@node3 conf.d]# cat f_to_e.conf 
input {
    beats {
        port => 5044
    }
}

output {
    elasticsearch {
        hosts => ["192.168.98.202:9200"]
        index => "nginx-%{+YYYY.MM.dd}"
    }
    stdout {
      codec => rubydebug
    }
}
kibana

创建索引,添加nginx数据

四、kibana展示

统计不同返回值的数量 饼图

统计访问前5名的IP地址 柱形图

统计每日PV 仪表盘

统计每日UV 计数

52nginx_access.png
52nginx_access.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、案例分析
  • 二、nginx access_log定义json格式日志
  • 三、日志收集
    • kibana
    • 四、kibana展示
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档