POSTFIX Ведение Статистики

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-07-12 20:24:10

Добрый день, Дамы и Господа!
Поднял я как то почтовый сервер на FreeBSD под POSTFIX. По мотивам вот этой статьи:
http://sys-adm.org.ua/mail/mail-howto-p1.php
А потом потребовало руководство той организации что я обслуживал, что бы я им выдавал сведенья куда ходят письма, сколько, кто, ёмкость писем из внутри или с наружи, в общем очередная идея КГБ начальства)))
Ну хорошо, погуглил я немного и не нашел по этому поводу не чего адекватного…
Ну и да ладно, значит сделаем сами!
Надо из лог файла (а там все сведенья кто, куда, сколько, откуда, во сколько) перегонять в базу Муськи)
Ну хорошо, снова погуглил на опен нете нашёл стрёмненькую статью и скрипт под PERL причём так себе не год не определяет не id в базу не вбивает...
Пришлось поправить скрипт, естественно базу немного изменить, ну а затем самому ручками написать адекватную Web – Мордочку)))
Что надо нам для этого: апач, муська, пхап, ну в принципе если вы по давече упомянутой статье подымали почтовик то всё это хозяйство у вас имеется!
Начнём по шагово:
1. Нам нужно создать базу в муське:
Копируйте отсюда код:

Код: Выделить всё

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Структура таблицы `calendar`
--

CREATE TABLE IF NOT EXISTS `calendar` (
  `num` int(2) NOT NULL default '0',
  `month` char(3) NOT NULL default '',
  `mesyc` varchar(20) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=koi8r;

--
-- Дамп данных таблицы `calendar`
--

INSERT INTO `calendar` (`num`, `month`, `mesyc`) VALUES
(1, 'Jan', 'Январь'),
(2, 'Feb', 'Февраль'),
(3, 'Mar', 'Март'),
(4, 'Apr', 'Апрель'),
(5, 'May', 'Май'),
(6, 'Jun', 'Июнь'),
(7, 'Jul', 'Июль'),
(8, 'Aug', 'Август'),
(9, 'Sep', 'Сентябрь'),
(10, 'Oct', 'Октябрь'),
(11, 'Nov', 'Ноябрь'),
(12, 'Dec', 'Декабрь');

-- --------------------------------------------------------

--
-- Структура таблицы `mails`
--

CREATE TABLE IF NOT EXISTS `mails` (
  `id` int(16) NOT NULL default '0',
  `year` int(4) NOT NULL default '0',
  `month` varchar(10) NOT NULL default '',
  `day` char(2) NOT NULL default '',
  `time` time NOT NULL default '00:00:00',
  `ip` varchar(255) NOT NULL default '',
  `mailfrom` varchar(255) NOT NULL default '',
  `rcptto` varchar(255) NOT NULL default '',
  `size` int(32) default NULL,
  PRIMARY KEY  (`month`,`day`,`time`)
) ENGINE=MyISAM DEFAULT CHARSET=koi8r;

-- --------------------------------------------------------

--
-- Структура таблицы `userlist`
--

CREATE TABLE IF NOT EXISTS `userlist` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(255) NOT NULL default '',
  `pass` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=koi8r AUTO_INCREMENT=1 ;

Затем не хитрые действия:

Код: Выделить всё

touch maillogs.sql
затем
ee maillogs.sql
В открытый пустой файл заливаем скопрированый код, комбинацией клавиш Shift + Insert
Сохроняем Esc -> а -> а
Заходим в муську:

Код: Выделить всё

mysql -u root -p
Вводим пароль рута MySQL:

Код: Выделить всё

Enter password:
Создаём базу для хранения сведений:

Код: Выделить всё

CREATE DATABASE maillogs DEFAULT CHARACTER SET koi8r COLLATE koi8r_general_ci;
Добавляем пользователя:

Код: Выделить всё

GRANT ALL PRIVILEGES ON maillogs.* TO mailuser@localhost IDENTIFIED BY 'mailuser';
Теперь загоняем структуру таблиц:

Код: Выделить всё

mysql> use maillogs;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> SET NAMES koi8r;
Query OK, 0 rows affected (0.00 sec)

mysql> SET character_set_database=koi8r;
Query OK, 0 rows affected (0.00 sec)

mysql> SET character_set_server=koi8r;
Query OK, 0 rows affected (0.00 sec)

mysql> \. maillogs.sql
Если всё хорошо, то увидем:

Код: Выделить всё

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 12 rows affected (0.00 sec)
Records: 12  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Проверяем!
Заходим в муську, только теперь вод так:

Код: Выделить всё

mysql -u mailuser -p
Вводим пароль: mailuser

Код: Выделить всё

Enter password:
Просим показать базы:

Код: Выделить всё

show databases;
Должный увидеть:

Код: Выделить всё

+----------+
| Database |
+----------+
| maillogs |
+----------+
1 row in set (0.00 sec)
Подключаемся к базе:

Код: Выделить всё

 use maillogs;
Database changed
Теперь просим показать таблицы:

Код: Выделить всё

show tables;
Если всё хорошо, то видем:

Код: Выделить всё

+--------------------+
| Tables_in_maillogs |
+--------------------+
| calendar           |
| mails              |
| userlist           |
+--------------------+
3 rows in set (0.00 sec)
Добавляем пользователя, который будет заходить в Web – Мордочку))

Код: Выделить всё

INSERT INTO `userlist` (`id`, `user`, `pass`) VALUES (1, 'admin', '1234567');
Проверяем есть ли он?

Код: Выделить всё

select * from userlist;
Если видем вод это:

Код: Выделить всё

+----+-------+----------+
| id | user  | pass     |
+----+-------+----------+
|  1 | admin | 1234567 |
+----+-------+----------+
1 row in set (0.00 sec)
Значет GOOD!)))
И так мы справились с созданием базы!)))

2. Приступим к следующему этапу, в нём мы создадим скрипт который будет лопатить лог!
Например, ну где вы храните скрипты, или например прямо в руте создаём папочку для скрипта и кладём его туда:

Код: Выделить всё

mkdir /root/scripts
touch /root/scripts/maillog.pl
ee /root/scripts/maillog.pl
И вставляем вод этот код скрипта:

Код: Выделить всё

#!/usr/local/bin/perl

use DBI;

$dbh = DBI->connect("DBI:mysql:host=localhost;database=maillogs","mailuser","mailuser")
    or die "Нет доступа к СУБД!";
$insert = "INSERT INTO mails (id,year,month,day,time,ip,mailfrom,rcptto,size) VALUES(?,?,?,?,?,?,?,?,?)";
$sth = $dbh->prepare("$insert");

my %rec;

open(MAIL, "/var/log/maillog");
while ($line = <MAIL>)
{
  my ($month, $day, $time, $hostname, $servicename, $id, $message) = split /\s+/, $line, 7;
  if ($id =~ /([a-z0-9]+)\:/i)
  {
    $id = $1;
    $rec{$id} = {}
      unless ($rec{$id});

    if ($message =~ 'removed')
    {
      $rec{$id}->{'removed'}++;
    }
    else
    {
      while ($message =~ /(client|size|from|to)=(\S+?)(\s|,)/g)
      {
        if ($1 eq 'client') {
        $rec{$id}->{'month'} = sprintf "%s", $month;
        $rec{$id}->{'day'} = sprintf "%d", $day;
        $rec{$id}->{'time'} = sprintf "%s", $time;
        }
        $rec{$id}->{$1} = $2;
      }
    }
  }
}
close(MAIL);

($year) = (localtime)[5];

$timy = ("%02d\n", $year + 1900);



foreach my $id (sort { $rec{$a}->{'time'} cmp $rec{$b}->{'time'} } keys %rec)
{
  $rec{$id}->{'client'} =~ s/(.+)\[(\d+\.\d+\.\d+\.\d+)\]/$2/;
  $rec{$id}->{'from'} =~ s/<(.+)>/$1/;
  $rec{$id}->{'to'} =~ s/<(.+)>/$1/;
  if (
      $rec{$id}->{'removed'}
      &&
      $rec{$id}->{'client'} ne '127.0.0.1'
      )
  {
  if ($rec{$id}->{'from'} ne 'root@fortero.su')
        {
        $sth1 = $dbh->selectrow_arrayref("SELECT COUNT(*) FROM mails");
        $iddt = "$sth1->[0]";
        $idd = $iddt + 1;
        $sth->execute($idd,$timy,$rec{$id}->{'month'},$rec{$id}->{'day'},$rec{$id}->{'time'},$rec{$id}->{'client'},$rec{$id}->{'from'},$rec{$id}->{'to'},$rec{$id}->{'size'});
        }
  }
}





$sth1->finish;
$sth->finish;
$dbh->disconnect;
Сохроняемб закрываем: Esc -> a -> a
Делаем его исполняемым:

Код: Выделить всё

chmod 770 /root/scripts/maillog.pl
И пробуем, запускаем его:

Код: Выделить всё

/root/scripts/maillog.pl
Может в базу не чего не добавиться, так как изначально этот скрипт не мой я его только редактировал, то тогда надо обнулить лог postfix-а, делаем это так:

Код: Выделить всё

echo > /var/log/maillog
Отправляем почту с нашего сервера, или на него присылаем, и снова проверяем теперь будет работать, в этом казусе у меня не было времени ковыряться, увы, если кто-то сможет и поправит, буду рад)
Если база набивается, а проверить можно подключившись выше упомянуто к базе и сделать запрос:

Код: Выделить всё

select * from mails;
Мы увидем данные!
А если иначе, значит, что то не так...(
Ну если всё хорошо, теперь автоматизируем, добавим в крон вод такую строку:

Код: Выделить всё

cat /etc/crontab
*/59    *       *       *       *       root    /root/scripts/maillog.pl
Здесь сказано, что раз в час крон (планировщик), запускает скрипт лопатить лог, но если надо чаще сделать то поменяйте параметры, принципе меня устраивало и так но всё зависит от индивидуального случая!
Перезапускаем крон:

Код: Выделить всё

/etc/rc.d/cron restart
Со временем в логах появиться должно вод это:

Код: Выделить всё

 cat /var/log/cron | grep maillog.pl
Jul 11 00:59:00 fortero /usr/sbin/cron[1986]: (root) CMD (/root/scripts/maillog.pl)
3. Если вы дошли до этого этапа без казусов и у вас всё работает то можно порадоваться, остался кульминационный этап, Web – Мордочка))
Качаем мордочку:
http://forum.lissyara.su/download/file.php?id=2301
Закидываем её на сервер в директорию
/usr/local/www/data
Распаковываем:

Код: Выделить всё

bzip2 -d statmail.tar.bz2
tar -xf statmail.tar
Теперь правим конф ДНС если нужно присвоить имя типа statmail.localdomain или
Можно обойтись без этого просто править хост файл на удалённой машине, это вы сами решите…
А вот apache я вам помогу поправить, идём вот сюда /usr/local/etc/apache
И правим конф httpd.conf
Добавим в конф:

Код: Выделить всё

<VirtualHost 192.168.64.254:80>
    ServerAdmin admin@muzdrama.com
    DocumentRoot /usr/local/www/data/statmail
    ServerName statmail.dram.lh
    <Directory "/usr/local/www/data/statmail">
         Options none
         AllowOverride Limit
         Order Deny,Allow
         Deny from all
         Allow from 127.0.0.1 192.168.0.0/16
         DirectoryIndex index.php
    </Directory>
</VirtualHost>
Примерно вод так, ну каждый под себя подгоняет имя страницы, айпи, путь и т.д.
После чего перезапускаем apache:

Код: Выделить всё

/usr/local/etc/rc.d/apache.sh restart
Лезем в конф админки:

Код: Выделить всё

 ee /usr/local/www/data/statmail/config.php
И читаем, там описано, принципе нам достаточно только указать логин и пароль postfix сервера для подключения к базе, а всё остальное по дефолту!

