Created
August 11, 2019 14:10
-
-
Save patsevanton/0c28b19dca2ae9c40ddff87bd4d67389 to your computer and use it in GitHub Desktop.
journald - unify data collection
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kvaps, [11.08.19 04:06] | |
By the way, обновил journalbeat в кластере, помимо add_kubernetes_metadata добавил decode_json_fields processor, теперь если сервис пишет логи в JSON, он автоматически распознаёт и парсит его | |
Alexander Shinkarenko, [11.08.19 08:18] | |
[In reply to George Gaál] | |
А в чем его преимущество? | |
George Gaál, [11.08.19 08:27] | |
[In reply to Alexander Shinkarenko] | |
тем, что он сохраняет логи в локальном хранилище и не ломает docker logs (мы не говорим про docker-ee) | |
kvaps, [11.08.19 12:01] | |
[In reply to Alexander Shinkarenko] | |
1. Собираются не только логи докера, но также и все системные логи тоже, один единственный демон journalbeat на ноду передаёт их все в эластик | |
2. Journald - является central point для всех логов в системе. Докер пишет логи в системный journald а не складывет в json рядом с контейнером. | |
3. Бинлог journald занимает в десятки меньше места чем текстовые логи, тем более в формате json, кроме того | |
Journald автоматически ротейтит все логи | |
4. Journalbeat поддерживает т.н. cursor, т.е. умеет запоминать позицию где остановился, и после перезапуска начинать с неё же | |
5. Не нужно заморачиваться с настройкой часов и таймзон для контейнеров. Journald автоматически пишет правильное время системы. | |
6. Ну и в добавок вышеупомянутые add_kubernetes_metadata и decode_json_fields, позволяют, без проблем, обогатить логи метаданными из кубернетиса и рекурсивно распарсить JSON в логах | |
kvaps, [11.08.19 12:08] | |
[In reply to Ivan Urgent] | |
Да, то есть теперь можно не думать о настройке каждого приложения отдельно: если контейнер пишет лог в JSON, он будет автоматически распарсен и засунут в эластик | |
Павел Селиванов, [11.08.19 12:23] | |
[In reply to kvaps] | |
Все правда. | |
Две вещи из за которых я отказался от логов всего и вся в journald: | |
1. Ограничение на длину лога. Как минимум json бывает разрывает и это не очень. Неприятней если разрыв случается в логе на русском. Разрывает посередине буквы и в итоге сохраняет кракозябру в конце и начале кусков сообщения вместо буквы. | |
2. Есть лимиты по сообщениям в единицу времени. Тюнится в конфиге, но всегда упирается в самое неподходящее время. При достижении рейтлимита начинает просто отбрасывать сообщения. | |
Если кто решит перейти, нужно учитывать. | |
Anton Patsev, [11.08.19 13:07] | |
[In reply to Павел Селиванов] | |
Чем теперь собираете сисмные логи? | |
Павел Селиванов, [11.08.19 17:30] | |
[In reply to Anton Patsev] | |
Одним fluentbitом. Логи контейнеров из файлов, логи системы из journald. | |
Vadim Rutkovsky, [11.08.19 17:31] | |
[In reply to Павел Селиванов] | |
Ограничение на размер сообщения или всего лога? | |
Anton Patsev, [11.08.19 17:36] | |
[In reply to Павел Селиванов] | |
Обычные не JSON логи собираете fluentbit, а логи контейнеров и системные логи journald? Правильно понял? | |
kvaps, [11.08.19 18:29] | |
[In reply to Vadim Rutkovsky] | |
При достижении определённой величины journald создаёт новый файл, емнип 250мб по умолчанию | |
Павел Селиванов, [11.08.19 19:54] | |
[In reply to Vadim Rutkovsky] | |
Одного сообщения. Если я правильно помню то кап 2048 байт. | |
Павел Селиванов, [11.08.19 19:55] | |
[In reply to Anton Patsev] | |
Системные демоны пишут логи в журналд. Контейнеры в файлы (json log driver). Из обоих источников забирает один и тот же fluentbit с двумя инпутами. | |
Vadim Rutkovsky, [11.08.19 19:56] | |
[In reply to Павел Селиванов] | |
https://github.com/systemd/systemd/commit/ec20fe5ffb8a00469bab209fff6c069bb93c6db2 - тоже твикается | |
Павел Селиванов, [11.08.19 20:01] | |
[In reply to Vadim Rutkovsky] | |
Круто 👍 | |
Журналд растёт над собой. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment