windows-下使用logstash
本文最后更新于121 天前,其中的信息可能已经过时。
Windows 下使用Logstash 注意点
Windows 下使用Logstash 注意点

 

  • es 与logstash 的版本是严格对应的,基本是上是一一对应,比如es的版本是8.11.4一般都会有一个logstash8.11.4与之对应。总之别下错,也不要头铁去试兼不兼容,省的麻烦

 

  • 启动logstash的前提是 你已经启动了好了es

 

  • 不能进入bin目录启动logstash服务(在7.x之后的改动)那么在哪里启动呢?如图

     

在安装logstash的主目录下。在目录下cmd进入终端输入命令可操作logstash

  • 启动一个空的logstash服务看是否有误(一般是无错误的)

    • 终端手写配置文件的方法 (切记是双引号)

      .\bin\logstash -e "input{stdin{}} output{stdout{}}"
      

    • 读取配置文件的方法

      进入config目录写一个空的服务配置文件demo.conf

      文件路径如下:

      demo.cof文件内容如下:

         input{
           stdin{}       //控制台输入流插件
         }
         output{
           stdout{}      //控制台输出流插件
         }
      
      

    启动命令如下:先把之前启动logstash服务停掉(在终端Ctrl + C)Y

    .\bin\logstash -f .\config\demo.conf 
    

     

    • 是否启动成功检测,使用浏览器或者cmd 访问本机9600端口出现类似相应则代表启动成功

    • 解释一下这个启动命令吧

      • .\bin\logstash 因为目前我们是在 主目录下,然而logstash.bat 这个批处理命令在bin目录下 所有先要切换到bin目录下拿到这个命令 .bat可以省略所以是这个样子
      • -e "input{stdin{}} output{stdout{}}" -e 表示 edit 就手动编辑的意思,后面就是我们编辑的配置文件内容需要用双引号标注起来 “input{stdin{}} output{stdout{}}” 内容代表着一个什么也干的服务。所以这个服务启动起来实际上也没做任何业务
      • 类似的 .\bin\logstash -f .\config\demo.conf 也很容易理解 -f 表示以file的形似读取配置文件 .\config\demo.conf 表示切换到config目录下的demo.conf文件
      • 总之 大家切记不要在bin目录下启动logstash服务
  • 上一步启动了logstash服务基本上是为了检测 logstash装没装好 ,但我们下载logstash要实现的功能远不止如此,笔者这里演示一个如何从MySql数据库 导入ElasticSearch的功能

    • 编写配置文件(最重要,网上有很多,但是笔者也试了很多,没几个是可以完美匹配windows的,也有可能是logstash版本的问题,总之会有无数的坑在这等着大家,大家也不要气馁,经验总是需要沉淀的)但苦难并不只得歌颂,所以这样提供一份能够完美运行启动服务的配置文件:

      input {
          stdin {
          }
          jdbc {
            # mysql相关jdbc配置 这里需要改成你自己数据库的信息
            jdbc_connection_string => "jdbc:mysql://localhost:3306/db_poem?characterEncoding=UTF-8&useSSL=false"
            jdbc_user => "root"
            jdbc_password => ""
       
            # jdbc连接mysql驱动的文件目录 笔者这个是自己manven仓库地址的驱动。也要改成你自己的
            jdbc_driver_library => "D:/software/apache-maven-3.6.3/mvn_repo/com/mysql/mysql-connector-j/8.0.31/mysql-connector-j-8.0.31.jar"
            jdbc_driver_class => "com.mysql.jdbc.Driver"
            jdbc_paging_enabled => "true"
            jdbc_page_size => "50000"
       
            # mysql语句,查询你需要导入到es的数据,这里简单演示所有数据
            statement => "SELECT * from student"
          }
      }
       
      # 此处我不做过滤处理
      filter {}
       
      output {
          #输出到elasticsearch的配置
          elasticsearch {
              hosts => ["127.0.0.1:9200"]
              # 导入到es 的索引的名称,没有则会自动创建一个
              index => "index_stu"
              document_id => "%{id}"
              template_overwrite => true
          }
       
          #这里输出调试,正式运行时可以注释掉
          stdout {
              codec => json_lines
          }
      }
      

      这个配置文件已经简单得不能再简单了,但是logstash的强大功能远不止如此,需要约多的功能则需要写更多的配置参数。大家可以自行学习。这里只为做演示。这个文件我还是保存在config目录下,命名为user.conf

    • 启动命令 启动之前要先确保你的mysql 数据库与你填写的信息无误,且是却有此数据库,也确有此数据表

      .\bin\logstash -f .\config\user.conf
      

      可以看到就是把demo.conf换成我们刚写好的user.conf,其实就是这样的,logstash所有的服务都需要你自己写配置文件来决定执行什么业务,多久执行一次业务……

    • 效果如下:(可以看到成功导入的数据)

      运行命令之后,logstash会先连接数据库,然后执行sql 得到数据后进行过滤,再将剩下的数据存入es的index_stu索引中

      可以到kibana中查看是否有成功导入比如:

      GET /index_stu/_search
      {
        "query": {
          "match_all": {}
        }
      }
      
      

      结果如下L可以看到mysql中数据已经导入到es中

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