[В процессе] Централизованный сбор, хранение и просмотр логов
Задачи
- Централизованный сбор, хранение и просмотр логов
- Хранение данных в SQL (PostgreSQL)
- Сбор с *nix, windows, сетевого оборудования
- Просмотр при помощи веб-интерфейса
Установка
PostgreSQL
Обновления выходят регулярно, версии 8.4.* вполне подходят
# sudo apt-get install postgresql postgresql-contrib
Изменяем пароль администратора БД по-умолчанию на что-нибудь более безопасное:
$ sudo su postgres -c psql template1 template1=# ALTER USER postgres WITH PASSWORD 'your-password-here'; template1=# \q
Изменяем пароль пользователя, под которым запускается PostgreSQL:
$ sudo passwd -d postgres $ sudo su postgres -c passwd
Устанавливаем так называемый «admin pack», который включает логирование и мониторинг для сервера:
$ sudo su postgres -c psql < /usr/share/postgresql/8.4/contrib/adminpack.sql
Если нужно иметь возможность доступа к PostgreSQL снаружи, редактируем файл /etc/postgresql/8.4/main/postgresql.conf
Меняем
#listen_addresses = 'localhost'
на
listen_addresses = '*'
и включаем шифрование пароля:
password_encryption = on
Для нормальной работы лучше поступить классически, а именно завести двух пользователей: syslog и logwriter. Пользователь syslog будет администратором базы syslog, а пользователь logwriter будет только добавлять данные.
Таблицы в нашу базу syslog-ng добавит автоматически.
$ sudo su postgres -c psql postgres=# CREATE ROLE syslog WITH LOGIN; postgres=# CREATE ROLE logwriter WITH LOGIN; postgres=# \password syslog # Использование функции \password безопаснее, postgres=# \password logwriter # так как пароль не сохранится в истории. postgres=# CREATE DATABASE syslog OWNER syslog; postgres=# \q
Добавляем в файл /etc/postgresql/8.4/main/pg_hba.conf разрешение для этих двух пользователей (чтобы они могли подключиться к PostgreSQL.
# TYPE DATABASE USER CIDR-ADDRESS METHOD host syslog logwriter 192.168.0.1/24 md5 host syslog syslog 192.168.0.10/32 md5
При необходимости прописываем всех пользователей, кто может подключаться к серверу.
Перезапускаем демона:
$ sudo service postgresql-8.4 restart
Syslog-ng
Ubuntu 10.04.4 LTS
# aptitude show syslog-ng | grep Version Version: 2.0.9-4.2
А текущая актуальная версия уже 3.4.
Поэтому ищем PPA поновее.
Можно использовать http://asylum.madhouse-project.org/projects/debian/
# sudo echo " " >> /etc/apt/sources.list # sudo echo "## Syslog-ng repository" >> /etc/apt/sources.list # sudo echo "deb http://packages.madhouse-project.org/ubuntu lucid syslog-ng" >> /etc/apt/sources.list # sudo echo "deb-src http://packages.madhouse-project.org/ubuntu lucid syslog-ng" >> /etc/apt/sources.list # # wget http://packages.madhouse-project.org/debian/archive-key.txt | sudo apt-key add - # # sudo apt-get update # sudo apt-get install syslog-ng syslog-ng-mod-sql