# ELK Logstash API

**URL:** <https://discuss.elastic.co/t/elk-logstash-api/130939>\
**Category:** Logstash\
**Created:** [May 8, 2018, 6:11am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939 "2018-05-08T06:11:24Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 6:11am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/1 "2018-05-08T06:11:24Z")

</div>

Hi,  
I want to display my .log file into Kibana Dashboard thorugh logstash API(Java).I am able to achieve this through logstash config file.But i am not able to achieve same through logstash api. I need json file to push my log file (For example-D:/Test.log) in Kibana dashboard.

Thanks,  
Rajapandian.B

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 8, 2018, 6:21am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/2 "2018-05-08T06:21:01Z")

</div>

Which API are you specifically referring to?

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 6:34am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/3 "2018-05-08T06:34:24Z")

</div>

I am using Elasticsearch Java Rest Client api. I referred below link

> **[REST Calls Made Easy - A New Elasticsearch Java Rest Client](https://qbox.io/blog/rest-calls-new-java-elasticsearch-client-tutorial)**
>
> How do you easily integrate Elasticsearch to your application? Elasticsearch gives us two ways, REST APIs and Native clients.
> Which is the better solution? Like everything, there are pros and cons to both. For the...

Through this code i am able to create index but i am not able push my extenal log file into dashboard.

Thanks,  
Rajapandian.B

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 8, 2018, 6:35am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/4 "2018-05-08T06:35:31Z")

</div>

I don't know the details of this client, but if you can provide more information on what isn't working and what you are trying, someone should be able to help

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 6:42am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/5 "2018-05-08T06:42:58Z")

</div>

My Logstash config file.  
input {  
file {  
type =\> "java"  
path =\> "D:/elk-example-spring-boot/elk-example.log"  
codec =\> multiline {  
pattern =\> "^%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}.\*"  
negate =\> "true"  
what =\> "previous"  
}  
}  
}

filter {  
#If log line contains tab character followed by 'at' then we will tag that entry as stacktrace  
if [message] =~ "\tat" {  
grok {  
match =\> ["message", "^(\tat)"]  
add\_tag =\> ["stacktrace"]  
}  
}

grok {  
match =\> [ "message",  
"(?%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}) %{LOGLEVEL:level} %{NUMBER:pid} --- [(?[A-Za-z0-9-]+)] [A-Za-z0-9.]_.(?[A-Za-z0-9#\_]+)\s_:\s+(?._)",  
"message",  
"(?%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}) %{LOGLEVEL:level} %{NUMBER:pid} --- .+? :\s+(?._)"  
]  
}

date {  
match =\> ["timestamp" , "yyyy-MM-dd HH:mm:ss.SSS"]  
}  
}

output {

stdout {  
codec =\> rubydebug  
}

# Sending properly parsed log events to elasticsearch

elasticsearch {  
hosts =\> ["localhost:9200"]  
}  
}

Through this config file i am able to display my logs in kibana dashbaord. But my requirement is-" Instead of logstash conf i have to use logstash api to display the logs.". Is it possible to configure json input file for the same?

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 8, 2018, 6:44am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/6 "2018-05-08T06:44:49Z")

</div>

Just to be clear, you want to use the Elasticsearch Java client to send logs to Elasticsearch?

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 6:47am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/7 "2018-05-08T06:47:27Z")

</div>

yes Mark.I am trying something as input as below.But it didn't work.

{  
"description": "Pipeline to parse Apache logs",  
"message": {  
"type1": {  
"\_source": {  
"path": "C:/Users/Test/Desktop/apache\_logs.log"  
},  
"processors": [{  
"grok": {  
"field": "message",  
"pattern": "%{COMBINEDAPACHELOG}"  
},  
"date": {  
"match\_field": "timestamp",  
"target\_field": "timestamp",  
"match\_formats": ["dd/MMM/YYYY:HH:mm:ss Z"]  
},  
"convert": {  
"field": "response",  
"type": "integer"  
}  
}]  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 8, 2018, 6:51am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/8 "2018-05-08T06:51:27Z")

</div>

That is not the Elasticsearch java client, that is Logstash.

I'm sorry, it's just not clear what you are asking.

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 6:57am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/9 "2018-05-08T06:57:26Z")

</div>

How to send my logs into elastic search through Logstasth rest api?

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 8, 2018, 6:58am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/10 "2018-05-08T06:58:54Z")

</div>

Logstash does not have a REST API for ingestion.

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 7:00am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/11 "2018-05-08T07:00:58Z")

</div>

ok thanks Mark.Then we need to run logstash command to send logs to elastic search. logstash -f myconfigfile

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 8, 2018, 7:04am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/12 "2018-05-08T07:04:26Z")

</div>

Our developers have a JSON log shipper configured in their JAVA applications that send JSON to Logstash  
The Logstash input is configured like

```
input {
  udp {
    port => 12346
    queue_size => 10000
    codec => "json"
  }
}

```

Test bash script

```
#!/bin/bash

  BLAH=$1

   DATE=$(date)
   echo "{ \"log\": \"Testing JSON logs $BLAH - $DATE\"}" | nc -u -w2 logs.example.com 12346
exit

```

In case that helps 🙂

-AB

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 7:07am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/13 "2018-05-08T07:07:54Z")

</div>

Thanks.Is it possible to define my external file in json file? or i need to put my log file in - echo "{ "log": "Testing JSON logs $BLAH - $DATE"}" | nc -u -w2 D:/Test.log 12346

is this correct?

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 8, 2018, 7:13am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/14 "2018-05-08T07:13:52Z")

</div>

In my example your JAVA application would send JSON data to [logs.example.com](http://logs.example.com) on UDP port 12346 directly.

If your application writes to a log file on disk and that should be shipped to Logstash, then I would recommend using Filebeat for that,

File beat can deal with multiline stacktraces etc.

-AB

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 7:16am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/15 "2018-05-08T07:16:19Z")

</div>

Thanks.I am new to this. Filebeat also having Api's?

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 8, 2018, 7:21am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/16 "2018-05-08T07:21:43Z")

</div>

I don't think Filebeat has an API...

You specify a file to read similarly to a Logstash `file` input.

---

<div class="post-metadata">

**Author:** ![Raja\_Pandian](https://avatars.discourse-cdn.com/v4/letter/r/f14d63/32.png) [@Raja\_Pandian](https://discuss.elastic.co/u/Raja_Pandian)\
**Post date:** [May 8, 2018, 7:45am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/17 "2018-05-08T07:45:10Z")

</div>

Ok Thanks A\_B.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 5, 2018, 7:45am UTC](https://discuss.elastic.co/t/elk-logstash-api/130939/18 "2018-06-05T07:45:11Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
