Я пытаюсь посмотреть изменения в поле "host", вызванные metricbeat. Я хотел бы запускать процесс каждый день, чтобы увидеть, изменилось ли это поле "хост" для какой-либо конкретной c системы. Типичная запись metricbeat, которая содержит требуемое поле хоста, выглядит примерно так:
{
"_index": "metricbeat-7.3.1-2019.09.10-000001",
"_type": "_doc",
...
},
...
},
"host": {
"name": "(servername)",
"containerized": false,
"hostname": "(hostname)",
"architecture": "x86_64",
"os": {
"kernel": "3.10.0-954.10.1.dl7.x86_64",
"codename": "Core",
"platform": "centos",
"version": "7 (Core)",
"family": "redhat",
"name": "CentOS Linux"
},
"id": "211d31bcdb1fdfdereffer5664fsdfhjjs"
},
...
}
До сих пор я пытался:
Захватить все записи для день и сравните эти поля хоста как словари. Проблема с этим заключается в том, что metricbeat генерирует несколько тысяч записей, каждая из которых должна быть найдена. Это действительно неэффективно, когда у нас очень большие индексы, а код зависит от обработки данных, которые упорядочены по времени. См .: https://discuss.elastic.co/t/get-oldest-newest-document-in-beat/212229/5
Я попытался написать агрегацию, чтобы получить весь хост-объект, а затем поместить данные в ячейки «имя_сервера». Я не мог заставить это работать. См .: Агрегация объекта "хост" JSON объекта из метрического удара на Elasticsearch
Я установил Elastalert и пытался заставить его оповещать на хосте меняется. Это не сработало до сих пор. Примеры, поставляемые с пакетом Elastalert, работают для действительно простых вещей, но это все, что я могу сделать.
Когда я запускаю запрос, я хотел бы видеть что-то подобное output:
"host_configurations":
{
server_id: "server1",
"host": {
"os.name": "Linux xxx",
"kernel.version": u893,
....
},
{
server_id: "server1",
"host": {
"os.name": "Linux xxx",
"kernel.version": u895,
....
},
...
Это говорит о том, что когда-нибудь в этот день kernel.version изменился с u893 на u895. Или я мог видеть, добавил ли кто-нибудь RAM или больше дискового пространства. Вот и все. Оттуда остальная часть кода проста. Мне все равно, во сколько это случилось и сколько раз. Мне просто нужно знать, что когда-то в тот день произошло изменение конфигурации хоста.
Кажется, это должно быть "относительно" простым делом, но я не могу заставить что-либо работать. Буду признателен за любые предложения, которые есть у кого-либо.
Спасибо!