Logstash

什么是Logstash

Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或文件。

logstash安装与测试

解压,进入bin目录

logstash ‐e 'input { stdin { } } output { stdout {} } '

控制台输入字符,随后就有日志输出

 

 

stdin,表示输入流,指从键盘输入

stdout,表示输出流,指从显示器输出

命令行参数:

-e 执行

--config -f 配置文件,后跟参数类型可以是一个字符串的配置或全路径文件名或全路径

路径(如:/etc/logstash.d/logstash会自动读取/etc/logstash.d/目录下所有*.conf 的文

本文件,然后在自己内存里拼接成一个完整的大配置文件再去执行)

 

 MySQL数据导入ElasticSearch

 

1)在logstash-5.6.8安装目录下创建文件夹mysqletc (名称随意)

 

2)文件夹下创建mysql.conf (名称随意) ,内容如下:

 

input {
  jdbc {
      # mysql jdbc connection string to our backup databse
      jdbc_connection_string => "jdbc:mysql://xxxx:3306/xxxx?characterEncoding=UTF8"
      # the user we wish to excute our statement as
      jdbc_user => "root"
      jdbc_password => "123456"
      # the path to our downloaded jdbc driver  
      jdbc_driver_library => "E:/logstash-5.6.8/mysqletc/mysql-connector-java-5.1.46.jar"
      # the name of the driver class for mysql
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      #以下对应着要执行的sql的绝对路径。
      #statement_filepath => ""
      statement => "select id,title,content from xxxx"
      #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)
      schedule => "* * * * *"
  }
}

output {
  elasticsearch {
      #ESIP地址与端口
      hosts => "127.0.0.1:9200" 
      #ES索引名称(自己定义的)
      index => "xxxx"
      #自增ID编号
      document_id => "%{id}"
      document_type => "article"
  }
  stdout {
      #以JSON格式输出
      codec => json_lines
  }
}

 

3)将mysql驱动包mysql-connector-java-5.1.46.jar拷贝至D:/logstash-

5.6.8/mysqletc/ 下 。D:/logstash-5.6.8是你的安装目录

(4)

(4)命令行下执行

logstash ‐f ../mysqletc/mysql.conf 

观察控制台输出,每间隔1分钟就执行一次sql查询

 

 

再次刷新elasticsearch-head的数据显示,看是否也更新了数据

 

posted @ 2020-10-22 18:43  弄半天  阅读(204)  评论(0)    收藏  举报