Open-Club.Net Проект полностью ориентирован на Open Source-подход(изучаем, настраиваем, устанавливаем и общаемся о Linux).
Мы в соц. сетях:
Главная » Статьи » Серверы [ Добавить статью ]

Настройка syslog для сбора логов с серверов на одном сервере
MooSE 2009-01-29 02:32:07
Проверил: MooSE

При большом количестве сервером становится неудобно обходить все сервера чтобы просмотреть на них системный журнал и появляется желание системные журналы со всех серверов собрать в одном месте.

В этом случае можно воспользоваться возможностью большинства реализаций syslog-демонов обмениваться информацией с другими syslog-серверами используя стандартный протокол. Далее будет показано как настроить сбор и хранение логов с нескольких серверов на один.

Начальные условия:

  • Серая сеть 192.168.2.0/24, в которой у каждого сервера есть IP-адрес.
  • Сервер для сбора логов. Имеет адрес 192.168.2.1, работает под управлением Debian и на нём запущен syslog-ng.
  • Некоторое количество серверов под управлением Debian, на всех установлен и запущен syslog-ng.
  • Некоторое количество серверов под управлением FreeBSD, на всех установлен syslogd.

Переходим к решению задачи. Для начала сконфигурируем syslog-ng на всех серверах под управлением Linux. Для этого нужно добавить в файл /etc/syslog-ng/syslog-ng.conf следующие строки:

# Описываем новое хранилище логов.
destination df_remote {
udp("192.168.2.1");
};

# Описываем фильтр, определяющий какие именно сообщения будут отсылаться на удалённый сервер.
filter f_remote {
level(info,notice,warn);
};

# Настраиваем логгирование выбранной информации на удалённый сервер.
log {
source(s_all);
filter(f_remote);
destination(df_remote);
};

И перезапускаем syslog-ng:

invoke-rc.d syslog-ng restart

Следующим шагом настраиваем syslogd на серверах под FreeBSD. Здесь всё чуть проще: нужно добавить в файл /etc/syslog.conf строку:

*.* @192.168.2.1

И перезапустить syslogd:

/etc/rc.d/syslogd restart

Теперь остаётся только настроить сервер логов. Ранее, настраивая сбор логов с Wi-Fi точки, мы уже настраивали сбор логов с одного хоста, однако при большом количестве серверов затруднительно прописывать каждый из них отдельно, потому в этот раз поступим немного иначе.

Сейчас мы настроем сбор логов со всех серверов сразу, для этого нужно добавить следующие строки в файл /etc/syslog-ng/syslog-ng.conf на сервере сбора логов:

# Определяем новый источник: сеть.
source s_udp {
udp();
};


# Описываем фильтр, который будет из всей кучи сообщений выбрить сообщения от хостов из нашей сети.
filter f_remote {
host("192.168.2.*");
};

# Описываем хранилизе логов.
# Логи будут находится в директории /var/log/remote
# и иметь имя: <IP-хоста>-<уровень>.log
destination df_remote {
file("/var/log/remote/$HOST-$LEVEL.log");
};

# Настраиваем логгирование
log {
source(s_udp);
filter(f_remote);
destination(df_remote);
};

Создаём директорию для логов:

mkdir /var/log/remote

Перезапускаем syslog-ng:

invoke-rc.d syslog-ng restart

На этом настройка заканчивается. Через некоторое время в директории /var/log/remote начнут появляться файлы логов.

Приятной работы!



Источник: http://ylsoftware.com/news/490
Категория: Серверы | Добавил: Root (05.02.2009)
Просмотров: 3624 | Рейтинг: 4.0/1
Похожие материалы:
Всего комментариев: 0
ComForm">
avatar
Профиль
Поиск
Категории раздела
Участвуйте в опросе
Эффективное средство защиты от вирусов
Всего ответов: 15
Статистика

Яндекс.Метрика

Онлайн всего: 3
Гостей: 3
Пользователей: 0

Нас уже: 1302 Линуксоидов
Сегодня нас посетили следующие Линуксоиды -