ELK使用filter收集nginx日志-07

修改nginx日志格式

 log_format  hanye   ‘$proxy_add_x_forwarded_for $remote_user [$time_local] "$request" $http_host‘
    ‘[$body_bytes_sent] $request_body "$http_referer" "$http_user_agent" [$ssl_protocol] [$ssl_cipher]‘
    ‘[$request_time] [$status] [$upstream_status] [$upstream_response_time] [$upstream_addr]‘;
    server {
listen 80;
server_name _;
access_log /data/wwwlogs/access_nginx.log hanye;
    }

生成nginx访问日志

[email protected]:~# ab -c 20 -n 20 http://192.168.1.252/

收集nginx日志

[[email protected] wwwlogs]#cat /data/elk-services/logstash/patterns.d/nginx
   NGUSERNAME [a-zA-Z\.\@\-\+_%]+
   NGUSER %{NGUSERNAME}
   NGINXACCESS %{IP:clent_ip} (?:-|%{USER:ident}) \[%{HTTPDATE:log_date}\] \"%{WORD:http_verb} (?:%{PATH:baseurl}\?%{NOTSPACE:params}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" (%{IPORHOST:url_domain}|%{URIHOST:ur_domain}|-)\[(%{BASE16FLOAT:request_time}|-)\] %{NOTSPACE:request_body} %{QS:referrer_rul} %{GREEDYDATA:User_Agent} \[%{GREEDYDATA:ssl_protocol}\] \[(?:%{GREEDYDATA:ssl_cipher}|-)\]\[%{NUMBER:time_duration}\] \[%{NUMBER:http_status_code}\] \[(%{BASE10NUM:upstream_status}|-)\] \[(%{NUMBER:upstream_response_time}|-)\] \[(%{URIHOST:upstream_addr}|-)\]
[[email protected] wwwlogs]# cat /data/elk-services/logstash/config/nginx_geoip.yml
     input {
        file {
          path => "/data/wwwlogs/access_nginx.log"
          type => "252nginx-access"
          start_position => "beginning"
        }
     }
     filter {
        if [type] == "252nginx-access" {
         grok {
             patterns_dir => [ "/data/elk-services/logstash/patterns.d" ]
             match => { "message" => "%{NGINXACCESS}" }
             overwrite => [ "message" ]
             }
         geoip {
             source => "clent_ip"
             target => "geoip"
             database => "/data/soft/GeoLite2-City_20190409/GeoLite2-City.mmdb"
              }
         useragent {
             source => "User_Agent"
             target => "userAgent"
             }
         urldecode {
             all_fields => true
             }
          mutate {
                 gsub => ["User_Agent","[\"]",""]        #将user_agent中的 " 换成空
                 convert => [ "response","integer" ]
                 convert => [ "body_bytes_sent","integer" ]
                 convert => [ "bytes_sent","integer" ]
                 convert => [ "upstream_response_time","float" ]
                 convert => [ "upstream_status","integer" ]
                 convert => [ "request_time","float" ]
                 convert => [ "port","integer" ]
            }
         date {
         match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
             }
             }
         }
     output {
         if [type] == "252nginx-access" {
         elasticsearch {
             hosts => ["192.168.1.252:9200"]
             index => "logstash-nginx-access-252-%{+YYYY.MM.dd}"
         }
         }
     }

安装geoip插件

   [[email protected] elasticsearch]#./bin/elasticsearch-plugin install ingest-geoip
   [[email protected] elasticsearch]# ./bin/elasticsearch-plugin install ingest-user-agent

启动检查logstash和生成nginx日志

[[email protected] config]# ../bin/logstash -f nginx_geoip.yml
  [[email protected] config]# ab -c 20 -n 20 http://192.168.1.252/

elasticsearch-head 检查日志生成

kibana查看

创建索引


####查看索引数据

原文地址:https://blog.51cto.com/9025736/2377352

时间: 2024-10-08 22:41:42

ELK使用filter收集nginx日志-07的相关文章

centos6.5下安装配置ELK及收集nginx日志

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索) kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总.分析和搜索重要数据日志. 环境:192.168.50.119

ELK 二进制安装并收集nginx日志

对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java).Logstash(jruby).Kibana技术栈的结合, ELK5.X搭建并收集Nginx日志 ELK ELK5.X搭建并收集Nginx日志一.基础环境配置及软件包下载 二.安装Elasticsearch

ELK整合Filebeat监控nginx日志

ELK 日志分析 1. 为什么用到 ELK 一般我们需要进行日志分析场景:直接在日志文件中 grep. awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎么办.如何多维度查询.需要集中化的日志管理,所有服务器上的日志收集汇总.常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问. 一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位

elk系统搭建并收集nginx日志-主要步骤

一)简介 elk系统是一套目前较为流行的日志收集分析系统,主要由elasticserch,logstash,kibana三部分组成,其中elasticsearch负责数据的存储,logstash负责日志的收集过滤,kibana负责日志的可视化部分.整个工作流程为logstash收集日志,过滤后输出并保存到elasticsearch中,最后用户通过kibana从elasticsearch中读取数据并处理.本文中日志收集引入filebeat收集日志,logstash监听在5000端口并接受fileb

ELK日志服务器的快速搭建并收集nginx日志

今天给大家带来的是开源实时日志分析 ELK , ELK 由 ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.官方网站:https://www.elastic.co 其中的3个软件是: Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索

ELK集群部署及收集nginx日志

一.ELK说明 二.架构图 三.规划说明 四.安装部署nginx+logstash 五.安装部署redis 六.安装部署logstash server 七.安装部署elasticsearch集群 八.安装kibana 一.ELK说明 ELK Stack 是 Elasticsearch.Logstash.Kibana 三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称. ELK Stack 在最近两年迅速崛起,成为机器数据

ELK实践(二):收集Nginx日志

Nginx访问日志 这里补充下Nginx访问日志使用的说明.一般在nginx.conf主配置文件里需要定义一种格式: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for&qu

ELK收集nginx日志并用高德地图展示出IP

(一)测试的环境 agentd:192.168.180.22 ES:192.168.180.23 kibana:192.168.180.23 采用的拓扑:logstash -->ES-->kibana (二)实施步骤: (1)logstsh具体配置: 1,配置nginx日志格式,采用log_format格式: log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '          

ELK安装配置及nginx日志分析

一.ELK简介1.组成ELK是Elasticsearch.Logstash.Kibana三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合使用,而且又都先后归于 Elastic.co 公司名下,故有此简称.Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等.Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用.kibana 是一个开源和