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. 用格里高利公式求给定精度的PI值

    本题要求编写程序,计算序列部分和 4∗(1−1/3+1/5−1/7+...) ,直到最后一项的绝对值小于给定精度eps. 输入格式: 输入在一行中给出一个正实数eps. 输出格式: 在一行中按照&qu ...

  2. Kafka connector (kafka核心API)

    前言 Kafka Connect是一个用于将数据流输入和输出Kafka的框架.Confluent平台附带了几个内置connector,可以使用这些connector进行关系数据库或HDFS等常用系统到 ...

  3. Java中的标签语法(类似于C语言goto循环体)

    Java中的标签语法(少用) 101到150的质数 此法类似于C语言中的GOTO循环 public static void main(String[] args) { int count=0; //标 ...

  4. 【解决了一个问题】腾讯云中使用ckafka生产消息时出现“kafka server: Message contents does not match its CRC.”错误

    初始化的主要代码如下: config := sarama.NewConfig() config.Producer.RequiredAcks = sarama.WaitForAll // Wait fo ...

  5. 【重构前端知识体系之HTML】HTML5给网页音频带来的变化

    [重构前端知识体系之HTML]HTML5给网页音频带来的变化 引言 音乐播放,相信大家都很熟悉,但是早在之前的音乐播放之前,你的浏览器会问你,是否下载flash插件.然而现在,估计一些年轻的开发者都不 ...

  6. Centos配置yum本地源最简单的办法

    有关centos配置yum本地源的方法 一.前提 先连接镜像 然后在命令行输入如下命令 mount /dev/sr0 /mnt cd /etc/yum.repos.d/ ls 之后会看到如下的界面 二 ...

  7. linux文件权限全面解析

    目录 linux文件权限全面解析 一:linux文件的权限有哪些? 1,权限分为3个部分 2,权限位 3,每一个权限拥有一个数字编号 4,在添加权限的时候,可以将权限加起来 5,linux添加权限命令 ...

  8. python代码加注释--6

    备注:#用来注释代码,#后面的内容会被python解释器忽略

  9. 使用 MVVM Toolkit Source Generators

    关于 MVVM Toolkit 最近 .NET Community Toolkit 发布了 8.0.0 preview1,它包含了从 Windows Community Toolkit 迁移过来的以下 ...

  10. Android开发-资源导入

    安卓开发首先要导入开发资源,这些资源包括图片,图标等,方便开发过程中的使用 我是跟着b站博主做的记账本app所以导入的资源也来自于网络 将资源导入到res文件夹下这里面包括颜色资源,布局资源,图片资源 ...