Graylog分析Nginx日志并通过GeoIP2获取访问者IP的地理位置信息

简介:

  • Graylog相对于ELK是较为轻量级的日志管理平台
  • Graylog官网:https://www.graylog.org/
    • Graylog-server:Graylog接收来自后端各种应用程序的日志并提供Web访问接口
    • Graylog Collector Sidecar:负责收集应用程序日志并发送至Graylog-server
      • Elasticsearch:用于索引和保存接收到的日志
      • MongoDB: 负责保存 Graylog 自身的配置信息
      • 通过Graylog来分析Ngnix日志,获取访问者IP,然后使用GeoIP2数据库分析IP的地理位置
    • 访问者IP的地理位置信息是以GeoIP免费版GeoLiteCity数据做为筛选条件,分析访问来源城市,对于我们购买CDN时,具有一定的参考意义

系统环境:

  • 本文不做环境搭建方面的介绍,直接使用docker搭建Graylog环境。

    • CentOS 7.5
    • Graylog-server(服务端,接收日志) IP:192.168.1.2
    • Graylog Collector Sidecar(后端,收集日志) IP:192.168.1.3
    • docker-ce 18.03、docker-compose 1.21.2

一、Graylog搭建


#环境方面直接使用docker搭建,若已有graylog请跳过

git clone https://github.com/JyBigBoss/graylog-nginx.git
cd graylog-nginx
vi docker-compose.yml

#请自行修改docker-compose.yml里面的IP为当前主机IP。
#克隆下来的文件其实就是官方提供的docker安装文档中的。
#这里是因为我需要GeoLiteCity的数据库,所以编写了Dockerfile把数据库放进去了
#官方Docker安装文档:http://docs.graylog.org/en/stable/pages/installation/docker.html

docker-compose up -d

#启动容器


二、配置Graylog接收Nginx日志


#打开graylog的web界面,配置input来源以及Collector配置
#浏览器访问:http://192.168.1.2:9000
#默认账号和密码都为:admin
#首先要配置input来源,也就是收集日志来源







#日志来源配置完成之后开始配置收集日志的collector
#后端的collectors启动的时候会通过graylog的api来匹配自身的tags
#匹配tags之后会生成对应的filebeat的配置文件并开始收集日志










三、配置后端collector收集日志


yum install -y https://github.com/Graylog2/collector-sidecar/releases/download/0.1.6/collector-sidecar-0.1.6-1.x86_64.rpm

#下载collector安装包安装

vi /etc/graylog/collector-sidecar/collector_sidecar.yml

#修改配置文件,需要注意tags和api的路径

graylog-collector-sidecar install

#前台启动collector

head -10 access.log  >>  /var/log/nginx/access.log
#由于我这里没有实际的访问日志,所以就只能用生产环境的日志,cat进去,模拟用户访问生成访问日志


四、利用GeoLiteCity生成IP地理位置信息


#自行下载GeoLiteCity的数据文件,注意是GeoLite2 City,MaxMind DB 二进制格式的数据库
#第一步的时候我已经通过Dockerfile把数据文件放进去了
#下载地址:https://dev.maxmind.com/zh-hans/geoip/geoip2/geolite2/

#首先要配置graylog,让它能够分析出访问者的IP
#然后再通过graylog的插件来生成地图
#这里使用的正则是Grok的:%{COMMONAPACHELOG}
#配置完成后,graylog就会通过GeoLiteCity数据库分析出地理位置信息了
#注意:内网的IP是没有在GeoLiteCity数据库中的

#我建议是去生产环境拷贝一份access日志下来测试
#直接把生产环境的日志cat追加到collector收集的日志文件就好了
















原文地址:http://blog.51cto.com/bigboss/2135163

时间: 2024-10-12 23:33:13

Graylog分析Nginx日志并通过GeoIP2获取访问者IP的地理位置信息的相关文章

python分析nginx日志的ip,url,status

Python 脚本如下: #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'lvnian' #!/usr/bin env python # coding: utf-8 import MySQLdb as mysql import sys, os db = mysql.connect(user="root",passwd="[email protected]",db="intest",

shell脚本分析nginx日志

第一版,比较粗糙,仅限于能用 正在写入的文件不能用tar进行压缩 --------压缩日志---------------------- 94 access.log 95 tar: access.log: file changed as we read it 96 #### 压缩日志失败 #### #!/bin/sh #分析nginx日志 DATE=`date '+%Y%m%d-%H%M'` ARCHIVE=/usr/log_bak/nginx_$DATE.tar.gz MESSAGE=/usr/

awstats分析nginx日志文件

awstats分析nginx日志文件,将生成的结果(为txt文件)保存在/var/www/awstats目录下,通过apche来 显示生成的结果. nginx的域名为:www.a.com:80 LogFile="/usr/local/mybin/nginx/logs/access.log"  #nginx的日志文件路径 DirData="/var/www/awstats/" #awstats生成结果的保存路径 SiteDomain="www.a.com&q

烂泥:利用awstats分析nginx日志

昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割nginx日志>这篇文章. 今天打算分析下nginx日志,要分析nginx日志,我们可以通过shell脚本和第三方软件awstats进行分析,在此我们选择的是通过第三方软件awstats进行分析. 要使用awstats分析nginx日志,我们要安装awstats,而在安装awstats之前,我们需要先来介绍下awstats是什么? 一.awstats是什么 awstats是一个免费非常简洁而且强大有个性的基于Pe

python分析nginx日志

问题:分析nginx日志并找出访问最多10个IP地址的来源以及次数 使用python模块IP 使用方法以及下载地址:https://pypi.python.org/pypi/17MonIP 相关python脚本: #!/usr/bin/env python #coding:utf8 #Auth: lad #date:2016-12-05 #desc:parser the nginx's log,the head of 10  import sys reload(sys) sys.setdefau

python 正则分析nginx日志

有个需求要分析nginx日志,也懒得去研究logstach之类的开源工具,干脆直接写一个脚本,自己根据需求来实现: 先看日志格式:我们跟别人的不太一样,所以没办法了: 12.195.166.35 [10/May/2015:14:38:09 +0800] "list.xxxx.com" "GET /new/10:00/9.html?cat=0,0&sort=price_asc HTTP/1.0" 200 42164 "http://list.zhon

awk分析nginx日志中响应时间的方法

针对响应时间慢的问题,我们在nginx日志格式中增加响应时间,现在需要针对响应时间进行分析,查找出相对较慢的响应时间. 1.确认下日志文件格式 日志格式: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_for

ELK分析nginx日志

开源实时日志分析 ELK 平台能够完美的解决我们上述的问题, ELK 由 ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.官方网站: https://www.elastic.co/products l   Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等. l   Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,

awk分析nginx日志里面的接口响应时间

最近,有客户反应客户端卡,老板集合技术人员开会讨论,找出慢的原因,由此产生了分析nginx响应时间,由于线上环境nginx日志格式带上了引号,处理起来有点麻烦,以下是处理过程 一.nginx日志格式 log_format main '$remote_addr – $remote_user [$time_iso8601] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user