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

Logstash收集Nginx访问日志

作者头像
星哥玩云
发布2022-07-14 09:06:08
5120
发布2022-07-14 09:06:08
举报
文章被收录于专栏:开源部署开源部署

Logstash收集Nginx访问日志

安装nginx

#直接yum安装: [root@elk-node1 ~]# yum install nginx  -y 官方文档:http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format #修改配置文件的日志格式: vim /etc/nginx/nginx.conf  #在http模块中添加           log_format json '{"@timestamp":"$time_iso8601",'                           '"@version":"1",'                           '"client":"$remote_addr",'                           '"url":"$uri",'                           '"status":"$status",'                           '"domain":"$host",'                           '"host":"$server_addr",'                           '"size":$body_bytes_sent,'                           '"responsetime":$request_time,'                           '"referer": "$http_referer",'                           '"ua": "$http_user_agent"'               '}'; #在server模块中添加 access_log  /var/log/nginx/access_json.log  json; #修改后的nginx.conf文件 [root@elk-node1 ~]# grep -Ev "#|^&" /etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events {     worker_connections 1024; } http {     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';           log_format json '{"@timestamp":"$time_iso8601",'                           '"@version":"1",'                           '"client":"$remote_addr",'                           '"url":"$uri",'                           '"status":"$status",'                           '"domain":"$host",'                           '"host":"$server_addr",'                           '"size":$body_bytes_sent,'                           '"responsetime":$request_time,'                           '"referer": "$http_referer",'                           '"ua": "$http_user_agent"'               '}';     sendfile            on;     tcp_nopush          on;     tcp_nodelay        on;     keepalive_timeout  65;     types_hash_max_size 2048;     include            /etc/nginx/mime.types;     default_type        application/octet-stream;     include /etc/nginx/conf.d/*.conf;     server {         listen      80 default_server;         listen      [::]:80 default_server;         server_name  _;         root        /usr/share/nginx/html;         include /etc/nginx/default.d/*.conf;     access_log  /var/log/nginx/access_json.log  json;         location / {         }         error_page 404 /404.html;             location = /40x.html {         }         error_page 500 502 503 504 /50x.html;             location = /50x.html {         }     } } #启动: [root@controller ~]# systemctl start nginx root@elk-node1 ~]# ss -lntp|grep 80 LISTEN    0      511          *:80                      *:*                  users:(("nginx",pid=8045,fd=6),("nginx",pid=8044,fd=6),("nginx",pid=8043,fd=6)) LISTEN    0      511        :::80                      :::*                  users:(("nginx",pid=8045,fd=7),("nginx",pid=8044,fd=7),("nginx",pid=8043,fd=7))

浏览器访问:http://192.168.247.135/

查看nginx日志

编写logstash

#添加nginx日志格式到之前logstash的elk-log.yml [root@elk-node1 ~]# cat /etc/logstash/conf.d/elk_log.conf input {     file {       path => "/var/log/messages"       type => "system"       start_position => "beginning"     }     file {       path => "/var/log/elasticsearch/hejianlai.log"       type => "es-error"       start_position => "beginning"       codec => multiline {           pattern => "^\["           negate => true           what => "previous"         }     }       file {       path => "/var/log/nginx/access_json.log"       codec => json       start_position => "beginning"       type => "nginx-log"     } } output {     if [type] == "system"{         elasticsearch {           hosts => ["192.168.247.135:9200"]           index => "systemlog-%{+YYYY.MM.dd}"         }     }     if [type] == "es-error"{         elasticsearch {           hosts => ["192.168.247.135:9200"]           index => "es-error-%{+YYYY.MM.dd}"         }     }       if [type] == "nginx-log"{         elasticsearch {           hosts => ["192.168.247.135:9200"]           index => "nginx-log-%{+YYYY.MM.dd}"         }     } }

 #添加--configtest参数检查配置语法是否有误!!! [root@elk-node1 ~]# /opt/logstash/bin/logstash -f /etc/logstash/conf.d/elk_log.conf --configtest Configuration OK #把之前后台运行的进程kill掉重启: [root@elk-node1 ~]# ps aux|grep elk root      3248  0.8  6.0 3632960 234924 pts/2  Sl  11:25  1:10 /usr/local/java/jdk1.8.0_171/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Xmx1g -Xss2048k -Djffi.boot.library.path=/opt/logstash/vendor/jruby/lib/jni -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/logstash/heapdump.hprof -Xbootclasspath/a:/opt/logstash/vendor/jruby/lib/jruby.jar -classpath ::/usr/local/java/jdk1.8.0_171/lib:/usr/local/java/jdk1.8.0_171/jre/lib -Djruby.home=/opt/logstash/vendor/jruby -Djruby.lib=/opt/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main --1.9 /opt/logstash/lib/bootstrap/environment.rb logstash/runner.rb agent -f /etc/logstash/conf.d/elk_log.conf root      8135  0.0  0.0 112704  976 pts/0    S+  13:38  0:00 grep --color=auto elk [root@elk-node1 ~]# kill -9 3248 You have new mail in /var/spool/mail/root [root@elk-node1 ~]# /opt/logstash/bin/logstash -f /etc/logstash/conf.d/elk_log.conf & [1] 8178

kibana添加nginx日志

首先在es插件中我们能看到nginx-log的索引

 设置kibana

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

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

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

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

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