Anonymous
пффф
Anonymous
смысл в этом какой?)
Таймураз
Anonymous
O_o
Anonymous
на что?
Anonymous
вообще задачи нужно решать по мере появления проблем
Anonymous
возьми для начала gelf через udp
twwlf
Щас бы логи по tcp пушить, да
twwlf
И метрики заодно
Таймураз
на что?
Собрать все логи, а потом разом запушить?
Таймураз
не поверишь, но таких вот умников много)
Я не собираюсь реализовывать первую попавшуюся идею
Я обдумываю все варианты и выслушиваю все мнения, прежде чем начать что-то делать
И я вижу, что, возможно, за вашими утверждениями в пользу udp и меньших запарок, должен стоять довод
Но пока что я не вижу, в чем преимущество слать напрямую логи по udp перед их предварительным сбором и отправкой раз в период
Таймураз
Возможно, второй вариант и не поддерживается нигде, я раньше не работал с подобными вопросами
Но тем не менее.
Pavel
Только только настроил на тестовом стенде отправку логов через гелф в елк-стек (через логстеш естественно)
Pavel
Старался по минимуму всё трогать
К логстешу прикрутил плагин на гелф-инпут через новый имадж
В докерфайле
FROM docker.elastic.co/logstash/logstash:5.5.2
RUN logstash-plugin install logstash-input-gelf
и всё
Pavel
конфиг логстеша кидал чутка выше
input {
tcp {
port => 5000
}
gelf {
port => 12201
}
}
output {
stdout {}
elasticsearch {
hosts => "elasticsearch:9200"
}
}
причём он сейчас избыточен (stdout на выходе для теста, можно вырубать; tcp на входе тоже не нужен)
Pavel
ну и туче микросервисов в сворме добавил в описание
logging:
driver: gelf
options:
gelf-address: udp://192.168.8.104:12201
Pavel
всё
Pavel
ну ессно не забыть порт прокинуть
Pavel
Из плюсов - почти всё коробочное, включая тот де лог-драйвер, гелф-инпут-плагин
Бежать по 40 контейнерам и каждому лог настраивать - ИМХО такое себе
Anonymous
Таймураз
А тебе в прошлом
Pavel
Не ругайтеся
Скоро tcp добавят в gelf драйвер судя по всему
Anonymous
А ты не думал что у тебя задача не провально поставлена?
Anonymous
Кстати гелф вообще аки не поддерживает. Гарантии на уровне тисипи тебе по факту мало чего дадут
Anonymous
Можешь в кафку логи пулять
Anonymous
twwlf
в можнодб
Pavel
флаг ACK (Acknowledgement) подтверждение
Таймураз
Bogdan (SirEdvin)
Кто-то использовал zfs или btrfs как storage driver? Как оно там?
Artem
Таймураз
Artem
Но ему тоже вместо логстеша нужен контейнер fluentd, но со сворма у меня норм там все собиралось
Artem
Будет стак efk
Pavel
я бы всё-равно рекомендовал elk
Artem
Так fluent производительные раза в полтора судя по тестам
Artem
И жрет меньше ресурсов
Pavel
ты флюента в каждый контейнер подсовывал?
Таймураз
Вопрос- если я выдаю json строку, распарсят ли ее драйвера логирования?
Artem
Таймураз
На данный момент я хочу обойтись без logstash/fluentd и натравить драйвер напрямую на es
Artem
Даже если и можно так, то сам еластик не будет следить за консистентностью и очередностью запросов
Таймураз
Драйвера тоже за этим не следят?
Artem
Драйвера только формат в основном меняют
Artem
А в случае дефолта, то там системд следит
Таймураз
Вот теперь я понял, почему лучше использовать полноценный elk/efk stack)
Thanks!
Artem
Или efk)
Таймураз
Блин, опередил
Pavel
а ещё оказ-ца можно в логстеш плагин флюента поставить)
Stepan
Ребята
Stepan
Кто-то использовал node js i kubernates ?
Artem
Использует)
Artem
А что там не так?
Pavel
Два вопроса по стеку
1 - в логстеш можно докинуть плагинов на gelf и fluentd. Где-то можно посмотреть, что чем лучше/хуже? (для себя я пока увидел одно преимущество, что fluentd умеет в tcp)
Artem
Производительность?
Pavel
2 - в логстеш с тучи сервисов будут прилетать логи, будут лететь в едином формате (везде один и тот же драйвер будет)
среди логов будет и nginx, и java, и mongo и sql и php и ещё возможно много чего. Каким образом это лучше всего фильтровать?
Artem
У флюента парсер по мне более гибче можно настроить
Pavel
Я сейчас говорю про тот же логстеш, только либо с input-plugin-gelf либо с input-plugin-fluent
Artem
Так инпутами и разделять
Pavel
на разные порты кидать?
Artem
Ну да
Pavel
можно же по полю имени контейнера, к примеру
или ещё как
Artem
То что gelf одно, то что fluent другое, с http, третий
Artem
Ну ты же хочешь разные драйвера в один логстеша писать
Artem
И вот по разным инпутами разные парсинги можно сделать
Artem
Чтоб в итоге все писал в один elastic в json формате
Pavel
не не
я хочу выбрать либо флюент либо гелф
Artem
Т.к. например логи nginx будут отличаться от логов nodejs
Artem
Ну можно и с одним драйвером разные инпутами делать вроде как
Artem
По портам разделяя
Pavel
все сервисы в докерах
всем будет одинаковая настройка, либо лог-драйвер гелф либо флюент
по факту полетит всё в один и тот же логстеш с соответствующим плагином
Pavel
порты не вижу смысла разные прокидывать, если можно всем кидать в один и тот же
далее фильтровать по container_name:tk-dev_nginx к примеру в секции фильтров
Pavel
я новичок полный в elk, если что-то не правильно думаю - поправьте плз
Pavel
По ходу всё правильно думаю