Теперь проверяем, если всё получилось, то зайдя в браузере на нашу страничку мы пройдём логин пароль и увидим примерно это:
Ну вот и всё, это моя первая статья здесь, по этому не судите меня строга за ошибки, и может быть это особо не кому и не надо, но жалко творение пропадает из-за одной организации!)))
Пишите всем постараюсь ответить и помочь, фиксить ошибки!
В будущем я ещё выложу пару админок для впн сервера, squidguarda…
Ну ладно это будет в будущем, всем спасибо за внимание!)))
Вложения
2.jpg
1.jpg
statmail.tar.bz2
(163.32 КБ) 239 скачиваний
Да пребудет с нами сила!!!
Всех убью, один останусь!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение m0ps » 2009-07-12 21:37:32

неплохо... а я вот pflogsumm использую - не так наглядно...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-07-12 22:14:49

Доброй ночи!
Ну попробуйте поставить, интересно услышить критеку или пожелания)
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение skeletor » 2009-07-13 11:20:42

Я юзаю cacti (в нём есть модуль для ведения почтовой статистики).
Так же можно юзать Mailgraph

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение m0ps » 2009-07-13 11:38:48

skeletor писал(а):Я юзаю cacti (в нём есть модуль для ведения почтовой статистики).
Так же можно юзать Mailgraph
ай... меилграф - это немного не то... это для анализа динамики и для начальников, уж сильно они любят графики смотреть :)

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-07-13 15:47:24

Ну вот примерноя и графики внедрил по общей базе по доменам по ящикам, отслеживания айпи адресов ну что бы видеть от куда куда и из реальной сети или локальной, интерактивный поиск по ящику если он даже не из тех доменов кароче нафоршеровал всё что в голову взбредёт КГБ-шникам)))
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
korn
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-12-14 12:18:22

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение korn » 2009-12-14 13:14:26

Всем привет!
Делал все по статье, на этапе запуска скрипта maillog.pl (скрипт не правил) выдает ошибку:
Can't call method "finish" on unblessed reference at ./maillog.pl line 73.

В чем может быть проблема?
не спеши, а то успеешь ...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-14 13:43:11

korn писал(а):Всем привет!
Делал все по статье, на этапе запуска скрипта maillog.pl (скрипт не правил) выдает ошибку:
Can't call method "finish" on unblessed reference at ./maillog.pl line 73.

В чем может быть проблема?
Возможно в скрипте, когда перносил статью мог я напортачить, вечером зайлью действующий с крипт со своей машины!
Спасибо что написали!
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-14 16:28:32

Такой вопрос, данные в базу добовляються?
Буду скоро дома посмотрю....
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-14 21:22:23

Залил файл с боевой машины, пробуйте, когда скачаете его, просто переименуйте уберите слово example и всё можете его юзать!
Отпишитесь о результате...
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение rnd » 2009-12-14 22:31:49

то что залил это хорошо, вопрос в другом, куда залил? :smile:

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-14 22:55:06

Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-14 22:56:10

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

Аватара пользователя
korn
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-12-14 12:18:22

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение korn » 2009-12-15 10:59:14

Вот результат запуска нового скрипта:
при первом запуске ошибка та же Can't call method "finish" on unblessed reference at ./maillog.pl line 73.
...я так понимаю она не критическая и данные в базу заносятся
_________
при следующих запусках выдает два типа ошибок 1:DBD::mysql::st execute failed: Duplicate entry 'Dec-15-09:45:41' for key 'PRIMARY' at ./maillog.pl line 64.
...при чем количество этих ошибок столько, сколько в базе полей, но даные в базу зносятся
и 2:Can't call method "finish" on unblessed reference at ./maillog.pl line 73.
не спеши, а то успеешь ...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-15 13:57:48

korn писал(а):Вот результат запуска нового скрипта:
при первом запуске ошибка та же Can't call method "finish" on unblessed reference at ./maillog.pl line 73.
...я так понимаю она не критическая и данные в базу заносятся
_________
при следующих запусках выдает два типа ошибок 1:DBD::mysql::st execute failed: Duplicate entry 'Dec-15-09:45:41' for key 'PRIMARY' at ./maillog.pl line 64.
...при чем количество этих ошибок столько, сколько в базе полей, но даные в базу зносятся
и 2:Can't call method "finish" on unblessed reference at ./maillog.pl line 73.
Добрый день!
Данные в базу заносятса, протестируйте, и вы убедитесь они не задваиваються не теряются, а чотко заносятса скрипт выводит эти сообщения не спорю, изначально это был ней мой скрипт а с opennet-та я его немного переделал добавил пару переменных год и id, если кто то сможет подравнять скрипт, я с радостью его размещю в статье и впешу имя того кто это сделал! Но при данной конфигурации всё работает...
Если вдруг не заносятса данные в базу то будем копать тогда, как правело тогда или с перл проблема или со скриптами муськи...
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
korn
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-12-14 12:18:22

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение korn » 2009-12-15 15:33:06

