Документация по ОС FreeBSD Пятница, 07.02.2025, 03:11
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

Настройка Exilog [2009]
Exilog - инструмент который позволяет красиво визуализировать,
просматривать по всевозможным фильтрам логи Exim через симпатишную веб-морду.
Использует mysql(или postgresql при желании).Написан на perl.

Система, на которой всё ставилось и работает -
/>uname -spr
FreeBSD 6.4-STABLE amd64

1)Устанавливаем сей инструмент из портов 
cd /usr/ports/mail/exilog
 make install clean

2)Создание бд и таблиц. 
mysql -u root -p
password:******
CREATE DATABASE exilog DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON exilog.* TO exilog@localhost IDENTIFIED BY 'exilog';
use exilog;
GRANT ALL PRIVILEGES ON *.* TO exilog@localhost \
IDENTIFIED BY 'exilog' WITH GRANT OPTION;
\q

Дамп таблиц находится -
/usr/local/share/doc/exilog/mysql-db-script.sql

mysql -u root -p *********  \
-D exilog </usr/local/share/doc/exilog/mysql-db-script.sql

Возможные косяки - дамп не импортируется, ругаясь на слишком длинные праймари кей.
у меня наблюдались в таком случае - Mysql 5.1, база в utf-8)
Решение -укоротить их.

