logstash分析nginx、dns日志

elk分析nginx、dns日志

部署环境


192.168.122.187


Logstash-1.5.1 elasticsearch-1.6.0 kibana-4.1.1


Centos6.4


192.168.122.1


Redis-2.8


Centos7.1


192.168.122.2


Nginx logstash-1.5.2 supervisor-2.1-9 java-1.7


Centos6.4


192.168.122.247


Bind9 logstash-1.5.2 supervisor-2.1-9 java-1.7


Centos6.2

安装过程就不复述了,参考http://kibana.logstash.es/content/logstash/get_start/install.html

安装时注意的几个地方

1、java最好是1.7

2、server上的logstash我直接用rpm装的就能用,但是agent端的就不好使,没有深究

3、elasticsearch、kibana还有agent端的logstash我都是用supervisor运行的

4、supervisor直接就是epel的yum装的

贴下配置

192.168.122.187上:

Logstash的配置

server端的logstash是rpm安装的

[[email protected] ~]# cat /etc/logstash/conf.d/central.conf
input {
  redis {
    host => "192.168.122.1"
    port => 6379
    type => "redis-input"
    data_type => "list"
    key => "logstash"
    codec => ‘json‘
  }
}
 
output {
  elasticsearch {
    host => "127.0.0.1"
  }
}

elasticsearch

/usr/local/elasticsearch-1.6.0/config/elasticsearch.yml保持默认

Kibana

/usr/local/kibana-4.1.1-linux-x64/config/kibana.yml 保持默认

192.168.122.1上

Redis的配置也没动。。。

192.168.122.2上

Nginx的

#nginx这里的区别就是log这块的配置,配成json格式
log_format json ‘{"@timestamp":"$time_iso8601",‘
                 ‘"host":"$server_addr",‘
                 ‘"clientip":"$remote_addr",‘
                 ‘"size":$body_bytes_sent,‘
                 ‘"responsetime":$request_time,‘
                 ‘"upstreamtime":"$upstream_response_time",‘
                 ‘"upstreamhost":"$upstream_addr",‘
                 ‘"http_host":"$host",‘
                 ‘"url":"$uri",‘
                 ‘"xff":"$http_x_forwarded_for",‘
                 ‘"referer":"$http_referer",‘
                 ‘"agent":"$http_user_agent",‘
                 ‘"status":"$status"}‘;
-----------------------------
access_log  /var/log/nginx/zabbix_access.log json;

logstash的

[[email protected] ~]# cat /usr/local/logstash-1.5.2/conf/shipper.conf
input {
  file {
    type => "test-nginx"
    path => ["/var/log/nginx/zabbix_access.log"]
    codec => "json"
  }
}
 
output {
  stdout {}
  redis {
    host => "192.168.122.1"
    port => 6379
    data_type => "list"
    key => "logstash"
  }
}

Supervisor的

[[email protected] ~]# cat /etc/supervisord.conf |grep -v \;
[supervisord]
[program:logstash]
command=/usr/local/logstash-1.5.2/bin/logstash agent --verbose --config /usr/local/logstash-1.5.2/conf/shipper.conf --log /usr/local/logstash-1.5.2/logs/stdout.log
process_name=%(program_name)s
numprocs=1
autostart=true
autorestart=true
startretries=5
exitcodes=0
stopsignal=KILL
stopwaitsecs=5
redirect_stderr=true
[supervisorctl]

192.168.122.247上

Bind的配置用默认的即可

Logstash的

[[email protected] ~]# cat /usr/local/logstash/conf/shipper.conf
input {
  file {
    type => "dnslog"
    path => ["/home/dnslog/*.log"]
  }
}
filter {
#由于dns日志没办法定义成json,我又不会grok,所以这里用mutate来切割
  mutate {
    gsub => ["message","#"," "]
    split => ["message"," "]
  }
  mutate {
    add_field => {
      "client" => "%{[message][5]}"
      "domain_name" => "%{[message][10]}"
      "server" => "%{[message][14]}"
    }
  }
}
output {
  stdout {}
  redis {
    host => "192.168.122.1"
    port => 6379
    data_type => "list"
    key => "logstash"
  }
}

Supervisor的

[[email protected] ~]# cat /etc/supervisord.conf |grep -v \;|grep -v ^$
[supervisord]
[supervisorctl]
[program:logstash]
command=/usr/local/logstash/bin/logstash agent --verbose --config /usr/local/logstash/conf/shipper.conf --log /usr/local/logstash/logs/stdout.log
process_name=%(program_name)s
numprocs=1
autostart=true
autorestart=true
startretries=5
exitcodes=0
stopsignal=KILL
stopwaitsecs=5
redirect_stderr=true

配置kibana

Nginx

