ELK之logstash系统日志和nginx日志收集-4

logstash常用参数

  1 path

   是必须的选项,每一个file配置,都至少有一个path

   2 exclude

   是不想监听的文件,logstash会自动忽略该文件的监听。配置的规则与path类似,支持字符串或者数组,但是要求必须是绝对路径。

   3 start_position

   是监听的位置,默认是end,即一个文件如果没有记录它的读取信息,则从文件的末尾开始读取,也就是说,仅仅读取新添加的内容。对于一些更新的日志类型的监听,通常直接使用end就可以了;相反,beginning就会从一个文件的头开始读取。但是如果记录过文件的读取信息,这个配置也就失去作用了。

   4 sincedb_path

   这个选项配置了默认的读取文件信息记录在哪个文件中,默认是按照文件的inode等信息自动生成。其中记录了inode、主设备号、次设备号以及读取的位置。因此,如果一个文件仅仅是重命名,那么它的inode以及其他信息就不会改变,因此也不会重新读取文件的任何信息。类似的,如果复制了一个文件,就相当于创建了一个新的inode,如果监听的是一个目录,就会读取该文件的所有信息。

收集单个系统日志并输出至文件

[[email protected] config]# cat system-log.conf
input {
  file {
    type => "meassage-log"
    path => "/var/log/messages"
    start_position => "beginning" #"第一次从头收集,之后从新添加的日志收集"
  }
  file {
    type => "secure-log"
    path => "/var/log/secure"
    start_position => "beginning"
  }
}
output {
 file {
   path => "/tmp/%{type}.%{+yyyy.MM.dd}"
 }
}
语法检测
../bin/logstash -f system-log.conf -t

运行查看结果

查看/tmp下面的文件即可

收集nginx日志和系统日志写入到elasticsearch

修改nginx日志格式为json格式 方便查看和Kibana 展示
log_format access_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",‘
        ‘"domain":"$host",‘
        ‘"xff":"$http_x_forwarded_for",‘
        ‘"referer":"$http_referer",‘
        ‘"status":"$status"}‘;
access_log /data/wwwlogs/access_nginx.log access_json;
[[email protected] config]# cat system-log.yml
 input {
   file {
      type => "system-message"
      path => "/var/log/mess     ages"
      start_position => "beginning"
    }
   file {
      type => "system-secure"
      path => "/var/log/secure"
      start_position => "beginning"
   }
   file {
     type => "nginx-access"
     path => "/data/wwwlogs/access_nginx.log"
     start_position => "beginning"
     codec => json
  }
 }

 output {
   if[type] == "nginx-access" {
     elasticsearch {
       index => "nginx-access-%{+YYYY.MM.dd}"
        hosts => ["192.168.1.252:9200"]
     }
   }
   if[type] == "system-message" {
     elasticsearch {
        index => "system-message-%{+YYYY.MM.dd}"
        hosts => ["192.168.1.252:9200"]
     }
   }
   if[type] == "system-secure" {
      elasticsearch {
        index => "system-secure-%{+YYYY.MM.dd}"
        hosts => ["192.168.1.252:9200"]
     }
   }
 }

运行访问nginx生成日志

[[email protected] config]# ab -c 100 -n 100 http://192.168.1.252/


原文地址:https://blog.51cto.com/9025736/2373483

时间: 2024-08-28 04:04:37

ELK之logstash系统日志和nginx日志收集-4的相关文章

ELK之八----Logstash结合kafka收集系统日志和nginx日志

一.logstash结合kafka收集系统日志和nginx日志 架构图: 环境准备: A主机:kibana.elasticsearch,有条件可以将两个服务器分开:192.168.7.100 B主机:logstash主机:192.168.7.101/nginx服务器也在此主机上 C主机:logstash主机:192.168.7.102 D主机:kafka/zookeeper:192.168.7.104 E主机:kafka/zookeeper:192.168.7.105 1.使用logstash-

ELK之六-----logstash结合redis收集系统日志和nginx访问日志

一.logstash结合redis收集系统日志 架构图: 环境准备: A主机:elasticsearch主机     IP地址:192.168.7.100 B主机:logstash主机            IP地址:192.168.7.102 C主机:redis主机                IP地址:192.168.7.103 D主机:logstash主机/nginx主机          IP地址:192.168.7.101 1.安装并配置redis 1.安装并配置redis服务,并启

elk分析nginx日志和tomcat日志

一.介绍 Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案. Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用 kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web

ELK最新版实战配置检索nginx日志

说明: 本文只是对相应的功能进行简介,并不会具体介绍部署方案,因为所有的包都是使用的tar.gz格式解压直接可用的,如果有什么不懂的地方或是本人有说错的地方,欢迎大家提问和质疑,也欢迎大家一起交流学习. 环境: OS:ubuntu14.0 Kernel:3.13.0-24-generic logstash:1.5.1 elasticsearch:1.6.0 kibana:4.1 nginx:1.9.1 tomcat:7.0 java:1.7.0 Step1: 所有ELK的安装包都可以去官网下载,

logstash通过kafka传输nginx日志(三)

单个进程 logstash 可以实现对数据的读取.解析和输出处理.但是在生产环境中,从每台应用服务器运行 logstash 进程并将数据直接发送到 Elasticsearch 里,显然不是第一选择:第一,过多的客户端连接对 Elasticsearch 是一种额外的压力:第二,网络抖动会影响到 logstash 进程,进而影响生产应用:第三,运维人员未必愿意在生产服务器上部署 Java,或者让 logstash 跟业务代码争夺 Java 资源. 所以,在实际运用中,logstash 进程会被分为两

系统日志和loganalyzer

作为运维人员,熟悉系统日志是一项基本功.本文将介绍centos6的系统日志rsyslog及loganalyzer工具. 简介 系统日志:记录历史事件,通常都是按时间顺序将发生的事件予以记录,linux上的日志分为syslogd(系统进程相关日志)和klogd(内核事件日志) centos5:syslog 缺点:不能进行并行数据存储,效率低,不能实现放在专用数据管理文件中 centos6:rsyslog 优点: 1.支持多线程 2.基于tcp,tls,relp放在远程日志服务器中,早期的syslo

log4net VS2012 日志layout自定义,error日志和info日志分别记录到不同文件中

打开VS中“工具”=>“NuGet程序包管理器”=>“管理解决方案的NuGet程序包”菜单 在“管理NuGet程序包”窗口中,搜索log4net,并安装 有时候,我们在日志中需要记录一些业务数据,如operator等信息,我们新建一个类WebMethodLog,来存放log里面需要用到的信息 public class WebMethodLog { public string operatorNo{get;set;} public string operatorName { get; set;

ELK+kafka构建日志收集系统

ELK+kafka构建日志收集系统 原文  http://lx.wxqrcode.com/index.php/post/101.html 背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis换成了专业的消息信息发布订阅系统Kafka, Kafka的更多介绍大家可以看这里: 传送门 ,关于ELK的知识网上有很多的哦, 此篇博客主要是总结一下目前线上这个

ELK对nginx日志进行流量监控

ELK对nginx日志进行流量监控 一.前言 线上有一套ELK单机版,版本为5.2.1.现在想把nginx访问日志接入到elk里,进行各个域名使用流量带宽的统计分析.要把nginx日志传输到elk上,可以在存有nginx日志的服务器上使用logstash或者filebeat.但是因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存(这就是为什么logstash启动特别慢的原因),而filebeat只需要10来M内存资源,所以最终决定使用fileb