Запуск нескольких файлов конфигурации как служб logsta sh с использованием NSSM - PullRequest
0 голосов
/ 03 августа 2020

Я использую logsta sh -7.4 и запускаю его как службу с помощью NSSM. У меня есть один файл конфигурации, который загружает данные в индекс (index_one) ElasticSearch, и другой файл конфигурации, который загружает данные в другой индекс (indiex_two) ElasticSearch. (Примечание: - оба файла конфигурации расписаны по разным интервалам и времени). Могу ли я установить оба файла в качестве службы с двумя разными именами, например service_one для передачи данных файла conf в index_one и service_two для передачи данных файла conf в indiex_two. Хорошо ли это сделать, или есть лучший способ сделать то же самое.

Ниже приведены оба файла конфигурации: config file1: #file: db.conf

input { 
    jdbc { 
        jdbc_driver_library => ""
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver" 
        jdbc_connection_string => "jdbc:oracle:thin:@nl0123vca0020.xyz-nl0123.abc.com:1521/pintu1"
        jdbc_user =>"usersys2"
        jdbc_password => "password"
        statement => "select name, id, address , col_1, col_2, col_3 from  demo_table_1"
        schedule => "0 */2 * * *"
        last_run_metadata_path => "E:/logstash-7.4.2/config/intouch_db_index_increment.txt"
        use_column_value => true
        tracking_column => "version"
    } 
}
filter {
    mutate {
        convert => {
            "contentid" => "string"
        }
    }
}
output{
    elasticsearch {
        hosts => ["http://***.***.119.199:9200"]
        index => "index_two"
        document_id =>"%{contentid}"
        user => "elastic" 
        password => "passwordes" 
    }
}

файл конфигурации-2: -

input {
    jdbc {
        jdbc_driver_library => ""
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
        jdbc_connection_string => "jdbc:oracle:thin:@nl0123vca0020.xyz-nl0123.abc.com:1521/pintu1"
        jdbc_user =>"usersys2"
        jdbc_password => "password"
        statement  => "select autosuggestid,userid,ldapalias,email, decode(trim(firstname || ' ' || lastname),'', ldapalias, (firstname || ' ' || lastname)) FULLNAME,status as USERSTATUS from demo_autosuggest where rownum < 999999999999" 
        jdbc_fetch_size => "100000" 
        schedule => "0 12 * * *"
    }
}
output{
    elasticsearch {
        hosts => ["http://***.***.119.199:9200"]
        index => "index_two"
        document_id =>"%{autosuggestid}"
        user => "elastic"
        password => "passwordes"
    }
}

1 Ответ

0 голосов
/ 17 августа 2020
This is how I have configured the conf file of logstash to ingest data from two different sql statements into multiple Elasticsearch indices using logstash.


    input { 
        jdbc { 
            type=>"autosuggest"
            jdbc_driver_library => ""
            jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver" 
            jdbc_connection_string => "jdbc:oracle:thin:@nl0123vca0020.xyz-nl0123.abc.com:1521/pintu1"
            jdbc_user =>"usersys2"
            jdbc_password => "password"
            statement => "select name, id, address , col_1, col_2, col_3 from  demo_table_1"
            schedule => "0 */2 * * *"
            last_run_metadata_path => "E:/logstash-7.4.2/config/intouch_db_index_increment.txt"
            use_column_value => true
            tracking_column => "version"
        } 
jdbc {
        type=>"dbindex"
        jdbc_driver_library => ""
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
        jdbc_connection_string => "jdbc:oracle:thin:@nl0123vca0020.xyz-nl0123.abc.com:1521/pintu1"
        jdbc_user =>"usersys2"
        jdbc_password => "password"
        statement  => "select autosuggestid,userid,ldapalias,email, decode(trim(firstname || ' ' || lastname),'', ldapalias, (firstname || ' ' || lastname)) FULLNAME,status as USERSTATUS from demo_autosuggest where rownum < 999999999999" 
        jdbc_fetch_size => "100000" 
        schedule => "0 12 * * *"
    }
    }

    filter {
       if [type] == "dbindex" 
        mutate {
            convert => {
                "contentid" => "string"
            }
        }
    }
    output{
        if [type] == "autosuggest"
    {  
        elasticsearch {
            hosts => ["http://***.***.119.199:9200"]
            index => "index_two"
            document_id =>"%{contentid}"
            user => "elastic" 
            password => "passwordes" 
        }
    }
   if [type] == "dbindex" 
    {
   elasticsearch {
        hosts => ["http://***.***.119.199:9200"]
        index => "index_two"
        document_id =>"%{autosuggestid}"
        user => "elastic"
        password => "passwordes"
    }
    } 
    }
...