Когда-то давно настроил хранение syslog в mysql и написал примитивный клиент для просмотра на C#. Просто просмотр базы и фильтры по всем полям. Было очень удобно.
Сейчас работаю на linux машине и старый клиент тут не работает, а на написание нового нет времени. Прежде чем я начну изобретать велосипед - подскажите, может быть есть что-то готовое и простое (ELK или graylog в моём случае это перебор). В идеале это докер контейнер, который можно развернуть и он сразу будет слушать стандартные syslog сообщения и показывать их в каком-нибудь веб-интерфейсе с возможностью фильтрации.
я не совсем понимаю зачем вам sql
Основная задача sql - то чего не может файловое хранение это транзакции, параллельной записи у вас там не намечается следовательно этот плюс пропадает, зачем перетаскивать то что и так прекрасно работает в демона который замечу может отвалиться, крашнуть таблицу и тд не совсем понятно ?
удобная фильтрацияч ?
grep отлично фильтрует и ищет
tail -f - работает с потоком
sed awk тоже вроде никуда не делись
Вот и вопрос а зачем?
Вот пример реально первого попавшегося мне в истории поиска по логу
как вы это собираетесь сделать через GUI ?
боюсь что для действительно комфортной работы а главное эффективной вам нужно знать консольные команды как свои пальцы только в таком случае вы получаете мощнейший инструмент аналитики логов.
Как следствие вам не потребуется GUI.
Именно по этой причине в линукс все плохо с GUI утилитаи, те кто плохо владеют консолью как правило не в состояние написать такую утилиту, а те кто умеют пользоваться консолью не собираются ее писать поскольку она просто не нужна. И это касается не логов а вообще всего линукс.
А красивые графики и тд это здорово но в реальной жизни у вас есть конкретные задачи.
CityCat4, что не так? Виктор Таран, это философский и холиварный вопрос. я уверен что разные подходы оправданы в разных ситуациях. редко бывает только одно правильное мнение.
зы БД нужна например для постройки индексов в том числе полнотекстовых. ваш като-греп встанет колом на любом мало-мальски приличном файле
Илья Т., ЭЭ у меня лог около 20 ГБ ниче не встает никуда, встать может только при переполнение массива, но в таком случае вам нужно отказаться от регулярки при старте в таком случае таких проблем не будет ни при каком размере файла.
sphinx прекрасно может решить проблему с индексами, но не совсем понимаю что вы там собрались индексировать и что вы там собираетесь быстро искать.
НУ и да подходы у всех разные, но чем чаще вы пользуетесь возможностями самой ос
тем меньше вам нужно стороннего ПО
В свою очередь я предпочитаю пользоваться именно стоковыми возможностями даже не bash а sh поскольку последнее более распространено и при работе с незнакомым сервером у вас будет возможность так же комфортно работать как и раньше, любой костыль ( замечу даже удобный) требует установки а порой это сделать попросту невозможно, так что проще приучиться работать с потоком ввода вывода, поверьте у вас просто не появится идеи зачем вам нужно такое логирование.
Поскольку просто читать логи как правило не требуется а требуется анализ, подсеты сумировани групирование и тд.
Виктор Таран, абсолютно с вами согласен, но я в силу своей ущербности предпочитаю есть столовыми приборами а не руками, добираться в нужное мне место на транспорте а не пешком, даже в туалете я регулярно использую "костыль" в виде туалетной бумаги. Когда-нибудь моя любовь к подобным костылям сыграет со мной злую шутку.
Илья Т., юмор это всегда здорово, тем более лучше срача.
правда аналогия тут немного другая, в частности я не призываю вас писать на asambler посколкьу да с костылями ходится как-то эффективнее
я не призываю вас писать в бинарном коде поскольку в 99% случаях это будет просто потеря времени.
Я не призываю вас пользваться gentoo поскольку для повседневных задач реально проще пользоваться чем-то более приземленным.
Вот только проблема наступает в том месте где нужна аналитики действий того что нужно сделать, где нет манов гайдов готовых решений.
Где вам нужно самому тварить.
И тут наступает переломный момент все вышесказанное становится признаком "проффесионализма" притом высочайшего уровня.
У вас есть вакумный выключатель на 400К ват и да его можно запрограмиить только на айсемблере мало того еще и кастомного со своими инструкциями, разница в хорошем электрике и плохом будет только в том что один из них сможет это сделатьа другой нет, розетку они оба соберут нормально.
Разработчик пишуший бинарный код в состояние патчить уже компилированные exe файлы, заниматься реверс инженерингом. Там нет никаких костылей и тапочек, чистый хардкод, тупо его скил.
Если вам нужно разработать свою железку, тупо брать за основу для нее ubuntu вы возьмете gentoo поскольку как минимум тебе нжунопересобрать собственное ядро убрав из него все лишне, притом лишнее именно тебе.
И да тут нет никакх тапок и бумаги тут только твое чистое понимание работы.
То же касается и анализа данных Линукс, в самом начале ты ищешь тапки поскольку при переходе с винды очень трудно понять как тут без них вообще работать то.
потом пишешь эти тапки, потом оказывается что их до тебя уже кто-то писал ты начинаешь юзать чужие.
Но функционала не хватает, ты патчишь их поделки выкладываешь свои форки.
А потом ты понимаешь что тебе проще реально все сделать в две строчки чем вее это городить.
А главное все эти поделки нужно с собой таскать ставить и поддерживать в актуальных состояниях. В результате их остается совсем мало ( замечу не 0) а мало
да я предпочитаю юзать htop, чем топ, да я часто пользуюсь mc и даже поиском в нем, хотя да find -exec grep -l намного гибче но в mc обычные задачи решаются просто быстрее.
Все задачи касающиеся логов нештатные, если ты в них полез что-то пошло не так, тебе нужнорешить твою задачу.
Кто -то ддосит один из 600 сайтов, нужно найти кто и как, написать заплатку.
это не сложно но нужно анализировать входящие данные.
у тебя поехала крыша у памяти ты лезишь в логи смотришь
у тебя пошло переполнение памяти
у тебя отваливаются хосты И ТД И ТП
универсального решения тут нет посколкьу твоя задача она уникальна тут нет бумаги.
тут поднимается тупо твой скил, а поскольку ту юзал костыли и бумагу ...
Самый примитивный сислог - netcat, запущенный на определенном порту и пишущий весь вывод в файл. А просмотр - на это в консоли полно инструментов. А вы тут докеры, отдельный софт...
я сейчас так и делаю, но хочется большей дружелюбности. типа выбрать логи за вчерашний вечер, которые по адресам из списка (который я набрал из предложенных вариантов а не из головы) и исключить инфо и дебаги.
грепом конечно так можно, но не удобно.
Люблю syslog-ng, но просто rsyslog для ваших целей тоже подходит.
Фильтрую сообщения с помощью grep, ничего дописывать не пришлось.
Графики терминала мне достаточно чтобы увидеть текст.