1、在discover搜索nginx相关的日志,之后保存

2、在visualize部署单个的图表,之后保存

3、在dashboard将几个nginx的visualize的图表连起来

Dns

1、在discover搜索dns相关的日志,之后保存

2、在visualize部署单个的图表,之后保存

3、在dashboard将几个dns的visualize的图表连起来

遇到的问题

自定义的field在discover上能看到,但是在制作visualize时看不到

这种情况是由于没有刷新索引的field导致的,默认的索引用的是logstash-*,在“Settings”—Indices中看到,点击logstash-*进去之后,点击刷新按钮

时间: 2024-08-24 04:46:23

logstash分析nginx、dns日志的相关文章

logstash grok 分析 nginx access 日志

为了便于量化分析nginx access日志,使用logstash 进行筛选匹配 1.确定nginx 日志格式     log_format access '$remote_addr - $remote_user [$time_local] '               '$http_host $request_method $uri '               '$status $body_bytes_sent '               '$upstream_status $ups

分析nginx大日志文件,python多线程必备! .

还在为分析nginx大日志犯愁吗?也许你会想到用shell处理,1G文件没有问题,上了10G文件,会消耗很久时间,用shell结合python多线程处理没有错. 什么都不用说了,直接上代码了 #!/usr/bin/python #coding:utf8 import threading     #载入多线程模块 import time          #载入时间模块 import os            #载入os模块 import shutil        #载入shutil模块 im

采集并分析Nginx访问日志

日志服务支持通过数据接入向导配置采集Nginx日志,并自动创建索引和Nginx日志仪表盘,帮助您快速采集并分析Nginx日志. 许多个人站长选取了Nginx作为服务器搭建网站,在对网站访问情况进行分析时,需要对Nginx访问日志统计分析,从中获取网站的访问量.访问时段等访问情况.传统模式下利用CNZZ等方式,在前端页面插入js,用户访问的时候触发js,但仅能记录访问请求.或者利用流计算.离线统计分析Nginx访问日志,但需要搭建一套环境,并且在实时性以及分析灵活性上难以平衡. 日志服务在支持查询

命令分析nginx访问日志的用法

awk分析日志常用高级使用命令方法 分析访问日志(Nginx为例) 日志格式: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"' 统计访问IP次数: # awk '{a[$1]++}END{for(i

用GoAccess分析Nginx的日志

GoAccess是什么? GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据和繁杂的指令以及一大堆管道/正则表达式. GoAccess功能一览 生成统计数据,带宽统计等 每个请求的时间统计 最高访问ip 请求的文件统计 请求的静态文件.图片.flash.js文件等 各HTTP状态码统计 Hosts,反向DNS,IP所在地 操作系统 浏览器/蜘蛛 引用的网站 引用的URLs 关键词组 地理位置 (大陆

在Linux中使用GoAccess分析Nginx的日志

一 GoAccess简介 GoAccess是一款日志分析工具,可以用来分析Apache,IIS,Nginx的日志,或者一些其他web服务的日志.其特点是安装简单,使用方便,分析速度快 二 GoAccess的安装 (1)下载: [[email protected] src]# wget http://sourceforge.net/projects/goaccess/files/0.7.1/goaccess-0.7.1.tar.gz (2)安装依赖的库文件: [[email protected] 

logstash 过虑nginx访问日志

标题是不是可以翻译成这样:logstash Filters nginx access log 好了,进入正题,日志管理服务器我用ElasticSearch+LogStash+Kibana+Redis 先说下我的架构: 远程NGINX采集日志数据到REDIS+logstash+elasticsearch+kibana服务器 至于怎么部署,因本人之前用baidu博客写在那上面了,以后有时间把百度的搬过来 好了,这里就先不说部署了,我们直接进入配置正题 在nginx服务器,我们一.先配置nginx的日

使用hive分析nginx访问日志方法

以下案例是使用hive分析nginx的访问日志案例,其中字段分隔通过正则表达式匹配,具体步骤如下: 日志格式: 192.168.5.139 - - [08/Jun/2017:17:09:12 +0800] "GET //oportal/static/ui/layer/skin/default/icon.png HTTP/1.1" 200 9905 http://192.168.100.126//oportal/static/ui/layer/skin/layer.css "M

AWStats分析Nginx访问日志

AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具. 它可以统计您站点的如下信息: 访问量(UV),访问次数,页面浏览量(PV),点击数,数据流量等 精确到每月.每日.每小时的数据 访问者国家 访问者IP Robots/Spiders的统计 访客持续时间 对不同Files type的统计信息 Pages-URL的统计 访客操作系统浏览器等信息 其它信息(搜索关键字等等) 下面是AWStats分析Nginx日志的操作步骤: 一.配置nginx日志格式 修改ng