# POST method http\_poller

**URL:** <https://discuss.elastic.co/t/post-method-http-poller/141940>\
**Category:** Logstash\
**Created:** [July 27, 2018, 12:11pm UTC](https://discuss.elastic.co/t/post-method-http-poller/141940 "2018-07-27T12:11:37Z")\
**Posts on this page:** 15\
**Page:** 3

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 2, 2018, 2:34pm UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/41 "2018-08-02T14:34:31Z")

</div>

Should I change codec to "json\_lines"?

Here is a log with comment out of codec

 ![Screenshot%20from%202018-08-02%2016-31-41](https://us1.discourse-cdn.com/elastic/original/3X/5/8/58b440117bb0bc6bd5515f5432619b88a8771b57.png)

This one with codec "json\_line"

 ![Screenshot%20from%202018-08-02%2016-40-57](https://us1.discourse-cdn.com/elastic/original/3X/6/e/6eb5713bb9552c288dc815e5ede748813d1e5a58.png)

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [August 2, 2018, 2:53pm UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/42 "2018-08-02T14:53:56Z")

</div>

OK, so your script is producing no output. And if there is no output a json codec consumes the event without emitting anything.

Thus

```
input { exec { command => "echo ''" codec => json interval => 10 } }
output { stdout { codec => rubydebug } }

```

does not produce an event, although

```
input { exec { command => "echo ''" interval => 10 } }
output { stdout { codec => rubydebug } }

```

does.

What do you get when you run '/usr/bin/python /home/maksym/PathFolder/pythonpractice/postsample.py' on the command line?

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 2, 2018, 3:01pm UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/43 "2018-08-02T15:01:05Z")

</div>

The output of python script is the following

 ![Screenshot%20from%202018-08-01%2011-27-51](https://us1.discourse-cdn.com/elastic/original/3X/4/a/4a7184171ae471f31f046ec2b33451888e9dc052.png)

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 6:11am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/44 "2018-08-03T06:11:17Z")

</div>

Any recomendations?

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 6:12am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/45 "2018-08-03T06:12:06Z")

</div>

Do you have any recomendation how to fix?

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [August 3, 2018, 6:23am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/46 "2018-08-03T06:23:12Z")

</div>

You can change the command being run to

```
/usr/bin/python /home/maksym/PathFolder/pythonpractice/postsample.py 2>&1

```

so that stderr output is included in the output. What happens?

Also, how are you starting Logstash?

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 6:31am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/47 "2018-08-03T06:31:35Z")

</div>

```
input {
  exec {
        command => "/usr/bin/python /home/maksym/PathFolder/pythonpractice/postsample.py 2>&1"
        interval => 20
        codec => "json_lines"
        } 
}

output {
  # elasticsearch {
# hosts => ["localhost:9200"]
# index => "logstash-%{+YYYY.MM.dd}"
#}
   stdout { 
     codec => rubydebug
   }
}

```

 ![Screenshot%20from%202018-08-03%2008-30-24](https://us1.discourse-cdn.com/elastic/original/3X/e/f/ef2d7a2796cb8bb6db281524cadacad39c3f26b5.png)

Here are a logstash.conf and log output  
I am starting logstash by `systemctl start logstash`

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [August 3, 2018, 6:45am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/48 "2018-08-03T06:45:26Z")

</div>

Well, there you have it. The logstash user can't run the script in your home directory.

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 7:04am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/49 "2018-08-03T07:04:31Z")

</div>

I have changed directory for python script and cookiejar file to /etc/logstash. Now I have a such log

 ![Screenshot%20from%202018-08-03%2009-03-57](https://us1.discourse-cdn.com/elastic/original/3X/8/7/87b7bda21173b42c614609d355e5f5d3d7797f9c.png)

 ![Screenshot%20from%202018-08-03%2009-04-02](https://us1.discourse-cdn.com/elastic/original/3X/c/b/cb4d22201c08f3f5ba61904766bceb083308763f.png)

---

<div class="post-metadata">

**Author:** ![tgaudin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tgaudin/32/32583_2.png) [@tgaudin](https://discuss.elastic.co/u/tgaudin)\
**Post date:** [August 3, 2018, 7:39am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/50 "2018-08-03T07:39:50Z")

</div>

As you showed us here [POST method http\_poller](https://discuss.elastic.co/t/post-method-http-poller/141940/43?u=tgaudin), your script outputs the string `"setting cookies"` or `"loading saved cookies"`, which is not JSON. You should not print this in your script.

Also, if it still looks like the script you shared in this post [POST method http\_poller](https://discuss.elastic.co/t/post-method-http-poller/141940/13?u=tgaudin), you probably will need to not print `r.status_code`, `r.cookies`, or anything that isn't the JSON response from your server.

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 7:57am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/51 "2018-08-03T07:57:45Z")

</div>

OK, sir I've made some changes with the path and now I have a such log, cookiejar was created by logstash

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 8:03am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/52 "2018-08-03T08:03:14Z")

</div>

Ok I have changed it:

```
import os
os.chdir("/var/lib/logstash")
from cookielib import LWPCookieJar

import requests

s = requests.Session()
s.cookies = LWPCookieJar('cookiejar')
if not os.path.exists('cookiejar'):
    # Create a new cookies file and set our Session's cookies
    #print('setting cookies')
    s.cookies.save()
    r = s.post('http://localhost:8080/api/session/login', json={'login': 'login', 'password': 'pass'})

else:
    # Load saved cookies from the file and use them in a request
    #print('loading saved cookies')
    s.cookies.load(ignore_discard=True)
    r = s.get('http://localhost:8080/api/dashboard/staging-space')
print(r.text)
# Save the session's cookies back to the file
s.cookies.save(ignore_discard=True)

```

Is everything is OK for now?

 ![Screenshot%20from%202018-08-03%2010-02-46](https://us1.discourse-cdn.com/elastic/original/3X/8/2/824c949a9d19f16a23acbad1e6c886d214a09f17.png)

---

<div class="post-metadata">

**Author:** ![tgaudin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tgaudin/32/32583_2.png) [@tgaudin](https://discuss.elastic.co/u/tgaudin)\
**Post date:** [August 3, 2018, 8:23am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/53 "2018-08-03T08:23:29Z")

</div>

That looks OK, if your API is supposed to send `availableSpace` or `node: {...}` information it's in the event. If I remember correctly, the `stdout` output can be seen in `journalctl -fu logstash` if you want to make sure the events look like you want. Then you can uncomment the Elasticsearch output and see if Kibana picks up the documents.

(Also, copy-pasting logs is easier to read and is indexable for search engines, better than screenshots)

---

<div class="post-metadata">

**Author:** ![m.sereda](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/m.sereda/32/48232_2.png) [@m.sereda](https://discuss.elastic.co/u/m.sereda)\
**Post date:** [August 3, 2018, 10:33am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/54 "2018-08-03T10:33:40Z")

</div>

OMG, finally it is working! You **tgaudin** and **magnusbaeck** are my heroes! Thank you guys!

p.s. sorry i have to sent a screenshot due to maximum number of characters.

---

<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:** [September 17, 2018, 8:18am UTC](https://discuss.elastic.co/t/post-method-http-poller/141940/58 "2018-09-17T08:18:56Z")

</div>

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

[Previous page](https://discuss.elastic.co/t/post-method-http-poller/141940.md?page=2)
