nginx部分配置直接用json,省去很多麻烦

   log_format json '{"@timestamp":"$time_iso8601",'
'"server_addr":"$server_addr",'
'"remote_addr":"$remote_addr",'
'"http_x_forwarded_for":"$http_x_forwarded_for",'
'"body_bytes_sent":$body_bytes_sent,'
'"request_uri":"$request_uri",'
'"request_method":"$request_method",'
'"server_protocol":"$server_protocol",'
'"scheme":"$scheme",'
'"request_time":$request_time,'
'"upstream_response_time":"$upstream_response_time",'
'"upstream_addr":"$upstream_addr",'
'"host":"$host",'
'"uri":"$uri",'
'"http_referer":"$http_referer",'
'"http_user_agent":"$http_user_agent",'
'"status":$status}';

filebeat前台启动命令 filebeat -e -c filebeat.yml -d "publish"

filebeat配置部分:

filebeat.inputs:
- type: log
enabled: true paths:
- /data/wwwlogs/www.myzabbix.com_access.log filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false setup.template.settings:
index.number_of_shards: 1 output.logstash:
hosts: ["192.168.80.11:5041"] processors:
- add_host_metadata: ~
- add_cloud_metadata: ~

logstash前台启动命令 /usr/share/logstash/bin/logstash -f 文件名

logstash配置部分:

input {
beats {
port => 5041 #配置文件输入的端口号。
#codec => json
}
}
filter {
#if [type] == "log" {
mutate {
gsub => ["message", "\\x", "\\\x"]
} json {
source => "message"
} mutate {
remove_field => [ "message" ]
}
mutate {
remove_field => [ "ecs" ]
}
mutate {
remove_field => [ "agent" ]
}
mutate {
remove_field => [ "@version" ]
} if "HEAD" in [request_method] {
drop {}
} useragent {
source => "http_user_agent"
target => "ua"
} if "-" in [upstream_response_time] {
mutate {
replace => {
"upstream_response_time" => "0"
}
}
} mutate {
convert => ["upstream_response_time","float"]
}
mutate {
convert => ["status", "integer"]
} geoip {
source => "remote_addr"
database => "/etc/logstash/GeoLite2-City.mmdb"
target => "geoip"
}
#}
} output {
#if [status] > 300 {
# exec {
# command => "/usr/bin/echo '网页url是%{request_uri}'"
# }
#}else{
# exec {
# command => "/usr/bin/echo '网页状态码是%{status}'"
# }
#}
#stdout {
# codec => rubydebug
#} elasticsearch{ hosts => ["http://192.168.80.11:9200"] index => "zabbixlog-%{+YYYY.MM.dd}" #document_type => "sparkfileType" } }

注释部分可以打开调试,codec => rubydebug代表输出到界面,还可以输出到file,if else注释部分可以判断页面 url状态码,如果有问题调用外部命令发送报警通知。也可以一段时间内达到N次错误发送报警通知,具体根据业务来调试。

logstash获取nginx日志的配置的更多相关文章

  1. Logstash收集nginx日志之使用grok过滤插件解析日志

    grok作为一个logstash的过滤插件,支持根据模式解析文本日志行,拆成字段. nginx日志的配置: log_format main '$remote_addr - $remote_user [ ...

  2. Nginx 日志格式配置介绍

    Nginx日志格式配置介绍   by:授客  QQ:1033553122   测试环境 CentOS 6.5-x86_64 nginx-1.10.0 配置例子 log_format  main  '$ ...

  3. nginx日志 logrotate配置

    nginx 日志 logrotate配置如下: /var/log/nginx/*.log { daily missingok rotate 20 compress delaycompress noti ...

  4. Nginx日志文件配置与切割

    Nginx日志的指令主要有两条: log_format,设置日志的格式 access_log,指定日志文件的存放路径.格式和缓存大小 两条指令在Nginx配置文件中的位置可以在http{……..}之间 ...

  5. Kafka、Logstash、Nginx日志收集入门

    Nginx作为网站的第一入口,其日志记录了除用户相关的信息之外,还记录了整个网站系统的性能,对其进行性能排查是优化网站性能的一大关键. Logstash是一个接收,处理,转发日志的工具.支持系统日志, ...

  6. nginx日志格式配置

    我一向对日志这个东西有些许恐惧,因为在分析日志是需要记住不同服务器日志的格式,就拿提取ip这一项来说,有的服务器日志是在第一列,有的是第二列或则第三列等等.知道今天我才发现,日志格式是可以自定义配置的 ...

  7. logstash收集Nginx日志,转换为JSON格式

    Nginx日志处理为JSON格式,并放置在http区块: log_format json '{"@timestamp":"$time_iso8601",' '& ...

  8. nginx日志分割配置实例

    Nginx没有类似Apache的cronolog日志分割处理的功能,但是,可以通过nginxNginx的信号控制功能利用脚本来实现日志的自动切割.请看下面的一个实例.Nginx对日志进行处理的脚本: ...

  9. logstash收集nginx日志

    (1)安装nginx 1.安装nginx yum install epel-release -y yum install nginx -y 2.修改日志文件格式为json #vim /etc/ngin ...

随机推荐

  1. SSRF漏洞用到的其他协议(dict协议,file协议)

    0x00 引言 当SSRF打内网reids时,若gopher协议用不了,我们也可以用其他协议 0x01 dict协议一.定义:词典网络协议,在RFC 2009中进行描述.它的目标是超越Webster ...

  2. 一文看懂B端产品和C端产品

    大纲 什么是B端产品 什么是C端产品 为什么会产生B端产品和C端产品 怎么判断一个产品是B端还是C端 B端产品和C端产品存在哪些差异 C端产品经理如何向B端产品经理转型 写在最后   什么是B, Bu ...

  3. 【JavaWeb】CVE-2016-4437 Shiro反序列化漏洞分析及代码审计

    Shiro反序列化漏洞分析及代码审计 漏洞简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.   Apache Shiro默认使用了CookieRe ...

  4. [Raspberry Pi] 入门使用

    今天开始介绍Raspberry Pi(简称RPi,下同)入门的一些基础知识. 第1部分: 安装RPi 1.1  从 http://www.raspberrypi.org/downloads 下载RPi ...

  5. python操作MySQL--实例

    有一段时间,没更新,但这都不是自己懒惰的借口,希望自己能坚持下去: python可以操作MySQL 数据库,需要安装的是MySQL-python,并且实现读入excel表及生成excel 表,则需要x ...

  6. 003Linux查看文件内容的5个命令姿势

    01 开篇 Linux 中查看文件内容常用的有如下 5 个命令: cat: more: less: tail: head. 02依次看看这些命令的使用姿势 cat 一次性将所有内容输出到屏幕上,方便查 ...

  7. 源码安装gitlab

    GitLab服务构成 GitLab由以下服务构成:   nginx:静态Web服务器 gitlab-shell:用于处理Git命令和修改authorized keys列表 gitlab-workhor ...

  8. springboot 使用select的注解,来查询数据库。

    package com.aaa.zxf.mapper; import com.aaa.zxf.model.Book; import org.apache.ibatis.annotations.*; i ...

  9. JAVA多线程学习九-原子性操作类的应用

    当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2.因为A和B线程在更新变量i ...

  10. B/S与C/S

    B/S结构(Browser/Server,浏览器/服务器模式),是web兴起后的一种网络结构模式,web浏览器是客户端最主要的应用软件.这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简 ...