Вот дамп (уже подправленный),
который у меня импортировался ровно.     
CREATE TABLE `deferrals` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary NOT NULL default '',
 `timestamp` bigint(20) NOT NULL default '0',
 `rcpt` varchar(200) NOT NULL default '',
 `rcpt_intermediate` varchar(200) default NULL,
 `rcpt_final` varchar(200) NOT NULL default '',
 `host_addr` varchar(15) default NULL,
 `host_dns` varchar(255) default NULL,
 `tls_cipher` varchar(128) default NULL,
 `router` varchar(128) default NULL,
 `transport` varchar(128) default NULL,
 `shadow_transport` varchar(128) default NULL,
 `errmsg` blob,
 PRIMARY KEY (`server`,`message_id`,`timestamp`,`rcpt`(100),`rcpt_final`(100)),
 KEY `rcpt` (`rcpt`),
 KEY `rcpt_final` (`rcpt_final`),
 KEY `server` (`server`),
 KEY `message_id` (`message_id`),
 KEY `timestamp` (`timestamp`),
 KEY `host_addr` (`host_addr`)
 ) TYPE=MyISAM;

 CREATE TABLE `deliveries` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary NOT NULL default '',
 `timestamp` bigint(20) NOT NULL default '0',
 `rcpt` varchar(200) NOT NULL default '',
 `rcpt_intermediate` varchar(200) default NULL,
 `rcpt_final` varchar(200) NOT NULL default '',
 `host_addr` varchar(15) default NULL,
 `host_dns` varchar(255) default NULL,
 `tls_cipher` varchar(128) default NULL,
 `router` varchar(128) default NULL,
 `transport` varchar(128) default NULL,
 `shadow_transport` varchar(128) default NULL,
 PRIMARY KEY (`server`,`message_id`,`timestamp`,`rcpt`(100),`rcpt_final`(100)),
 KEY `rcpt` (`rcpt`),
 KEY `rcpt_final` (`rcpt_final`),
 KEY `host_dns` (`host_dns`),
 KEY `timestamp` (`timestamp`),
 KEY `server` (`server`),
 KEY `message_id` (`message_id`),
 KEY `host_addr` (`host_addr`)
 ) TYPE=MyISAM;

 CREATE TABLE `errors` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary NOT NULL default '',
 `timestamp` bigint(20) NOT NULL default '0',
 `rcpt` varchar(200) NOT NULL default '',
 `rcpt_intermediate` varchar(200) default NULL,
 `rcpt_final` varchar(200) NOT NULL default '',
 `host_addr` varchar(15) default NULL,
 `host_dns` varchar(255) default NULL,
 `tls_cipher` varchar(128) default NULL,
 `router` varchar(128) default NULL,
 `transport` varchar(128) default NULL,
 `shadow_transport` varchar(128) default NULL,
 `errmsg` blob,
 PRIMARY KEY (`server`,`message_id`,`timestamp`,`rcpt`(100),`rcpt_final`(100)),
 KEY `timestamp` (`timestamp`),
 KEY `server` (`server`),
 KEY `rcpt` (`rcpt`),
 KEY `host_addr` (`host_addr`),
 KEY `message_id` (`message_id`),
 KEY `rcpt_final` (`rcpt_final`)
 ) TYPE=MyISAM;

 CREATE TABLE `messages` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary NOT NULL default '',
 `timestamp` bigint(20) default NULL,
 `msgid` varchar(255) default NULL,
 `completed` bigint(20) default NULL,
 `mailfrom` varchar(255) default NULL,
 `host_addr` varchar(15) default NULL,
 `host_rdns` varchar(255) default NULL,
 `host_ident` varchar(255) default NULL,
 `host_helo` varchar(255) default NULL,
 `proto` varchar(32) default NULL,
 `size` bigint(20) default NULL,
 `tls_cipher` varchar(128) default NULL,
 `user` varchar(128) default NULL,
 `bounce_parent` varchar(16) default NULL,
 PRIMARY KEY (`server`,`message_id`),
 KEY `msgid` (`msgid`),
 KEY `user` (`user`),
 KEY `timestamp` (`timestamp`),
 KEY `host_addr` (`host_addr`),
 KEY `message_id` (`message_id`),
 KEY `bounce_parent` (`bounce_parent`),
 KEY `mailfrom` (`mailfrom`),
 KEY `server` (`server`),
 KEY `host_dns` (`host_rdns`)
 ) TYPE=MyISAM;

 CREATE TABLE `queue` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary NOT NULL default '',
 `mailfrom` varchar(255) NOT NULL default '',
 `timestamp` bigint(20) NOT NULL default '0',
 `num_dsn` int(11) NOT NULL default '0',
 `frozen` bigint(20) default NULL,
 `recipients_delivered` blob,
 `recipients_pending` blob,
 `spool_path` varchar(64) NOT NULL default '',
 `subject` varchar(255) default NULL,
 `msgid` varchar(255) default NULL,
 `headers` blob NOT NULL,
 `action` varchar(64) default NULL,
 PRIMARY KEY (`server`,`message_id`),
 KEY `spool_path` (`spool_path`),
 KEY `mailfrom` (`mailfrom`),
 KEY `message_id` (`message_id`),
 KEY `server` (`server`),
 KEY `timestamp` (`timestamp`),
 KEY `frozen` (`frozen`),
 KEY `msgid` (`msgid`),
 KEY `action` (`action`)
 ) TYPE=MyISAM;

 CREATE TABLE `rejects` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary default NULL,
 `timestamp` bigint(20) NOT NULL default '0',
 `host_addr` varchar(15) NOT NULL default '',
 `host_rdns` varchar(255) NOT NULL default '',
 `host_ident` varchar(255) default NULL,
 `host_helo` varchar(255) default NULL,
 `mailfrom` varchar(255) default NULL,
 `rcpt` varchar(255) default NULL,
 `errmsg` varchar(255) NOT NULL default '',
 UNIQUE KEY `rejects_unique` (`server`,`timestamp`,`host_addr`,`errmsg`),
 KEY `message_id` (`message_id`),
 KEY `server` (`server`),
 KEY `timestamp` (`timestamp`),
 KEY `host_addr` (`host_addr`),
 KEY `mailfrom` (`mailfrom`),
 KEY `rcpt` (`rcpt`),
 KEY `host_dns` (`host_rdns`)
 ) TYPE=MyISAM;

 CREATE TABLE `unknown` (
 `server` varchar(32) NOT NULL default '',
 `message_id` varchar(16) binary NOT NULL default '',
 `timestamp` bigint(20) NOT NULL default '0',
 `line` varchar(255) NOT NULL default '',
 PRIMARY KEY (`server`,`message_id`,`timestamp`,`line`),
 KEY `server` (`server`),
 KEY `message_id` (`message_id`),
 KEY `timestamp` (`timestamp`)
 ) TYPE=MyISAM;

3)Теперь правим конфиг:
cat /usr/local/etc/exilog.conf

