| 
 
 
   |   |  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, lissyaragmirror
 Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
 2013-08-20, zentarimScan+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, zentarimWi-FI роутер + DHCP + DNS
 Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
 2011-06-15, -ZG-Охранная система на FreeBSD+LPT
 В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
 2011-03-13, terminusng_nat
 Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
 2011-02-20, КапитанNagios+Digitemp
 Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
 2011-02-17, Le1Zyxel Configuration
 Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
 2011-02-16, foxhast 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, m4rkellSyslog server
 Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
 2011-01-07, lissyaraCanon/gphotofs
 Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
 2010-12-13, AlIPSec
 Описание принципов работы IPSEC и способов аутентификации.
 2010-12-07, manefestoFreeBSD on flash
 Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем  =)
 2010-12-05, Fomalhautroot ZFS, GPT
 Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
 2010-09-05, CancerНастройка аудиоплеера на ximp3
 Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
 2010-08-31, CancerУстановка и настройка OpenVPN
 На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
 2010-08-25, manefestofreebsd lvm
 Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
 2010-04-30, gonzo111proftpd file auth"a
 Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
 2010-04-22, lissyaratw_cli
 Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
 2010-04-14, foxMySQL Master+Master
 MySQL (Master Master) and (Master Slave) Как настроить репликацию…
 2010-03-09, terminusDNS zones
 Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
 2010-03-09, asperaSquid+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, Mortydarkstat
 Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
 2010-01-23, gonzo111squid+sams+sqstat
 Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
 2009-12-19, schizoidmpd5 + radius + ng_car + Abills
 Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
 2009-11-16, lissyaraUFS->ZFS
 Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
 2009-11-13, gx_uafusefs-ntfs
 Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
 2009-11-12, MortyLiveCD
 Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
 2009-09-27, lissyaraSamba как PDC
 Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
 2009-08-30, terminusipfw nat
 Подробное руководство по ipfw nat, сложные случаи конфигурации.
 2009-08-24, levantuevHotSpot
 Установка Hotspot системы в общественное заведение.
 2009-08-18, lissyaradiskless
 Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
 2009-07-29, BAV_LugВидеонаблюдение
 Настройка бюджетного варианта видеонаблюдения на удаленном объекте
 2009-07-22, CancerOpenLDAP адресная книга
 Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
 2009-06-30, SergeySLAimSniff
 Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
 2009-06-25, atriumУправление правами доступа
 Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX. 
 2009-06-16, DNKExim+PgSQL
 Установка почтовой системы exim+pgsql на FreeBSD 7.1
 2009-05-30, mvaleryHDD(mbr) -> HDD(gpt)
 Как разбить диск размером более 2TB на разделы, сделать загрузочным, а  затем перенести на него информацию с рабочей системы — донора.
 2009-05-22, CancerSendXMPP
 Отправка сообщений на Джаббер сервер по средствам SendXMPP
 2009-05-11, Raven2000Network UPS Tools
 Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования. 
 2009-04-29, m0psIPSEC over GRE with RIP
 Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
 2009-04-24, WhiteBear777qemu network
 Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в  локалку и в сеть internet...
 2009-04-22, vpfreebsd + 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 шт.]