Централизованный сбор, хранение и просмотр логов

Материал из support.qbpro.ru
  • Задачи

Централизованный сбор, хранение и просмотр логов
Хранение данных в 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

ИСТОЧНИКИ: