|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> почтовые системы
—> Exilog
Настройка Exilog
Автор: OzZy.
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.
'yourdomain.com' => {
'group' => 'YourGroup'
},
# 'fanucci' => {
# 'group' => 'MXes'
# }
}, # End of server definitions ----------------------
'sql' => { # ----------------------------------------
# SQL Server definition. Use one of the following
# blocks as a template.
# Example for local MySQL server
'type' => 'mysql',
'DBI' => 'DBI:mysql:database=exilog;',
'user' => 'exilog',
'pass' => 'exilog'
# Example for remote MySQL server
#'type' => 'mysql',
#'DBI' => 'DBI:mysql:database=exilog;host=localhost;port=3306',
#'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' => 'yourdomain.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/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' => 365
}, # 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',
'bob',
'alice',
'peter'
]
} # End of web interface configuration ---------------
};
# EOF
/usr/local/etc/>/usr/local/etc/rc.d/exilog restart
/usr/local/etc/rc.d/exilog: DEBUG: checkyesno: exilog_enable is set to YES.
exilog not running? (check /var/run/exilog.pid).
Starting exilog.
/usr/local/etc/rc.d/exilog: DEBUG: run_rc_command: doit:
/usr/local/sbin/exilog_agent.pl
exilog_agent] Detaching from terminal,
output goes to /var/log/exilog_agent.
| В качестве лога, который будет парситься я выбрал свой -
Строка в конфиге 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
24902 ?? Ss 0:00.12 [exilog_agent] (perl5.8.8)
24903 ?? S 0:06.03 [exilog_agent:_tail]
24904 ?? S 0:03.79 [exilog_agent:_queue_manager]
24905 ?? S 0:13.34 [exilog_agent:_queue_actions]
| Все ок.
Если нет - смотрим логи,
ибо в них практически все ответы -
5)Добавим в автозагрузку
cat /etc/rc.conf |grep exilog
exilog_enable=YES
| 6)Настройка веб-морды.
Нужен
, если его нет, пересобирайте апач.
Создаем ВиртуалХост для ексилога:
<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://forum.lissyara.su/viewtopic.php?t=15288.
размещено: 2009-02-24,
последнее обновление: 2011-04-15,
автор: OzZy
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff
Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа
Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL
Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)
Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP
Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools
Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP
Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network
Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem
В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID
Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
|
Комментарии пользователей [24 шт.]