{ # DO NOT REMOVE THIS BRACKET

# Exilog config file. Read the comments. Obey the syntax.
# (c) Tom Kistner 2005

 'servers' => { #
# Server definitions. One block per server,
# separated with comma.
# Currently, each server only has a single
# property: Its group membership. Groups are
# just strings that bundle servers. Each
# server can only be in one group.
# Keep the server names short (do not use FQDN).
# Likewise, keep the group names short.

'company.com' => {
 'group' => 'group1'
 },
 }, # End of server definitions 

'sql' => { # 
 # SQL Server definition. Use one of the following
 # blocks as a template. 
'type' => 'mysql',
'DBI' => 'DBI:mysql:database=exilog;',
'user' => 'exilog', 
'pass' => 'exilog'
# Example for Postgresql server
#'type' => 'pgsql',
#'DBI' => 'DBI:Pg:dbname=exilog;host=195.2.162.40;port=5432;',
#'user' => 'myuser',
#'pass' => 'mypass'

}, # End of SQL server definition
'agent' => { # 
# Agent configuration.
# The agent writes a log file. You can also
# use /dev/null here once things are running 
# smoothly.
'log' => '/var/log/exilog_agent',
# The agent writes its PID into this file. Useful,
# if you want to start the agent using a command
# like start-stop-daemon.
'pidfile' => '/var/run/exilog-agent.pid',

# If this is set to 'no', the agent will NOT change
# its process names to be more informative. This will
# prevent problems on systems that restrict changes
# to process names for security reasons (Debian and
# NetBSD for example).
#'use_pretty_names' => 'yes',

# The server the agent is running on. MUST
# be one of the names specified in the
# 'Servers' section above.
'server' => 'company.com',

# The log(s) to monitor. If you log via syslog,
# this will only be a single file (typically
# /var/log/mail). If you use Exim's own logging,
# you should specify the mainlog and rejectlog here.
'logs' => [
 '/var/log/exim/main'
 ],

# Path to Exim's queue directory.
'queue' => '/var/spool/exim',

# Path to your Exim binary
'exim' => '/usr/local/sbin/exim',

# Delay between two queue listing refreshes.
# Thirty seconds is reasonable.
'queue_refresh_delay' => 30

}, # End of Exilog Agent configuration
'cleanup' => { # 
# Configuration for the database cleanup tool
# (exilog_cleanup.pl).

# How many days worth of logs to keep in the
# database. 10 days is somehow reasonable. If
# you run a small shop you can also keep months
# of logs. If you run a VERY big shop you might
# want to reduce this number or buy some more
# processing power.
'cutoff' => 14
}, # End of exilog_cleanup.pl configuration

'web' => { #
# Options for the web interface.
 
# Defines how the web interface shows timestamps.
# Use 'local' to use the local time of the HTTP server
# machine, or use 'gmt' to use normalized GMT
# timestamps.
# TIP: If all of your machines are in one time zone,
# use 'local'.
'timestamps' => 'local',
 
# When using basic auth to restrict access to the web
# interface, you can define users to be "read-only".
# They will not be able to cancel or delete messages
# (but they can start a delivery run). Clients that
# do not authenticate are mapped to a user name
# of "anonymous".
'restricted_users' => [
 'anonymous',
 ]
 } # End of web interface configuration
 };
 # EOF

В качестве лога, который будет парситься я выбрал свой -
/var/log/exim/main

Строка в конфиге exim:
cat /usr/local/etc/exim/configure |grep log_file_path
log_file_path =/var/log/exim/%s

4)Запуск демона, парсящего логи.
/usr/local/etc/rc.d/exilog start

Проверим, все ли хорошо:
ps -ax |grep exilog

Должны увидеть нечто подобное -
>ps -ax |grep exilog
24902 ?? Ss 0:00.12 [exilog_agent] (perl5.8.8)
24903 ?? S 0:06.03 [exilog_agent:_tail] (/var/log/maillog) (perl5.8.8)
24904 ?? S 0:03.79 [exilog_agent:_queue_manager] (/var/spool/exim) (perl5.8.8)
24905 ?? S 0:13.34 [exilog_agent:_queue_actions] (perl5.8.8)

Все ок.
Если нет - смотрим логи,
ибо в них практически все ответы -
/var/log/exilog_agent

5)Добавим в автозагрузку
cat /etc/rc.conf |grep exilog
exilog_enable=YES

6)Настройка веб-морды.
Нужен
mod_cgi

, если его нет, пересобирайте апач.
Создаем ВиртуалХост для ексилога:
 <VirtualHost *:80>
 ServerAdmin user@domain.com.ua
 DocumentRoot /usr/local/www/exilog
 ServerName mail-stat.company.com
 DirectoryIndex exilog_cgi.pl
 ErrorLog /usr/local/www/exilog/logs/exilog.log
 <Directory "/usr/local/www/exilog/">
 Options ExecCGI
 AllowOverride All
 Order allow,deny
 Allow from all
 </Directory>
 </VirtualHost>

Открываем в браузере - mail-stat.company.com
Видим (если все прошло нормально)
примерно следующее


Решение косяков с дампом бралось тут
http://butch.blog.ru/8083427.html


Источник: http://www.lissyara.su/?id=1867
Категория: Установка и настройка | Добавил: oleg (22.02.2009) | Автор: OzZy
Просмотров: 1391 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

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

Copyright MyCorp © 2025