提前安装好elk(elasticsearch、logstach、kibana)

一 启动logstash

$LOGSTASH_HOME默认位于/usr/share/logstash或/opt/logstash

1 nginx日志使用默认格式

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

2 下载geo库

# cd /etc/logstash
# wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
# tar xvf GeoLite2-City.tar.gz

3 增加logstash配置

# cat /etc/logstash/conf.d/nginx_access.conf

input {

file {

path => [ "/path/to/nginx/access.log" ]

start_position => "beginning"

ignore_older => 0

}

}

filter {

grok {

match => { "message" => "%{IPORHOST:client_ip} (%{USER:ident}|-) (%{USER:auth}|-) \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} (%{NOTSPACE:request}|-)(?: HTTP/%{NUMBER:http_version})?|-)\" (%{NUMBER:response}|-) (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent}" }

}

geoip {

source => "client_ip"

target => "geoip"

database => "/etc/logstash/GeoLite2-City_20190122/GeoLite2-City.mmdb"

add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]

add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]

}

mutate {

convert => [ "[geoip][coordinates]", "float" ]

convert => [ "response","integer" ]

convert => [ "bytes","integer" ]

replace => { "type" => "nginx_access" }

remove_field => "message"

}

date {

match => [ "timestamp","dd/MMM/yyyy:HH:mm:ss Z"]

}

mutate {

remove_field => "timestamp"

}

}

output {

elasticsearch {

hosts => ["$es_server:9200"]

index => "logstash-nginx-access-%{+YYYY.MM.dd}"

}

stdout {codec => rubydebug}

}

修改其中的nginx日志路径以及es的host;

如果你修改过nginx log format,还需要修改grok格式,grok格式可以在这里调试:http://grokdebug.herokuapp.com/

如果格式有误,会报 _grokparsefailure

4 测试配置是否正常

$LOGSTASH_HOME/bin/logstash -t -f /etc/logstash/conf.d/nginx_access.conf

正常应该会打印Configuration OK

5 启动logstash

$LOGSTASH_HOME/bin/logstash -f /etc/logstash/conf.d/nginx_access.conf

二 查看elasticsearch

# curl http://$es_server:9200/_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open logstash-nginx-access-2019.01.26 -szaQCE3THyq-fXbU18riQ 5 1 7875 0 862.7kb 465.2kb

此时es中应该有了索引

三 配置kibana

浏览器打开:http://$kibana_server:5000

配置索引pattern为:logstash-nginx-access-*
配置Time-field为:@timestamp

然后可以配置各种visualization和dashboard

【原创】大叔经验分享(28)ELK分析nginx日志的更多相关文章

  1. 使用Docker快速部署ELK分析Nginx日志实践(二)

    Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...

  2. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  3. 利用ELK分析Nginx日志生产实战(高清多图)

    本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...

  4. 利用ELK分析Nginx日志

    本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...

  5. 【原创】大叔经验分享(74)nginx对静态文件加速

    通过location配置 location ~ \.html$ { add_header 'Cache-Control' 'no-cache'; } location ~ \.(js|css|gif| ...

  6. ELK学习笔记之ELK分析nginx日志

    0x00 配置FIlebeat搜集syslog #安装 rpm -ivh filebeat-6.2.3-x86_64.rpm mv /etc/filebeat/filebeat.yml /etc/fi ...

  7. elk实战分析nginx日志文档

    elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...

  8. elk平台分析nginx日志的基本搭建

    一.elk套件介绍 ELK 由 ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.官方网站: https://www.elastic.co/products El ...

  9. 【原创】经验分享:一个小小emoji尽然牵扯出来这么多东西?

    前言 之前也分享过很多工作中踩坑的经验: 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移? [原创]经验分享:一个Content-Length引发的血案(almost.. ...

随机推荐

  1. .Net Core应用框架Util介绍(五)

    上篇简要介绍了Util在Angular Ts方面的封装情况,本文介绍Angular封装的另一个部分,即Html的封装. 标准组件与业务组件 对于管理后台这样的表单系统,你通常会使用Angular Ma ...

  2. Jquery密码强度校验

    function passValidate(){ var password=$password.val().trim() if(password===""){ $mima.addC ...

  3. iOS WebView 加载本地资源(图片,文件等)

    https://www.cnblogs.com/dhui69/p/5596917.html iOS WebView 加载本地资源(图片,文件等) NSString *path = [[NSBundle ...

  4. vue入门之编译项目

    好记性不如烂笔头,最近又开始学习vue了,编译的过程中遇到几个小坑,特此一记.     首先说一下vue项目如何编译,其实很简单,cd到项目文件夹,然后执行命令: npm run bulid 不过np ...

  5. OpenStack-Storage(6)

    一. DAS/NAS/SAN 1.存储分类 (1)内置存储 (2)外挂存储 DAS (DirectAttached Storage):直连式存储 FAS (FabricAttached Storage ...

  6. python发送smtp 邮件 图片

    #-*- coding: utf-8 -*- # python2 import os import time import random import smtplib from time import ...

  7. 【设计模式】【应用】使用模板方法设计模式、策略模式 处理DAO中的增删改查

    原文:使用模板方法设计模式.策略模式 处理DAO中的增删改查 关于模板模式和策略模式参考前面的文章. 分析 在dao中,我们经常要做增删改查操作,如果每个对每个业务对象的操作都写一遍,代码量非常庞大. ...

  8. A.02.01—功能定义—一般定义

    二章将属于较轻松的内容,整个过程也会主要以文字描述为主. 最常见的功能定义为按使用操作来定义,如下面的例子是最普通的: 1)用户将雨刮开关打至高速档,雨刮以高速速率刮刷 2)在电源档位为OFF时,用户 ...

  9. Python爬虫之二

    1)什么叫做URL url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及 ...

  10. LVM备份(2)-创建LVM逻辑卷

    懵逼了几天,对LVM快照备份总算有了个比较清晰的认识 总的来说,就是这样: 1.普通分区备份比较困难,需要转化成LVM逻辑卷进行管理 2.在新创建的LVM逻辑卷上进行业务操作,比如建数据库 3.某个时 ...