Пятница, 26.04.2024, 22:15
Приветствую Вас Гость | RSS
Мой сайт
Главная
Регистрация
Вход
Форма входа

Меню сайта

Категории раздела
Об ОС Windows [137]
В категории размещаются статьи, касающщиеся операционных систем от Microsoft.
Об ОС *Nix [198]
В данной категории собраны статьи об ОС семейства Unix/Linux/FreeBSD/...
Справочные материалы [351]
Справка по всему разделу.
Виртуализация и Облака [46]
Networks & Routing [86]
DataBases [22]

Наш опрос
Оцените мой сайт
Всего ответов: 209

Статистика

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

Главная » Статьи » Системное администрирование » Об ОС *Nix

Сервер логов на rsyslog+loganalyzer+mysql

Сервер логов на rsyslog+loganalyzer+mysql

Автор: m4rkell.


Как-то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутки, остальные просто бьют…после чего принято было решение поднять свой syslog сервер. Хотелось что бы, логи со всех серверов хранились в одном месте, удобно представлялись парсились в бразуере, а так же при появлении ошибок или других нехороших вещей отправляли на мыло месадж. После недолгого гугления изобретать велосипед не стали. И так будем пользоваться следующими вещами:
Rsyslog+loganalyzer+mysql

Поехали. Ставим для начала сам rsyslog он будет принемать логии на 514 порту, и складывать их в базу данных mysql

cd /usr/ports/sysutils/rsyslog4
make install clean

Заменяем стандартный syslogd

/etc/rc.d/syslogd stop

Рихтуем /etc/rc.conf:
syslogd_enable="NO"
rsyslogd_enable="YES"
rsyslogd_pidfile="/var/run/syslog.pid"
rsyslogd_flags="-c4"
mysql_enable=”YES”
apache_enable=”YES”

Редактируем /usr/local/etc/rsyslog.conf и смотрим листинг моего файла.




#### Модули ####
$ModLoad imuxsock
$ModLoad imklog
#$ModLoad immark
$ModLoad ommysql
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$ModLoad ommail

#### Чего посылаем в БД ####
#Правим под свою БД
*.* :ommysql:127.0.0.1,Имя_БД,ПользовательБД,ПарольБД

# Чмодим файлы

$FileOwner root
$FileGroup wheel

######УВЕДОМЛЯЛКА#####

$ActionMailSMTPServer АДРЕС СЕРВЕРА
$ActionMailSMTPPort 25
$ActionMailFrom АДРЕС ОТПРАВИТЕЛЯ
$ActionMailTo КОМУ СЛАТЬ МЫЛО
$template mySubject1,"On host %hostname%, Error-level by serverity"
$template myBody1,"Facility.Serverity: %syslogfacility%.%syslogpriority%
#тут надо убрать перенос!!!!!!!!!!!1
at %timegenerated% on host:
%HOSTNAME%\r\n %msg%"
$ActionMailSubject mySubject1
#seconds interval for mailing
$ActionExecOnlyOnceEveryInterval 10
#expression based filter
if not ($msg contains 'TopLevelSystem'\
or $msg contains 'getConnectorInfo'\
or $msg contains 'failed - Data stale'\
or $msg contains 'DatadiscoveryfailedforConnector' )\
and ($syslogseverity-text =='err'\
or $syslogseverity-text =='crit'\
or $syslogseverity-text =='alert'\
or $syslogseverity-text =='emerg' )\
then :ommail:;myBody1

Далее ставим для поддержки mysql:

cd /usr/ports/sysutils/sysutils/rsyslog4-mysql
make install clean

потом ставим сам мускул если еще не стоит.
Cd /usr/ports/databases/mysql50-server
make install clean

лезем в

cd /usr/ports/sysutils/loganalyzer
make install clean

потянет за собой апач, пыху и пр. приблуды.

Далее лезем в /usr/local/www/ находим папку анализатора и из папки src копируем все /usr/local/www/data

Ну или в конфиге апача правьте , как кому нравится.
Создаем пустой файл
touch config.php
chmod 666 config.php

После установки можно будет изменить права. На 644.

Далее создаем БД Syslog и даем на него полные права пользователю Syslog

Потом закидываем дамп для rsyslog’a лежит он тут:
/usr/local/share/examples/rsyslog/mysql_createDB.sql

Стартуем апач
/usr/local/etc/rc.d/apache start

Лезем на ip тачки

Должна начатся установка loganalyzer. Тут все понятно думаю. Как и что.
Можно создать новую базу для пользователей лог анализа, можно хранить их в файле, это уже на ваш вкус. Создались, добавляем базу Syslog в сурсы….:) Ну вот и все красота вам обеспечена.


Так как это писалось все под ESX\ESXi
То на esx делается следующее под рутом в консоли:

Отредактируйте файл командой:  
nano /etc/syslog.conf

Внизу добавляем строку:
*.* @ip адерс сервера

сохраняем

далее добавляем правило в файрвол
esxcfg-firewall -o 514,udp,out,syslog

сохраняем и применяем правила
esxcfg-firewall -l

рестарт серивса логов
service syslog restart

А в ESXi настройка делается в конфиге хоста, в дополнительных настройках Syslog>remote тупо пишите айпишник и все.


Для юнихов в конфиги rsyslog

*.info;mail.none;authpriv.none;cron.none @@АЙПИ_СЕРВЕРА:514

P.S. При отображении деталей, записей в веб морде, будет выдаваться ошибка (How to resolve the error „No syslog records found (code 8 )?
) необходимо сделать следущее: выполнить запрос к БД через, что угодно, я делал через PhpMyAdmin

ALTER TABLE `systemevents` ADD `Checksum` int(11) NOT NULL 
DEFAULT `0`; AFTER `SystemID`;

При подключении 20 хостов, с отсылкой всех логов *.* БД раздувалась на 100кб миниту...
Расчитывайте свои объемы...

Демка того, что Вы получите в итоге.

Удачи!



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=8&t=29948.

размещено: 2011-01-21,
последнее обновление: 2011-01-21,
автор: m4rkell






Источник: http://www.lissyara.su/articles/freebsd/programms/rsyslog+loganalyzer+mysql/
Категория: Об ОС *Nix | Добавил: admin (22.11.2011)
Просмотров: 2363 | Теги: rsyslog, analizer, PHP, MySQL, syslog | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024