четверг, 14 февраля 2013 г.

rsyslog в Ubuntu Server 12.04 (syslog-server)

Понадобилось со свичей собирать логи, чтобы в случае каких поломок всегда можно было посмотреть, а что собственно происходило. Из всех вариантов syslog серверов был выбран rsyslog, как вроде что-то умеющий и развивающийся.
И так, приступим:


Для начала надо установить веб-сервер.
Простейший способ установить LAMP в Ubuntu всего в 3 команды:
sudo apt-get install tasksel - устанавливаем утилиту TaskSel для выбора ролей сервера
sudo tasksel - запускаем и выбираем LAMP, дальше следуя указаниям
sudo apt-get install phpmyadmin - установить phpmyadmin для управления базой
А теперь собственно Syslog. 

1. Устанавливаем сам rsyslog
sudo apt-get install rsyslog
2. Устанавливаем модуль, чтобы в дальнейшем писать все в SQL-базу и смотреть логи через веб-морду 
sudo apt-get install  rsyslog-mysql
Вся настройка размещена в нескольких файлах:
/etc/rsyslog.conf  основной конфигурационный файл
/etc/rsyslog.d/50-default.conf конфигурация правил
/etc/rsyslog.d/mysql.conf конфигурация SQL модуля
3.1 В файле  /etc/rsyslog.conf в разделе Modules надо раскоментировать модули через которые мы собираемся получать логи, в моем случае это
#Provide UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
514 - номер порта, было бы хорошо его изменить, в целях безопасности, но мои железки такой жест не поймут, оставляем как есть.

Все остальное без изменений и переходим к файлу /etc/rsyslog.d/50-default.conf
В этом файле собраны правила для записи логов в разные файлы, структура очень гибкая, можно легко настроить под себя.
3.2 На свичах выставлено facility local6, так что остается лишь добавить строчку:
local6.* /path/switch.log
Где * заменяет адреса с которых принимать логи, легко можно заменить на 10.10.10.0/24

3.3 Переходим к последнему файлу mysql.conf. Тут настраивать особо ничего не надо:

Вписываем правило для сбора логов и настраиваем буферизацию, чтобы избежать потери сообщений, получаем следующий текст:
local6.* :omysql:localhost,Syslog,rsyslog,monitor
#Buffering stuff
$WorkDirectory /var/rsyslog/work
$ActionQueueType LinkedList
$ActionQueueFileName bdq
$ActionResumeRetryCount -1
4. Установка веб-морды
4.1 Скачиваем и распаковываем
# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.5.6.tar.gz 
# tar xf loganalyzer-3.5.6.tar.gz 
4.2 Копируем в рабочую папку LAMP-сервера
mkdir /var/www/loganalyzer 
cp -r loganalyzer-3.5.6/src/* /var/www/loganalyzer
4.3 Создаем пустой конфиг файл
touch /var/www/loganalyzer/config.php
 chmod 666 /var/www/loganalyzer/config.php
4.4 Заходим на http://10.0.0.1/loganalyzer
Дальше установка идет в графическом режиме, для начала нужно нажать "here", после чего проверются права на config.php.
Далее выбираем желаемые настройки, отдельно хочу отметить параметр Enable User Database, можно выбрать для создание базы данных пользователей, с разными правами доступа к анализатору. 
Дальше настраиваем источник логов для анализа:

Source Type = MYSQL Native
Select View = Syslog Fields
Table type = MonitorWare
Database Host = localhost
Database Name = Syslog (case sensitive)
Database Tablename = SystemEvents (case sensitive)
Database User = rsyslog
Database User = (whatever you made it in step 2)
Enable Row Counting = no
На этом установка заканчивается.
Если логи сохраняются как в SQL-базу, так и в обычный лог-файл будет не лишним настроить ротацию логов, а так же запуск процессов от отдельных пользователей.
---------------------------------------------------------------------------------------------
Ссылки по теме:
http://www.k-max.name/linux/syslogd-and-logrotate/
http://www.k-max.name/linux/rsyslog-na-debian-nastrojka-servera/#links
http://www.canonical.com/about-canonical/resources/white-papers/centralised-logging-rsyslog
http://www.bog.pp.ru/work/syslog.html#linux
http://www.syslog.org/logged/establishing-a-hardened-syslog-log-server/ Хорошая статья по защите сервера
https://supportforums.cisco.com/thread/140029 общие мысли на тему защиты



Комментариев нет:

Отправить комментарий