Bogdan (SirEdvin)
У меня есть логи из приложения в таком формате: {"remote address": "127.0.0.1", "forwarded_for": "127.0.0.1, 127.0.0.1", "username": "-", "request method": "GET", "path": "/path1/path2/path3/", "query": "", "protocol": "HTTP/1.0", "status": "200", "response lenght": "4667", "refferer": "-", "user agent": "Go-http-client/1.1", "request time": "0.035766", "timestamp": "[27/Aug/2018:08:12:22 +0000]"} Которые я отправляю в rsyslog под тегом my-app-704, следовательно, дальше я хотел бы домиксовать пару тегов типо hostname, tag и отправить это все чудо в elsaticsearch. Думаю, фильтр по тегу вполне могу использовать, так как похоже не будет. Ну и так как у меня не очень есть опыт в rsyslog, в целом застрял аж на фильтрации :)
Bogdan (SirEdvin)
Ну и вопрос в том, можешь ли подсказать, пожалуйста, как вытащить из json поля и запихнуть их в es? Для второго, как я понимаю, вполне подойдет этот гайд: https://www.rsyslog.com/rsyslog-and-elasticsearch/
Sergey
Навскидку и скоренько: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-structured_logging_with_rsyslog
Sergey
Здесь как раз добавление разных полей
Sergey
А вот модуль, который сделает из прилетевшего сообщения набор полей: https://www.rsyslog.com/doc/v8-stable/configuration/modules/mmjsonparse.html
Anton
а rsyslog может одновременно писать в файл и в эластик?
Sergey
да, достаточно просто указать ему два модуля output
Bogdan (SirEdvin)
Класс, простой перезапуск rsyslog поломал все. Люблю убунту
Sergey
Класс, простой перезапуск rsyslog поломал все. Люблю убунту
Для продакшн-использования есть другие дистрибутивы 😊
Bogdan (SirEdvin)
Нет, не говори CentOS
Sergey
Нет, не говори CentOS
<younameit> 😊
Bogdan (SirEdvin)
Хотя мне реально интересно, как я смог поломать syslog перезапуском ...
Sergey
сокеты?
Sergey
.....ибо в /run временные каталоги могут управляться systemd'шным скриптом.
Bogdan (SirEdvin)
Что-нибудь было куда-нибудь проброшено?
/dev/log сокет вообще занят journald, я так и не могу вкурить как оно работает)
Bogdan (SirEdvin)
Там еще забавная история с тем, что оно при помощи какой-то матери дублирует логи в journald и в syslog, хотя journald явно не указано "дублируйся в syslog"
Sergey
в конфиге rsyslog присутствует модуль "imjournal"
Sergey
https://www.rsyslog.com/doc/v8-stable/configuration/modules/imjournal.html
G72K
Пиитер лучший город правда не каждый может там жить
Я тут на выходные в Москву съездил, впечатлило очень-очень. Уличный фестиваль "времена и эпохи" с реконструкторами по всему бульвару прямо в центре Столицы, с кучей разного интерактива - такое врятли где встретишь.
Bogdan (SirEdvin)
По конструкции rsyslog похож на iptables - модули входа, модули преобразования, модули выхода. Есть ещё несколько служебных, но на общую конструкцию это не влияет.
Хм ... ладно, а что я тут делаю не так? if $syslogtag == "my-app:" then { action(type="omfile" file="/var/log/my-app.log") } И в syslog оно попадает с тегом my-app вроде ... Но в файл ничего не пишется(
Bogdan (SirEdvin)
А, ясно, load не сделал(
Bogdan (SirEdvin)
Хотя это все равно не очень помогло, фильтр так и не срабатывает)
Sergey
потому что убери двоеточие 😊
Sergey
как минимум
Bogdan (SirEdvin)
Все равно не помогло :( Теперь выглядит как-то так
Bogdan (SirEdvin)
if ($syslogtag == "my-app") then { action(type="omfile" file="/var/log/my-app.log") stop }
Bogdan (SirEdvin)
Даже $programname startswith 'my' не помогает :)
Bogdan (SirEdvin)
Что-то у меня даже action без условий не работает, как обычно :(
Tadeusz
эй, адепты zsh, я тут решил попробовать заюзать сие поделие, как вырубить этот сраный auto complete в виде переключения табами по паттернам?
Tadeusz
пусть бы оно тупо листинг показывало ("как у всех")
Max
Хуяссе, а зачем его выключать?
Tadeusz
➜ ~ uptime 13:54 up 41 days, 22:04, 3 users, load averages: 2.03 2.21 2.37 ➜ ~ s !! ➜ ~ s uptime 13:54 up 41 days, 22:04, 3 users, load averages: 2.03 2.21 2.37 ➜ ~ а еще такое можно вырубить?
Tadeusz
т.е. без подтверждения выполнять
Max
О_о
Max
Яннп
Tadeusz
Хуяссе, а зачем его выключать?
затем что он сбивает меня… вводишь do<tab> он уже тебе переносит твой "курсор" на всевозможные варианты, мне же надо тупо листинг, я сам допишу что мне надо
Tadeusz
иначе теряется время на прощелкивание не нужных вариантов команд
Tadeusz
".zshrc" 104L, 3345C written ➜ ~ source !$ ➜ ~ source .zshrc ➜ ~ и вот это бесит
Max
иначе теряется время на прощелкивание не нужных вариантов команд
у меня по первому табу делает листинг, по второму уже перебирает
Tadeusz
"любая другая" оболочка выполнит эту команду source !$, а тут zsh отобразит ее и попросит подтвердить ее
Max
я не понял на кой ляд тебе zsh
Tadeusz
дерзко броско молодежно
Евгений
Единственная фишка zsh — в безумных конфигах автодополнения
Tadeusz
мда, похоже, придется привыкать к этому "нововведению" в моей жизни
Tadeusz
чтоб вы понимали насколько я староёб % echo $SHELL /bin/tcsh
Max
так оно ж дает листингпо табу
Tadeusz
% alias | wc -l 137
Tadeusz
так оно ж дает листингпо табу
ну когда ты вместо одного таба стукнул пару раз, то все пропало))
Tadeusz
да, привычка с bsd осталась, а так и на маках и в луниксах работает…
Tadeusz
.tcshrc* .tcshrc.DragonFly* .tcshrc.FreeBSD* .tcshrc.Linux .tcshrc.alias* .tcshrc.bind* .tcshrc.bindkey* .tcshrc.complete* .tcshrc.orig* .tcshrc.pysave* .tcshrc.set* .tcshrc.user*
Max
ну когда ты вместо одного таба стукнул пару раз, то все пропало))
надо меньше нервничать и не долбить по табу )
Tadeusz
ну тут дело привычки, и скорость)
Tadeusz
а вот к correctall привык 🙂
Tadeusz
не не не, нафиг эти хоткеи...
Tadeusz
а кто какие темы юзает?)
Navern
Кстати, раз уж речь зашла про рсислог, кто нибудь там как то хэндлит мультистрочные сообщения?)
Denis
В инпуте опция есть, можно описать регуляркой с чего начинается мессадж
Denis
И это будет оказываться в мсг
Navern
В инпуте опция есть, можно описать регуляркой с чего начинается мессадж
Если у тбя многострочные логи разнын инстансы пишут, то они могут смиксоваться
Denis
если у тебя могу смиксоваться, то у меня плохие новости.
Navern
Это самый интересный момент
Denis
если у вас 1 мультилайн мессадж может быть прерван во время записи другим, то вы даже в структурированных логах с "длинными" сообщениями можете получить их "разрывы" и ваш парсинг будет кидаться ошибками как бы.
Denis
как бы если вы не можете "выравнивать" потоки записи. то как бы увы.
Jakhongir
всем привет, сразу признаюсь я не сталкивался с такой вещью. Если короче, у меня spring mvc проект - локально нормально работает, но когда выложу на сервер - там не запускается (правда что root.war распакуется, но проект не стартует). Смотрю в лог, там указано: 127.0.0.1 - - [27/Aug/2018:16:48:19 +0500] "GET / HTTP/1.0" 404 - 127.0.0.1 - - [27/Aug/2018:16:48:19 +0500] "GET / HTTP/1.0" 404 - 127.0.0.1 - - [27/Aug/2018:16:48:19 +0500] "GET / HTTP/1.0" 404 - 127.0.0.1 - - [27/Aug/2018:16:48:19 +0500] "GET / HTTP/1.0" 404 - 127.0.0.1 - - [27/Aug/2018:16:52:33 +0500] "GET / HTTP/1.0" 404 -
Jakhongir
так, что это значит, помогите пожалуйста
Iskander
в лог чего смотришь?
Jakhongir
а, смотрю в лог самого проекта, хотел спросить, есть ли какой-то лог (ну, не знаю самого tomcat) где, можно как-то детально все посмотреть из-за чего такое происходит?
Ivan
catalina.out?
Jakhongir
catalina.out?
это где-то хранится или какая-то функция или...?
Ivan
это файл так называется, хранится где-то в /var/log, но зависит от того как вы запускаете ваше добро