Logstash - 是否可以为logstash创建一个java程序

时间:2014-10-15 07:21:13

标签: java logstash

我需要创建一个java程序,用于根据某些配置(conf文件)生成logstash输出。但是我的问题是我在Properties对象中有配置,我还需要输出作为Json String对象。但是在examples我从互联网上发现它会喜欢,需要通过控制台运行命令,输出会出现在控制台上

logstash -f config.conf

但是我需要一个java程序而不是上面的程序。有可能吗?

3 个答案:

答案 0 :(得分:3)

您根本不需要使用logstash将数据插入到elasticsearch中。您可以直接从java API进行操作,然后使用index API

答案 1 :(得分:1)

您可以通过以下方式创建Java程序。

  1. 创建您的logstash配置文件并将其放置在文件系统中的任何位置。

  2. 确保可以使用logstash -f yourfile.conf执行该文件。

  3. 现在编写一个Java程序来执行此Logstsah文件。

从Java代码执行linux命令的示例代码:

public void executeLinux(String command) {
        System.out.println("Executing linux command "+command);

        try{
            Runtime run = Runtime.getRuntime();
            Process pr = run.exec(command);
            pr.waitFor();
            BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
            String line = "";
            while ((line=buf.readLine())!=null) {
                System.out.println(line);

                }
            }
        }catch (Exception e) {
            e.printStackTrace();
        }

    }

答案 2 :(得分:0)

好的,logstash2.x支持从http,ftp等读取配置文件。

例如: java bin/logstash -f http://xx.xx.xx/xx.config --auto-reload --reload-interval 2

点击此处"" The Logstash Lines: 2.2 Release, Dynamic Config Reloading

Apply changes from configuration file without restarting

你可以在java项目中动态创建配置文件,并从springmvc的控制器中输入redis和logstash加载配置文件。