Да, данные корректно загоняет в базу!

Как обойти проблему с кроном
*/59 * * * * root /root/scripts/maillog.pl

обработку последней минуты лога упускает!
а с ротированым файлом maillog.0.bz2 понятное дело скрипт работать не будет? Не подскажешь?
Спасибо за статью!
не спеши, а то успеешь ...

Аватара пользователя
korn
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-12-14 12:18:22

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение korn » 2009-12-15 17:30:05

korn писал(а):Да, данные корректно загоняет в базу!

Как обойти проблему с кроном
*/59 * * * * root /root/scripts/maillog.pl

обработку последней минуты лога упускает!
а с ротированым файлом maillog.0.bz2 понятное дело скрипт работать не будет? Не подскажешь?
Спасибо за статью!
crontab
*/59 * * * * root /root/scripts/maillog.pl
1 1 * * * root /root/scripts/maillog.sh

maillog.sh
#!/bin/sh
bzcat /var/log/maillog.0.bz2 > /tmp/maillog
/usr/local/bin/perl /home/admin/scripts/maillog_lastday.pl


где maillog_lastday.pl будет брать с /tmp/maillog
не спеши, а то успеешь ...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-15 19:47:01

korn писал(а):Да, данные корректно загоняет в базу!

Как обойти проблему с кроном
*/59 * * * * root /root/scripts/maillog.pl

обработку последней минуты лога упускает!
а с ротированым файлом maillog.0.bz2 понятное дело скрипт работать не будет? Не подскажешь?
Спасибо за статью!
Как вариант поставить чаще крону лопатить лог!
У меня за пол года работы не было проблем... Просто надо ещё смотреть по нагрузки, я толком не тестил сколько скрипт хавает...
А за спасибо, очень приятно, рад что кому то пригодилось, а с Мордочкой были проблемы, тестили?
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение rnd » 2009-12-15 20:08:02

Код: Выделить всё

DBD::mysql::st execute failed: Column 'month' cannot be null at /home/scripts/maillogs/maillog.pl line 64.
DBD::mysql::st execute failed: Column 'month' cannot be null at /home/scripts/maillogs/maillog.pl line 64.
DBD::mysql::st execute failed: Column 'month' cannot be null at /home/scripts/maillogs/maillog.pl line 64.
Can't call method "finish" on unblessed reference at /home/scripts/maillogs/maillog.pl line 73.
Вот что пишет через час-два

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-15 20:16:04

rnd писал(а):

Код: Выделить всё

DBD::mysql::st execute failed: Column 'month' cannot be null at /home/scripts/maillogs/maillog.pl line 64.
DBD::mysql::st execute failed: Column 'month' cannot be null at /home/scripts/maillogs/maillog.pl line 64.
DBD::mysql::st execute failed: Column 'month' cannot be null at /home/scripts/maillogs/maillog.pl line 64.
Can't call method "finish" on unblessed reference at /home/scripts/maillogs/maillog.pl line 73.
Вот что пишет через час-два
Ну так это нормальное явление, главное, что данные все в базу поподают, я не смог пофиксить эту ругань, но с попадением данных в базу нет ошибок, если вдруг у кого то есть тогда будем что то думать... У меня не одно письмо мимо базы не проскачило там только от root специально проскакивают ибо в них нет необходимости....
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-15 20:21:25

Вод у меня тоже:

Код: Выделить всё

