Rsyslog и LogAnalyzer — поднимаем сервер логирования на Linux
LogAnalyzer – это web приложение, которое предназначено для просмотра логов системных событий, полученных от syslog, при помощи веб-браузера.
Rsyslog – это приложение, представляющее собой расширение стандартного демона syslog, одной из особенностью которого является возможность сохранять события в БД MySQL.
При помощи двух этих программ, можно создать централизованный сервер логов, где можно будет просматривать все события от различных устройств в сети, с удобным архивированным поиском событий на всех сетевых устройствах в сети. В данной статье будет описана процедура установки на Linux CentOS ( как установить Centos? ) службы Rsyslog (сбор событий syslog) и LogAnalyzer (предоставляет отличный интерфейс для просмотра и поиска по собранным логам).
Сначала необходимо установить ряд дополнительных пакетов RPM. Т.к. службы LogAnalyzer, Rsyslog и MySQL будут работать на одном сервере, нужно установить следующие пакеты:
# yum install httpd php mysql php-mysql mysql-server wget rsyslog rsyslog-mysql
Теперь нужно удостоверится, что MySQL и Apache настроены на автоматический запуск, после чего запустим их:
# chkconfig mysqld on # chkconfig httpd on # service mysqld start # service httpd start
По умолчанию, пользователь root БД MySQL, имеет пустой пароль, поэтому следует обезопасить конфигурацию, задав новый пароль:
# mysqladmin - u root password NewPassword
Далее импортируем схему базы данных rsyslog в MySQL. В зависимости от версии rsyslog, измените путь к файлу “createDB.sql”.
# mysql - u root - p < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql
Рекомендуется ограничение доступа приложений к базе данных, поэтому мы создадим специального пользователя для доступа к БД rsyslog. Для ещё большего затягивания настроек безопасности, можно создать отдельные учетные записи для rsyslog и LogAnalyzer. Необходимо предоставить доступ пользователя rsyslog к базе MySQL только с локального интерфейса localhost. Также мы должны выполнить MySQL команду “flush privileges” для немедленного применения всех прав.
# mysql - u root - p mysql mysql> GRANT ALL ON Syslog.* TO rsyslog@localhost IDENTIFIED BY 'Password'; mysql> flush privileges; mysql> exit
Теперь пора перейти к редактированию файла”/etc/rsyslog.conf”. Здесь нужно настроить пересылку сообщений syslog в базу данных MySQL. Первая команда загружает драйвер MySQL. Во второй строке мы говорим, что необходимо принимать логи любого уровня важности от “authpriv”, куда включены большинство важных сообщений. Если необходимо сохранять все системные сообщения в MySQL, нужно указать *.*. Мой сервер БД MySQL слушает на адресе 127.0.0.1, Syslog – это имя базы MySQL, и, наконец, указываем имя и пароль MySQL пользователя rsyslog. Здесь можно настроить сбор и запись любых сообщений, каждую комбинацию нужно отделять «;» (например, mail.*;authpriv.* : ommysql…).
$ModLoad ommysql authpriv.* : ommysql:127.0.0.1,Syslog,rsyslog,Password
Теперь нам нужно выключить существующую службу syslog и включить rsyslog:
# chkconfig syslog off # service syslog stop # chkconfig rsyslog on # service rsyslog start
Настала пора скачать LogAnalyzer. Последнюю версию можно найти тут: http://loganalyzer.adiscon.com/downloads.
Или скачать LogAnalyzer прямо с Linux сервера (должен быть установлен wget):
# cd ~ # wget http://download.adiscon.com/loganalyzer/loganalyzer-3.0.0.tar.gz
Распакуем файлы LogAnalyzer:
# tar zxvf loganalyzer-3.0.0.tar.gz
Теперь нужно скопировать файлы LogAnalyzer в каталог веб-сервера Apache (стандартный конфиг).
# mv loganalyzer-3.0.0/src /var/www/html/loganalyzer # mv loganalyzer-3.0.0/contrib/* /var/www/html/loganalyzer/
Перейдем в созданный каталог LogAnalyzer, запустим скрипт configure.sh. В результате создастся пустой файл конигурации config.php, который наполнится в следующих шагах.
# cd /var/www/html/loganalyzer # chmod u+x configure.sh secure.sh # ./configure.sh
Настраиваем LogAnalyser
Для дальнейшей настройки LogAnalyzer нам понадобится веб-браузер. В любимом интернет-браузере наберите http://web1/loganalyzer. (web1 – имя нашего web1 сервера, loganalyzer – каталог apache)
В середине окна выберем ссылку “Click here to Install” и далее кнопку «Next».
Настроим параметры отображения журналов и опять нажмем «Next».
Теперь нужно указать адрес сервера с базой данных, имя пользователя и пароль для доступа к ней (БД называется rsyslog). Нажав кнопку «Next», видим результат проверки правильности введенных данных и корректность подключения.
И последний этап.
В том случае, если все настроено правильно, должна открыться главная страница LogAnalyzer, на которой по мере получения будут отображаться логи. Т.к. в настройках стоят — логирование событий типа “authpriv”, это означает, что в лог будут попадать такие события, как вход/выход пользователя, или же вызов команды переключения пользователя (su).
Настройка Rsyslog для удаленного сбора логов
Теперь, когда нам есть чем обрабатывать логи, можно переходить к настройке службы rsyslog для сбора, непосредственно, самих событий syslog с различных сетевых устройств. Сначала необходимо сконфигурировать сетевой экран, чтобы он пропускал входящий трафик по 514 порту. Можно добавить два правила, разрешающих как TCP, так и UDP трафик. По умолчанию syslog принимает только сообщения, отправленные по порту 514 UDP, однако в rsyslog добавлена возможность принимать и TCP трафик. Добавьте в файл “/etc/sysconfig/iptables” следующие правила:
-A RH-Firewall-1-INPUT - p udp - m udp --dport 514 - j ACCEPT
-A RH-Firewall-1-INPUT - p tcp - m tcp --dport 514 - j ACCEPT
Перезапускаем iptables:
# service iptables restart
Теперь нужно настроить rsyslog для приема входящих сообщений syslog. Настраиваем прием сообщений по TCP/ UDP от localhost и всех хостов в подсети 192.168.20.0. В файл “/etc/rsyslog.conf” нужно добавить следующие строки (перед стройкой, где настраивалась связь с базой MySQL).
$AllowedSender UDP, 127.0.0.1, 192.168.20.0/24
$AllowedSender TCP, 127.0.0.1, 192.168.20.0/24
Не забудьте перезапустить службу rsyslog на центральном сервере ведения логов:
# service rsyslog restart
Следующий этап – настройка удаленных клиентов для отправки событий на центральный сервер rsyslog. Если на клиенте запущен rsyslog, в файл “/etc/rsyslog.conf” необходимо добавить, например, следующую строку:
authpriv.* @192.168.30.110
Перезапускаем сервер rsyslog на клиенте и пробуем зайти/выйти на данную систему. Если мы ничего не упустили, на веб странице LogAnalyzer появится соответствующее событие!
Сервер логирования готов к работе!
Давно искал себе что-то подобное…на днях попробую настроить по вашему гайду:)
Настроил сразу WSUS и логирование. Почти из коробки — по гайдам. Очень толково написаною