• logstash-安装、基本使用、入门


    Logstash 收集、解析和转换日志

    介绍

    版本: version 6.4.0

    在logstash中,包括了三个阶段:

    输入input --> 处理filter(不是必须的) --> 输出output 

    每个阶段都由很多的插件配合工作,比如file、elasticsearch、redis等等。

    每个阶段也可以指定多种方式,比如输出既可以输出到elasticsearch中,也可以指定到stdout在控制台打印。

    下载

    下载地址 https://www.elastic.co/cn/downloads/past-releases#logstash

    安装

    解压即可 tar -zxvf logstash-6.4.0.tar.gz

    常用的命令

    bin/logstash

    -f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash
    -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“” 则默认使用stdin作为输入,stdout作为输出)
    -w 指定工作线程的个数
    -l:日志输出的地址(默认就是stdout直接在控制台中输出)
    -t:测试配置文件是否正确,然后退出。
    -r 监视配置文件的变化,并且自动重新加载修改后的配置文件
    --verbose 输出一定的调试日志。
    --debug 输出更多的调试日志。

    bin/logstash-plugin

    list 列出所有已安装的logstash插件
    install 安装logstash插件
    install --local 强制安装本地插件
    remove 删除logstash插件
    update 更新插件
    prepare-offline-pack 打包插件

    在每个部分中,也可以指定多个访问方式,例如我想要指定两个日志来源文件,则可以这样写:

    input { 
     file { path =>"/var/log/messages" type =>"syslog"} 
     file { path =>"/var/log/apache/access.log" type =>"apache"} 
     #从头开始读取日志
     start_position => beginning
    }

    插件安装

    插件库 rubygems https://rubygems.org

    logstash 自带输入 输出 过滤插件,使用命令logstash-plugin list查看

    正则参考https://www.runoob.com/regexp/regexp-metachar.html

    配置文件-语法

    发送邮件

    output{
        email {
            port           =>    "25"
            address        =>    "smtp.qq.com"
            username       =>    "xxxxxxx@qq.com"
            password       =>    "gadvlsgchj"
            authentication =>    "plain"
            use_tls        =>    false
            from           =>    "xxxxxxx@qq.com"
            subject        =>    "logstash send email test"
            to             =>    "xxxxxx016@163.com"
            via            =>    "smtp"
            body           =>    "Successful send email"
        }
    }

    输出到mysql

    在线安装输出插件-jdbc

    logstash-6.4.0/bin/logstash-plugin install logstash-output-jdbc

    input {
        file {
            path => ["/Users/root/Downloads/logstash-6.4.0/config/1.log"]
            #type => "file_monitor"
            #tags => ["有用的","标识用的"]
            start_position => "beginning"
        }
    }
    filter {      
      grok {
           match => { "message" => "%{TIMESTAMP_ISO8601:time} [A-Z]{4} [.+] .+:.+ - monitor (?<json_data>[.sS]+)"}
      }
      json{
          source => "json_data"
      }
      json{
          source => "status"  
      }
    }
    output{
        stdout {
            codec => json
        }
        if [time] {
            jdbc{
                driver_jar_path => "/Users/root/.m2/reponsitory/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar"
                driver_class => "com.mysql.jdbc.Driver"
                connection_string => "jdbc:mysql:///databases?autoReconnect=true&useSSL=false&user=root&password=admin"
                statement => ["insert into data(time,name) values(?,?)", "[time]","[name]"]
            }
        }
    }

      个人微信,有什么建议、意见或补充,欢迎及时沟通!!!(添加时注明“博客园”,谢谢)
  • 相关阅读:
    随机id
    vue关于父组件调用子组件的方法
    ES6——块级作用域
    在vue中引用superMap
    MSSQL备份脚本
    Ubuntu 使用命令导出数据库
    CSS before 中文乱码
    CentOS7 安装linux 网络不联通问题
    SVN update failed问题解决
    JQ实现树形菜单点击高亮
  • 原文地址:https://www.cnblogs.com/pidgey/p/11649307.html
Copyright © 2020-2023  润新知