parsa – это парсер логов для Намба файлов. parsa берет логи из боксов файлбара, скачивает их себе, парсит и сохраняет нужную для админов информацию в локальную базу. По анализу этой базы админами принимается решение о прогреве файлов и об удалении файлов
parsa умеет парсить логи за сегодня, за вчера и за любой другой день в прошлом. parsa может работать одновременно с несколькими боксами Намба файлов. parsa помнит то, что она делает с логами и ее можно запускать несколько раз в течении дня.
Очень просто.
-
Нужно подготовить бокс на котором будет стоять ruby версии 1.8, rubygems(нужно скачать rubygems версии 1.6.1 с rubygems.org) и mysql. Возможно потребуется поставить ruby-dev. У этого бокса должны быть ключи для доступа к боксам Намба файлов
-
Нужно склонировать репозиторий parsa
git clone git://github.com/puzanov/parsa.git
-
Поставить bundler и rake
sudo gem install bundler rake
-
Поставить нужные для parsa гемы через bundler
bundle install
-
Создать базу parsa в mysql; пользователя, если требуется и дать ему права на базу
mysql -u root mysql>create database parsa; mysql>grant all on parsa.* to 'root'@'localhost';
-
Подготовить базу для работы с parsa
rake db:migrate
-
Запустить parsa и проверить нет ли ошибок
ruby parsa
parsa считывает файл config.yml в котором указываются боксы Намба файлов, реквизиты доступа и директории для логов.
cp config.default.yml config.yml
Дефолтный конфиг выглядит так:
servers: - host: host1 username: password: remote_dir: /var/log/filebar remote_dir_for_archived_log: /tmp local_dir: /home/user/parsa/logs/host1 log_filename_prefix: access- - host: host2 username: password: remote_dir: /var/log/filebar remote_dir_for_archived_log: /tmp local_dir: /home/user/parsa/logs/host2 log_filename_prefix: access-
На что нужно обратить внимание?
-
значения нужно писать без кавычек
-
local_dir должен быть уникален для каждого хоста. То есть для каждого хоста нужно прописать свою диру, куда будут складываться логи этого хоста. Если у двух хостов будут прописаны одинаковые local_dir, то это пиздец. Наверное следует сделать проверку при запуске parsa, чтобы локальные диры для логов были доступны и чтобы они были уникальны
-
У пользователя username должны быть права на чтение remote_dir и на запись в remote_dir_for_archived_log
-
parsa можно запускать на разных боксах. Если логи слишком большие и у parsa уходит много времени на их парсинг, то можно установить parsa на две или три машины и прописать в конфиге для каждой машины свой пул боксов Намба файлов. Доступ к базе должен быть одинаков
-
исходя из пункта выше можно с уверенностью сказать, что parsa можно запускать на боксах Намба файлов, если удастся установить необходимые для нее библиотеки на Solaris