Прямая запись в Elasticsearch
Для анализа своих данных в ELK не обязательно использовать Logstash
для доставки логов, возможно писать в ES напрямую. Это удобно в таких случаях:
- статистика обращения к API по пользователям, в различных разрезах, можно передать больше информации, чем содержится в логах веб-сервера
- «Какие данные отправились/пришли в 1С» - для отладки
- «Через какое время с момента размещения заказа партнер может подтвердить резерв пути в ЛК»
Вначале нужно создать шаблон Elasticsearch для приема своих данных.
Так можно отправить два документа:
POST _bulk { "index" : { "_index" : "1c-exchange-ws", "_type" : "_doc" } } { "guid": "cbd40940-a92e-4374-91e6-295d46eb2cd1", "method": "POST", "request": "... some request data ..." } { "index" : { "_index" : "1c-exchange-ws", "_type" : "_doc" } } { "guid": "ad2f7319-12fa-4902-8e34-93934172389f", "method": "GET", "response": "... some response data ..." }
Так можно получить документы:
GET /1c-exchange-ws/_search { "query": { "match_all": {} } }
Через curl
curl -sH 'Content-Type: application/json' -XGET 'localhost:9200/1c-exchange-ws/_search' -d '{ "query": { "match_all": {} } }' | jq "."
Через nc
echo -n '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }' | nc -w0 -u graylog.example.com 12201
ключ -u
- UDP