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

nginx日志可视化

作者头像
测试加
发布2022-04-27 15:37:53
4730
发布2022-04-27 15:37:53
举报
文章被收录于专栏:用户4624600的专栏

背景

之前公司搭建的测试环境,后端服务和前端页面都是通过nginx配置进行转发.在维护环境的过程中,经常会出现环境不通的问题,以往排查问题都是通过nginx的日志排查,但是有些麻烦,需要登录服务器查看,想着把nginx的日志可视化,便于查看和维护.

技术栈

nginx: Openresty版本

nginx-module-vts: 记录nginx数据

filebeate: 采集和推送数据

es: 存储数据

kibana: 前端展示

安装nginx

下载Openresty

需要下载Openresty版本的nginx

代码语言:javascript
复制
wget -c https://openresty.org/download/openresty-1.15.8.2.tar.gz

tar zxvf openresty-1.15.8.2.tar.gz

下载nginx-module-vts

nginx-module-vts模块用于采集数据

代码语言:javascript
复制
git clone git://github.com/vozlt/nginx-module-vts.git

下载openssl

代码语言:javascript
复制
wget -c https://github.com/openssl/openssl/archive/OpenSSL_1_0_2u.tar.gz

tar zxvf OpenSSL_1_0_2u.tar.gz

安装pcre包

代码语言:javascript
复制
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

编译前配置

这里的编译nginx的时候,加上--add-module扩展模块.

代码语言:javascript
复制
cd openresty-1.15.8.2.tar

./configure --prefix=/data/nginx_exporter/openresty-1.15.8.2 --with-luajit --with-pcre --with-http_iconv_module --with-http_realip_module --with-http_sub_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --add-module=/data/nginx_exporter/nginx-module-vts --with-openssl=/data/nginx_exporter/openssl-OpenSSL_1_0_2u

make install

启动nginx

代码语言:javascript
复制
/data/nginx_exporter/openresty-1.15.8.2/nginx/sbin

vts_status数据接口

代码语言:javascript
复制
http://192.168.1.232/vts_status

nginx配置

log_format采集需要的字段并且格式化输出

代码语言:javascript
复制
http {
    include       mime.types;
    default_type  application/octet-stream;


    log_format graylog2_json escape=json '{ "timestamp": "$time_iso8601", '
                     '"remote_addr": "$remote_addr", '
                     '"body_bytes_sent": $body_bytes_sent, '
                     '"request_time": $request_time, '
                     '"response_status": $status, '
                     '"request": "$request", '
                     '"request_method": "$request_method", '
                     '"host": "$host",'
                     '"upstream_cache_status": "$upstream_cache_status",'
                     '"upstream_addr": "$upstream_addr",'
                     '"http_x_forwarded_for": "$http_x_forwarded_for",'
                     '"http_referrer": "$http_referer", '
                     '"http_user_agent": "$http_user_agent" }';

    access_log  logs/access.log  graylog2_json;        

    vhost_traffic_status_zone;   



    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;


upstream backend {
  server 192.168.1.232:9999;
}

server {
     listen       8010;
     server_name  localhost;
     location  /backend {
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://backend/;
      }
}
}

nginx日志

启动nginx后,所有日志会以json的形式存到文件中

filebeat配置

这里比较重要的是链接es的地址需要是ip或者域名

代码语言:javascript
复制
filebeat.inputs:
- type: log

  enabled: true
  paths:
    - /data/nginx_exporter/openresty-1.15.8.2/nginx/logs/bckend_access_json.log
  json.keys_under_root: true
  json.add_error_key: true
  json.overwrite_keys: true

#setup.ilm.enabled: false
#
setup.template.enabled: true
setup.template.name: "filebeattest"
setup.template.pattern: "filebeattest-*"
setup.ilm.enabled: false

output.elasticsearch:
  hosts: ["192.168.1.232:9200"]
  index: "filebeat-testindex-%{+yyyy.MM.dd}"           #和hosts对其

执行命令

把数据推动到es中

代码语言:javascript
复制
./filebeat  -e -c filebeat_ng.yml -d "publish"

kibana配置

使用kibana作为前端展示,配置index和看板即可.

增加index

数据展示

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 技术栈
  • 安装nginx
  • 下载Openresty
  • 下载nginx-module-vts
  • 下载openssl
  • 安装pcre包
  • 编译前配置
  • 启动nginx
  • vts_status数据接口
  • nginx配置
  • nginx日志
  • filebeat配置
  • 执行命令
  • kibana配置
  • 增加index
  • 数据展示
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档