DBD::mysql::st execute failed: Column 'month' cannot be null at /home/fox/work/maillog.pl line 64.
Я подозреваю это те строки которые уже есть в базе он их что бы не задвоить отвергает вод и всё!
Это нормально он просто говорит что это уже есть, а вод все новые поподают, правельно когда Вы в первый раз запустили то попали все строки, а вод когда второй раз в логи инфа добавелась он старое не занёс так как оно уже есть а нове добавел!
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
0dmin
рядовой
Сообщения: 18
Зарегистрирован: 2009-04-13 11:02:21
Откуда: ekb
Контактная информация:

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение 0dmin » 2009-12-19 14:41:53

ребят подскажите что за траблы с perl:

Код: Выделить всё

[root@ural /usr/soft/scripts]# ./mailog2stat.pl

Код: Выделить всё

Can't load '/usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBI/DBI.so' for module DBI: /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBI/DBI.so: Undefined symbol "PL_dowarn" at /usr/local/lib/perl5/5.8.9/mach/DynaLoader.pm line 226.
 at /usr/local/lib/perl5/site_perl/5.8.9/mach/DBI.pm line 263
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.9/mach/DBI.pm line 263.
Compilation failed in require at ./mailog2stat.pl line 3.
BEGIN failed--compilation aborted at ./mailog2stat.pl line 3.
За ранее благодарен! :smile:
P.S. в базу ничего не добавляется =(

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2009-12-19 19:38:29

0dmin писал(а):ребят подскажите что за траблы с perl:

Код: Выделить всё

[root@ural /usr/soft/scripts]# ./mailog2stat.pl

Код: Выделить всё

Can't load '/usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBI/DBI.so' for module DBI: /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/DBI/DBI.so: Undefined symbol "PL_dowarn" at /usr/local/lib/perl5/5.8.9/mach/DynaLoader.pm line 226.
 at /usr/local/lib/perl5/site_perl/5.8.9/mach/DBI.pm line 263
BEGIN failed--compilation aborted at /usr/local/lib/perl5/site_perl/5.8.9/mach/DBI.pm line 263.
Compilation failed in require at ./mailog2stat.pl line 3.
BEGIN failed--compilation aborted at ./mailog2stat.pl line 3.
За ранее благодарен! :smile:
P.S. в базу ничего не добавляется =(
А с базовым скриптом у тебя такая же трабла? (Который я на сайте выложил...)
Если и с ним так же, то копай в сторону перл и скажи пожалусто какая у тебя муска?
Потому что к муськая идёт пакет скриптов, с ним бывают траблы просто надо либо перл пересобрать либо пакет скриптов к муське, в начале статьи я довал ссылку на статью по которой я собирал почтовый сервер, так вод... Там ты обратиш внимание какой перл и что к муське имеютса в портах скрепты, понятное дело что с тех времён много воды утекло, но не страшно просто посмотри у себя в портах к своей версии муськи скрипты, они рядом лежат...
Отпишись пожалусто что у тебя получилось?
Да пребудет с нами сила!!!
Всех убью, один останусь!

Аватара пользователя
korn
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-12-14 12:18:22

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение korn » 2010-01-26 16:26:39

Всем привет!
Недавно зашел на тестовый сервер куда прикрутил POSTFIX + Ведение Статистики .... и вот результат:
Нельзя перейти на год назад (2009) для анализа логов, как на гланой странице так и по ящикам, в скрипте надо подправить условия в файле index.php
строка 385

Код: Выделить всё

while ($gigi >= 1)
.... и т.д.
и все работает).
не спеши, а то успеешь ...

Аватара пользователя
fox
ст. лейтенант
Сообщения: 1154
Зарегистрирован: 2008-07-24 0:25:31
Откуда: Ukraine, Donetsk

Re: POSTFIX Ведение Статистики

Непрочитанное сообщение fox » 2010-01-26 16:43:18

korn писал(а):Всем привет!
Недавно зашел на тестовый сервер куда прикрутил POSTFIX + Ведение Статистики .... и вот результат:
Нельзя перейти на год назад (2009) для анализа логов, как на гланой странице так и по ящикам, в скрипте надо подправить условия в файле index.php
строка 385

Код: Выделить всё

while ($gigi >= 1)
.... и т.д.
и все работает).
Странно, у меня и так всё работает, вот только что проверил за 2010, 2009, 2008 всё показывает...
Да пребудет с нами сила!!!
Всех убью, один останусь!