| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование *NIX систем > Парсинг в rsyslog |
| Автор: zett86 24.9.2013, 17:34 | ||||
| Привет, ребята. Чем парсить в rsyslog? Вот кусок конфига и суть: Нужно настроить сервер логирования для разработчиков. У них там свой определенный формат логов, которые нужно красиво залить в базу MySQL. И вот создаю темплейт:
Создаю фильтр local4.* и привязываю к нему темплейт. Логи приходят в таком формате:
где ^ - разделитель. Вот как-то нуна распарсить строку с разделителем и засунуть под темплейт. Кто-то что-то подобное делал? |
| Автор: krypt3r 25.9.2013, 06:11 |
| perl? |
| Автор: zett86 25.9.2013, 10:22 |
| Вариант. Как? То есть как подключить перловый скрипт к сислогу? И как примерно написать скрипт? Как распарсить понимаю.. а вот как принять из сислога (сислог -?> перл -?> сислог) строку и как вернуть в сислог? |
| Автор: krypt3r 25.9.2013, 13:35 |
| Будучи близко не знакомым с rsyslog, я предложил простейшее решение парсить приходящие логи перловым скриптом |
| Автор: zett86 25.9.2013, 16:20 | ||||||||
| 1. Может как-то еще можно это реализовать базовыми средствами? Может можно как-то регекспами в темплейтах? По сути надо как-то распарсить %msg% в шаблоне. Кто-то с таким сталкивался? 2. Или как это можно решить с помощью внешнего скрипта на perl? Вот так я пытаюсь вызвать свой скрипт из rsyslog'a:
Сам скрипт пока простой:
Я просто пытаюсь им создать лог-файл если его нет и выписать туда полученные параметры. Но, увы... ни файла ни параметров...... Если запустить скрипт руками, то файл создается и параметры там есть:
То есть проблемы с вызовом...:
P.S. |
| Автор: zett86 26.9.2013, 18:00 | ||||||||
| Короч решилось через парсинг на уровне шаблона в rsyslog.conf. Могу рассказать как, если кому интересно.. В общем получаем строку
Ее нужно распарсить по разделителю '^' Сделать это можно на уровне шаблона rsyslog'a так.. Создаем шаблон:
(таблица тут кастомная..) Создаем событие:
И так эта регулярка парсит строку по разделителю '^'.. Давайте посмотрим что оно значит..
Но есть ограничение связанное с номером совпадения, максимум можно находить 9 совпадений.. Мне такое не подходит, так как прийдется парсить строки и на 10 и на 14 и больше подстрок... Так что скорей всего еще буду переделывать скриптами, так удобнее менеджить проекты.. так что вопрос о скриптах остается пока в силе.. |
| Автор: zett86 30.9.2013, 12:47 |
| Ну что, никто никогда скрипты к RSysLog'у не потключал?.. |
| Автор: vitalyisaev2 30.9.2013, 17:13 |
| Может cron'ом их запустить? Либо написать небольшой event-based демон с асинхронным вводом-выводом, который будет мониторить изменение логов и делать всё, что тебе надо |
| Автор: zett86 30.9.2013, 17:16 |
| cron не вариант ) ну а мониторить что?.. нуна хватать логи перед записью, парсить и складывать в мускуль.. |
| Автор: zett86 21.10.2013, 12:59 |
| Вопрос все еще открыт.. |