Size: a a a

2019 November 19

B.

Baha . in E.L.K.
всем привет, есть ли какие-нибудь альтернативные варианты настройки авторизации в кибане и деления на spaces, помимо X-Pack?
источник

D

Dmitriy in E.L.K.
Opendistro
источник

B.

Baha . in E.L.K.
Dmitriy
Opendistro
спасибо
источник

L

LMA in E.L.K.
Всем доброго дня, пните плс мысль в нужную сторону:
1) Есть docker-контейнер, с корого я забираю логи с помочью filebeat.yml и отправляю в logstash:
- type: docker
 enabled: true
 containers.ids: "*"

2) всё это ловлю в logstash:
input {
       beats {port => 5044}
     }

filter {
}

output {
       elasticsearch {

3) Сервис в докере - на PHP, выдаёт всё в чистом json, через LogstashFormatter, но сам докер всё это засовывает в такое сообщение:

NOTICE: PHP message: {а тут всё в json}:

NOTICE: PHP message: {"@timestamp":"бла-бла-бла","@source":"бла-бла-бла","@fields":{"channel":"API","level":200,"uid":"бла-бла-бла","memory_usage":"10 MB","php_version":"бла-бла-бла","application_version":"бла-бла-бла","url":"/health","ip":"бла-бла-бла","http_method":"HEAD","server":"бла-бла-бла","referrer":null,"ctxt_Accept":["*/*"],"ctxt_User-Agent":["curl/7.61.1"],"ctxt_Host":["бла-бла-бла"],"ctxt_Content-Length":[""],"ctxt_Content-Type":[""]},"@message":"Headers","@tags":["API"],"@type":"бла-бла-бла","@source_host":"бла-бла-бла","@source_path":"/health"}
источник

L

LMA in E.L.K.
как можно красивее разобрать сообщение? достаточно удалить NOTICE и тд, чтобы остался чистый message?
источник

D

Dmitriy in E.L.K.
ну да. через mutate->gsub сносишь префикс, потом закидываешь в плагин json
источник

L

LMA in E.L.K.
спс
источник

DS

Dmytro Striletskyi in E.L.K.
В этом примере — https://www.elastic.co/blog/introducing-logstash-input-http-plugin — я отсылаю запрос с данными (тело запроса). И оно парсится на message, post_data_user.
источник

DS

Dmytro Striletskyi in E.L.K.
Но если я шлю запрос вот так:
источник

DS

Dmytro Striletskyi in E.L.K.
response = requests.put(url=URL, data=json.dumps({
   'api_version': 1,
   'ram_mb': 25,
}))
источник

DS

Dmytro Striletskyi in E.L.K.
То оно не парсится на разные переменные.
источник

DS

Dmytro Striletskyi in E.L.K.
Что я делаю не так?
источник

DS

Dmytro Striletskyi in E.L.K.
Ага, если я шлю свою дату в курле — curl -X POST -H "content-type: application/json" http://37.48.67.123:8080/twv1/itter/tweet/1 -d '{"api_version": "1", "ram_mb": 25}' — то работает. Что-то на стороне Python тогда. Спасибо.

UPD. request.post — json={}.
источник

D

Dmitriy in E.L.K.
кавычки экранируются через dumps
источник

BE

Bogdan Evstratenko in E.L.K.
Dmytro Striletskyi
response = requests.put(url=URL, data=json.dumps({
   'api_version': 1,
   'ram_mb': 25,
}))
response = requests.put(url=URL, json={
   'api_version': 1,
   'ram_mb': 25,
})
источник

BE

Bogdan Evstratenko in E.L.K.
когда передаешь в data, то content-type не выставляется нужный, емнип
источник
2019 November 20

L

LMA in E.L.K.
Всем привет, у меня есть тестовый докер из которого я забираю логи и шлю в ELK. Логи доставляются, но дропаются с ошибкой:
{:timestamp=>"2019-11-20T15:10:48.530000+0300", :message=>"failed action with response of 400, dropping action: 

Вот пример лога, который я забираю filebeat'ом:
NOTICE: PHP message: {"@source":"reciever-staging.domen.com","@fields":{"channel":"API","level":200,"uid":"7777777788","memory_usage":"4 MB","php_version":"7.4.0RC5","application_version":"test_logs","url":"/1234","ip":"10.80.30.14","http_method":"POST","server":"reciever-staging.domen.com","referrer":null},"@message":"test44111424","@tags":["API"],"@type":"test_receiver","@source_host":"reciever-staging.domen.com","@source_path":"/1234"}

Вот правила на ELK:

на input
 beats {
               port => 5044
       }

в filter
if "reciever-staging" in [tags] {
               mutate {
                       add_field => {
                               "[@metadata][reciever-staging]" => "true"
                       }
               }
               if "reciever-staging" in [message] {
                       mutate {
                               gsub => [
                                       "message", "NOTICE: PHP message: ", ""
                               ]
                       }
                       json {
                               source => "message"
                       }
               }
       }
источник

L

LMA in E.L.K.
проблема скорее всего в том, что какой-то типа поля конфликтует:

в kibana вижу:
Mapping conflict! 18 


но суть в том, что в проде древнучий logstash 2.3
в новом тестовом 7,4 всё парсится норм
источник

L

LMA in E.L.K.
хз как поймать поле или ошибку
источник

L

LMA in E.L.K.
специально переключил лог не из контейнера, а из простого файлика, в котором только одна строчка с логом.
но всё так же валится с той же ошибкой, даже если в логах всего:
NOTICE: PHP message: {"@source":"reciever-staging.domen.com"}
источник