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

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ccoll
проходил мимо

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

Непрочитанное сообщение ccoll » 2010-01-27 13:02:55

Настроил на Slackware 12.2 всё работает. Вопрос, не выбирается год, стоит 2010. Я загрузил maillog 2009 года - ноябрь, декабрь WEB показывает эти месяца, и год везде показывает 2010. Как у вас написанно я исправил не помогло (while ($gigi >= 1)). Что можно ещё подкрутить??? Спасибо заранее....

Хостинговая компания 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/

ccoll
проходил мимо

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

Непрочитанное сообщение ccoll » 2010-01-27 13:18:08

ccoll писал(а):Настроил на Slackware 12.2 всё работает. Вопрос, не выбирается год, стоит 2010. Я загрузил maillog 2009 года - ноябрь, декабрь WEB показывает эти месяца, и год везде показывает 2010. Как у вас написанно я исправил не помогло (while ($gigi >= 1)). Что можно ещё подкрутить??? Спасибо заранее....

Посмотрел, в mysql он тоже занёс, как будто это лог 2010 года..... Как это исправить в базе?

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

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

Непрочитанное сообщение fox » 2010-01-27 14:25:58

ccoll писал(а):
ccoll писал(а):Настроил на Slackware 12.2 всё работает. Вопрос, не выбирается год, стоит 2010. Я загрузил maillog 2009 года - ноябрь, декабрь WEB показывает эти месяца, и год везде показывает 2010. Как у вас написанно я исправил не помогло (while ($gigi >= 1)). Что можно ещё подкрутить??? Спасибо заранее....

Посмотрел, в mysql он тоже занёс, как будто это лог 2010 года..... Как это исправить в базе?
Это легко обясняется, POSTFIX не пишет годв лог, год добовляет скрипт, а если вы старые логи подсунули и в базу муськи добавелось, то все старые месяца будут согластно текущего года! Надо понимать тот факт, что год добовляет скрипт согластно текущему!
Да пребудет с нами сила!!!
Всех убью, один останусь!

ccoll
проходил мимо

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

Непрочитанное сообщение ccoll » 2010-01-27 14:59:03

fox писал(а):
ccoll писал(а):
ccoll писал(а):Настроил на Slackware 12.2 всё работает. Вопрос, не выбирается год, стоит 2010. Я загрузил maillog 2009 года - ноябрь, декабрь WEB показывает эти месяца, и год везде показывает 2010. Как у вас написанно я исправил не помогло (while ($gigi >= 1)). Что можно ещё подкрутить??? Спасибо заранее....

Посмотрел, в mysql он тоже занёс, как будто это лог 2010 года..... Как это исправить в базе?
Это легко обясняется, POSTFIX не пишет годв лог, год добовляет скрипт, а если вы старые логи подсунули и в базу муськи добавелось, то все старые месяца будут согластно текущего года! Надо понимать тот факт, что год добовляет скрипт согластно текущему!

Ясно, спасибо большое.
Ещё вопрос, как можно реализовать следующее:

Нужно выбрать определённые почтовые ящики (к примеру определённый отдел) и посмотреть сколько они вместе отправили и приняли почты. Такое возможно реализовать в вашей программе?

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

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

Непрочитанное сообщение fox » 2010-01-27 15:17:35

ccoll писал(а): Ещё вопрос, как можно реализовать следующее:

Нужно выбрать определённые почтовые ящики (к примеру определённый отдел) и посмотреть сколько они вместе отправили и приняли почты. Такое возможно реализовать в вашей программе?
Хотите по группам, угу.. я думал об этом, нет такое к сожалению я не делал... Там есть кнопка "ПОИСК", но это не то, это выборка данных по конкретному ящику, а так сделать группы и мониторить к сожалению нет... Я бы и рад улучшить этот проект, но я там уже не работаю где он был актуален а сейчас завалин другой работай, может в будующем...
Да пребудет с нами сила!!!
Всех убью, один останусь!

ccoll
проходил мимо

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

Непрочитанное сообщение ccoll » 2010-01-27 15:39:44

fox писал(а):
ccoll писал(а): Ещё вопрос, как можно реализовать следующее:

Нужно выбрать определённые почтовые ящики (к примеру определённый отдел) и посмотреть сколько они вместе отправили и приняли почты. Такое возможно реализовать в вашей программе?
Хотите по группам, угу.. я думал об этом, нет такое к сожалению я не делал... Там есть кнопка "ПОИСК", но это не то, это выборка данных по конкретному ящику, а так сделать группы и мониторить к сожалению нет... Я бы и рад улучшить этот проект, но я там уже не работаю где он был актуален а сейчас завалин другой работай, может в будующем...
Почему в TOTAL у меня вот эти цифры (которые я привёл ниже) я так понимаю там должна быть цифра DOWNLOAD+UPLOAD=TOTAL или я ошибаюсь?
В таблице непонятно что за цифра в TOTAL...

МЕСЯЦА DOWNLOAD UPLOAD TOTAL DOWNLOAD UPLOAD TOTAL
November 47332.82Mb 47252.53Mb 47378.47Mb 80379 78743 80456

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

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

Непрочитанное сообщение fox » 2010-01-27 17:48:19

ccoll писал(а): Почему в TOTAL у меня вот эти цифры (которые я привёл ниже) я так понимаю там должна быть цифра DOWNLOAD+UPLOAD=TOTAL или я ошибаюсь?
В таблице непонятно что за цифра в TOTAL...

МЕСЯЦА DOWNLOAD UPLOAD TOTAL DOWNLOAD UPLOAD TOTAL
November 47332.82Mb 47252.53Mb 47378.47Mb 80379 78743 80456
Это в какой странице у вас, на главной?
Да пребудет с нами сила!!!
Всех убью, один останусь!

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

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

Непрочитанное сообщение fox » 2010-01-27 17:53:17

Всё правильно, если вы отсылали сами себе письма то внешний трафик правильно показывает, обратите внимание на цифры!

МЕСЯЦА DOWNLOAD UPLOAD TOTAL DOWNLOAD UPLOAD TOTAL
November 47332.82Mb 47252.53Mb 47378.47Mb 80379 78743 80456

И что у вас на английском выводит месяц?

P.S. Главная задача этой программы, это отслеживать трафик, тоесть сколько наружу выйдет информации, или с наружи прейдёт...

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

ccoll
проходил мимо

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

Непрочитанное сообщение ccoll » 2010-01-28 6:21:30

fox писал(а):Всё правильно, если вы отсылали сами себе письма то внешний трафик правильно показывает, обратите внимание на цифры!

МЕСЯЦА DOWNLOAD UPLOAD TOTAL DOWNLOAD UPLOAD TOTAL
November 47332.82Mb 47252.53Mb 47378.47Mb 80379 78743 80456

И что у вас на английском выводит месяц?

P.S. Главная задача этой программы, это отслеживать трафик, тоесть сколько наружу выйдет информации, или с наружи прейдёт...

Конечно, может быть западло если вы напутали с базой, старые логи подсовывали, точно там с годами не напутали, попробуйте без старых данных а с нуля вести базу, отследите...
Я сделал месяца на английском.

Нет с годами ни чего не напутал, я создал новую базу в mysql и на slackware перевёл год на 2009 все нормально упало в базу....

1). А как программа узнаёт, наружу ушло письмо или нет?
2). Я домен не задавал для вашей программы, так как не понял где его прописывать, подскажите где это прописывается?

Можно ещё раз поподробней:
3). DOWNLOAD - сколько пользователь получил писем в Mb UPLOAD - сколько отправил пользователь писем в Mb TOTAL - сколько всего пользователь получил и отправил писем в Mb?

Правильно?

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

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

Непрочитанное сообщение fox » 2010-01-28 15:36:51

Обязательно, нужно к POSTFIX базе потключение, потому, что от-туда берётся домен и ящики!
Как он узнаёт, если допустим у вас домен mydomain.com и вы отправили письмо на mydomian.com внутри локальной сети то это было отпровление саому себе... Тоесть за приделы компании письмо не выходило!
Да это мордочка не совершенная, её бы перетестровать и добавить функций...
Download - закачки
Upload - отправки
Total - сумма (но при этом смотрется сума, что бы не задваивалась если вы к примеру с ящика user@mydomain.com отправили сами себе письмо на user@mydomain.com)
Открыв базу в phpmyadmin вы чотко увидите зависемости, но обезательно web-мордочке надо знать свои домены и свои ящики!
Да пребудет с нами сила!!!
Всех убью, один останусь!

ccoll
проходил мимо

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

Непрочитанное сообщение ccoll » 2010-01-28 15:44:40

В том то и дело у меня POSTfix не пишет mysql он пишет всё в лог maillog..... Не подскажите какую структуру таблиц создаёт Postfix в mysql? или файлик который создаёт всю структуру, типа того что вы выложили у себя на страничке - пример:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

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

CREATE TABLE IF NOT EXISTS `calendar` (
`num` int(2) NOT NULL default '0',

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

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

Непрочитанное сообщение fox » 2010-01-28 15:59:32

ccoll писал(а):В том то и дело у меня POSTfix не пишет mysql он пишет всё в лог maillog..... Не подскажите какую структуру таблиц создаёт Postfix в mysql? или файлик который создаёт всю структуру, типа того что вы выложили у себя на страничке - пример:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

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

CREATE TABLE IF NOT EXISTS `calendar` (
`num` int(2) NOT NULL default '0',
Я говорю не о логе POSTFIX mysql, а о той базе POSTFIX в которой хронятса настройки домены, ящики...
Вот как у меня на тестовом:

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

-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Янв 28 2010 г., 14:57
-- Версия сервера: 4.1.25
-- Версия PHP: 5.2.11

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `postfix`
--

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

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

CREATE TABLE IF NOT EXISTS `mailbox` (
  `username` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `name` varchar(255) NOT NULL default '',
  `maildir` varchar(255) NOT NULL default '',
  `quota` int(10) NOT NULL default '0',
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Mailboxes';

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

INSERT INTO `mailbox` (`username`, `password`, `name`, `maildir`, `quota`, `domain`, `created`, `modified`, `active`) VALUES
('fox@fortero.su', '******', 'FOX', 'fortero.su/fox@fortero.su/', 10240000, 'fortero.su', '2008-06-15 18:00:33', '2008-06-15 18:00:33', 1),
('postmaster@fortero.su', '****', 'POSTMASTER', 'fortero.su/postmaster@fortero.su/', 10240000, 'fortero.su', '2009-03-18 19:39:12', '2009-03-18 19:39:12', 1),
('hell@fortero.su', '*******', 'HELL', 'fortero.su/hell@fortero.su/', 10240000, 'fortero.su', '2009-10-28 15:15:09', '2009-10-28 15:15:09', 1),
('fortero@fortero.su', '*****', 'FORTERO', 'fortero.su/fortero@fortero.su/', 10240000, 'fortero.su', '2008-07-12 00:35:41', '2008-07-12 00:35:41', 1),
('quota@fortero.su', '*******', 'QUOTA', 'fortero.su/quota@fortero.su/', 2048000, 'fortero.su', '2008-11-05 00:38:33', '2008-11-05 00:38:33', 1),
('admin@fortero.su', '********', 'ADMIN', 'fortero.su/admin@fortero.su/', 10240000, 'fortero.su', '2008-10-05 00:28:46', '2008-10-05 00:28:46', 1);

В любом случае свои данные postixдолжен в муське хранить данные, или у вас иначе сделано?
Да пребудет с нами сила!!!
Всех убью, один останусь!

ccoll
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-01-28 15:58:09

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

Непрочитанное сообщение ccoll » 2010-01-28 16:03:18

спасибо завтра попробую ваши данные занесу в mysql и посмотрю что из этого получиться.

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

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

Непрочитанное сообщение fox » 2010-01-28 16:20:21

ccoll писал(а):спасибо завтра попробую ваши данные занесу в mysql и посмотрю что из этого получиться.
Стоп, если вы хотите продублировать ситуацию, то вам надо будет подставить свои ящики и ещё одну таблицу с доменами:

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

-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Янв 28 2010 г., 15:18
-- Версия сервера: 4.1.25
-- Версия PHP: 5.2.11

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `postfix`
--

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

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

CREATE TABLE IF NOT EXISTS `domain` (
  `domain` varchar(255) NOT NULL default '',
  `description` varchar(255) NOT NULL default '',
  `aliases` int(10) NOT NULL default '0',
  `mailboxes` int(10) NOT NULL default '0',
  `maxquota` int(10) NOT NULL default '0',
  `transport` varchar(255) default NULL,
  `backupmx` tinyint(1) NOT NULL default '0',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`domain`),
  KEY `domain` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Domains';

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

INSERT INTO `domain` (`domain`, `description`, `aliases`, `mailboxes`, `maxquota`, `transport`, `backupmx`, `created`, `modified`, `active`) VALUES
('fortero.su', 'fortero', 10, 50, 0, 'virtual', 0, '2008-06-15 18:00:13', '2008-06-15 18:00:13', 1);

И в config.php настройте всё, подключение ко второй базе!

Мой пример:

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

<?php
//Логин, Пароль, Место расположение базы статистики
$db = mysql_connect ("localhost","mailuser","mailuser");

//Логин, Пароль, Место расположение базы postfix
$dbp = mysql_connect ("localhost","postfix","postfix");

mysql_select_db ("maillogs",$db);
mysql_select_db ("postfix",$dbp);

mysql_query("SET NAMES cp1251", $db);
mysql_query("SET NAMES cp1251", $dbp);

//Количество выводимых срок во вкладки вся база
$nomers = 50;

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

degarn
рядовой
Сообщения: 37
Зарегистрирован: 2010-02-02 22:19:37
Откуда: обитатель штата Люблино
Контактная информация:

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

Непрочитанное сообщение degarn » 2010-02-08 14:57:06

Друзья мои, я опечален & разгневан :-))

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

Страница просмотра всех записей из базы!

Количество выводимых записей на странице:

Муська не прислюнявилась к серванту!!! Пишите Админу admin@fortero.su
Код ошибки:
Что это за гнусное дело при просмотре раздела "Весь лог"? А еще статистики нету вообще ! Хоть убейся, шлю-шлю письмена, а счетчики по нулям %-((
Всегда с вами....

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

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

Непрочитанное сообщение fox » 2010-02-08 15:24:59

degarn писал(а):Друзья мои, я опечален & разгневан :-))

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

Страница просмотра всех записей из базы!

Количество выводимых записей на странице:

Муська не прислюнявилась к серванту!!! Пишите Админу admin@fortero.su
Код ошибки:
Что это за гнусное дело при просмотре раздела "Весь лог"? А еще статистики нету вообще ! Хоть убейся, шлю-шлю письмена, а счетчики по нулям %-((
Нужно, в config.php указать:

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

<?php
//Логин, Пароль, Место расположение базы статистики
$db = mysql_connect ("localhost","mailuser","mailuser");

//Логин, Пароль, Место расположение базы postfix
$dbp = mysql_connect ("localhost","postfix","postfix");

mysql_select_db ("maillogs",$db);
mysql_select_db ("postfix",$dbp);

mysql_query("SET NAMES cp1251", $db);
mysql_query("SET NAMES cp1251", $dbp);

//Количество выводимых срок во вкладки вся база
$nomers = 50;

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

degarn
рядовой
Сообщения: 37
Зарегистрирован: 2010-02-02 22:19:37
Откуда: обитатель штата Люблино
Контактная информация:

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

Непрочитанное сообщение degarn » 2010-02-08 15:38:10

fox писал(а):
degarn писал(а):Друзья мои, я опечален & разгневан :-))

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

Страница просмотра всех записей из базы!

Количество выводимых записей на странице:

Муська не прислюнявилась к серванту!!! Пишите Админу admin@fortero.su
Код ошибки:
Что это за гнусное дело при просмотре раздела "Весь лог"? А еще статистики нету вообще ! Хоть убейся, шлю-шлю письмена, а счетчики по нулям %-((
Нужно, в config.php указать:

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

<?php
//Логин, Пароль, Место расположение базы статистики
$db = mysql_connect ("localhost","mailuser","mailuser");

//Логин, Пароль, Место расположение базы postfix
$dbp = mysql_connect ("localhost","postfix","postfix");

mysql_select_db ("maillogs",$db);
mysql_select_db ("postfix",$dbp);

mysql_query("SET NAMES cp1251", $db);
mysql_query("SET NAMES cp1251", $dbp);

//Количество выводимых срок во вкладки вся база
$nomers = 50;

?>
как в примере , только свои данные!
Так я указал канеш, ну вот щас покажу:

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

<?php
//?????, ??????, ????? ???????????? ???? ?????????
$db = mysql_connect ("localhost","mailuser","mailuser");

//?????, ??????, ????? ???????????? ???? postfix
$dbp = mysql_connect ("localhost","postfix","my_superpassword_very_secure");

mysql_select_db ("maillogs",$db);
mysql_select_db ("postfix",$dbp);

mysql_query("SET NAMES cp1251", $db);
mysql_query("SET NAMES cp1251", $dbp);

//?????????? ????????? ???? ?? ??????? ??? ???
$nomers = 50;

?>

вот
Всегда с вами....

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

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

Непрочитанное сообщение fox » 2010-02-08 15:49:43

Значит не получается, подсоединиться к mysql серверу, проверь пользователи есть в сервере такие, или root пропеши для эксперемента... Муська на этом же сервере? Или на другом... Тут всё просто где то у вас ошибка или очипятка может быть... Сами подумайте это плёвая проблема! Не получается к муське потключится...
Да пребудет с нами сила!!!
Всех убью, один останусь!

degarn
рядовой
Сообщения: 37
Зарегистрирован: 2010-02-02 22:19:37
Откуда: обитатель штата Люблино
Контактная информация:

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

Непрочитанное сообщение degarn » 2010-02-08 16:12:42

fox писал(а):Значит не получается, подсоединиться к mysql серверу, проверь пользователи есть в сервере такие, или root пропеши для эксперемента... Муська на этом же сервере? Или на другом... Тут всё просто где то у вас ошибка или очипятка может быть... Сами подумайте это плёвая проблема! Не получается к муське потключится...
Да не совсем, я бы не писал :-)
Дело ведь в том, что на самом-то деле он канешна подключается, и юзера есть и вообще все как говорит моя любимая дочь "хаясо".
Доменчики видим, трам-парам, ящики, и на этом наши успехи заканчиваются. При консольном режиме сикул подключается с юзером как его там...mailuser и аналогичным паролем, но посылаемые/принимаемые письма из лога не берутса...знааааачит это скрипт дурит, пральна?
В скрипте - ой-ой-ой - описанная тут уже ошибка в строке 73 или 74, с руганью на $sth1-->finish - тоже вроде не особая беда...
Вы не решили эту проблему, почему он при старте ругается?
У вас если войти в вкладку "Весь лог" - что система говорит? Лог показывает? Если бы дело было в юзер/пассвордах - админка бы мне сообщила код ошибки, что и происходит смени я в конфигах пароль postfix\a или mailuser'a в моем же случае она его не говорит, такое ощущение, что эта функция не работает просто..отсутствует..
Всегда с вами....

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

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

Непрочитанное сообщение fox » 2010-02-09 3:25:29

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

ccolll
проходил мимо

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

Непрочитанное сообщение ccolll » 2010-02-09 15:33:06

degarn писал(а):
fox писал(а):Значит не получается, подсоединиться к mysql серверу, проверь пользователи есть в сервере такие, или root пропеши для эксперемента... Муська на этом же сервере? Или на другом... Тут всё просто где то у вас ошибка или очипятка может быть... Сами подумайте это плёвая проблема! Не получается к муське потключится...
Да не совсем, я бы не писал :-)
Дело ведь в том, что на самом-то деле он канешна подключается, и юзера есть и вообще все как говорит моя любимая дочь "хаясо".
Доменчики видим, трам-парам, ящики, и на этом наши успехи заканчиваются. При консольном режиме сикул подключается с юзером как его там...mailuser и аналогичным паролем, но посылаемые/принимаемые письма из лога не берутса...знааааачит это скрипт дурит, пральна?
В скрипте - ой-ой-ой - описанная тут уже ошибка в строке 73 или 74, с руганью на $sth1-->finish - тоже вроде не особая беда...
Вы не решили эту проблему, почему он при старте ругается?
У вас если войти в вкладку "Весь лог" - что система говорит? Лог показывает? Если бы дело было в юзер/пассвордах - админка бы мне сообщила код ошибки, что и происходит смени я в конфигах пароль postfix\a или mailuser'a в моем же случае она его не говорит, такое ощущение, что эта функция не работает просто..отсутствует..
У вас случаем не эта ошибка при запуске maillog.pl:
Can't call method "finish" on an undefined value at ./maillog.pl line 73.


Если эта ошибка, тогда укажите где у вас лежит лог почтовика:

open(MAIL, "/var/log/maillog");


И тут проверте:

$dbh = DBI->connect("DBI:mysql:host=localhost;database=maillogs","mailuser","passwordmailuser")

degarn
рядовой
Сообщения: 37
Зарегистрирован: 2010-02-02 22:19:37
Откуда: обитатель штата Люблино
Контактная информация:

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

Непрочитанное сообщение degarn » 2010-02-20 0:41:33

fox писал(а):Сразу бы сказали, что у вас база пустая, ведь так, в базу не одна запись не попала, верно?
Тогда следующее, если вы внимательно читали статью, то в ней я писал скрипт изначально не мой, я его правил, и я как то сам столкнулся, что не хочет брвть из лога, тогда в статье я же писал, грохните все записи в логи и будет тогда вам счастье!
Внимательно прочтите!
Читал канеш, и логи зачищал, Вы правы, в базу ничего не попадает, и я делал как Вы говорили - обнулял логи..
Всегда с вами....

degarn
рядовой
Сообщения: 37
Зарегистрирован: 2010-02-02 22:19:37
Откуда: обитатель штата Люблино
Контактная информация:

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

Непрочитанное сообщение degarn » 2010-02-20 0:52:25

Смотрите:

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

#!/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 'degarn@cyclone.lyublino.net')
        {
	$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'});
        }
  }
}

$sth->finish;
$sth1->finish;
$dbh->disconnect;

Все, вроде, по уму...стартуем:
#./maiiog.pl
Can't call method "finish" on unblessed reference at ./maillog.pl line 74.
У вас случаем не эта ошибка при запуске maillog.pl:
Can't call method "finish" on an undefined value at ./maillog.pl line 73.


Если эта ошибка, тогда укажите где у вас лежит лог почтовика:

open(MAIL, "/var/log/maillog");


И тут проверте:

$dbh = DBI->connect("DBI:mysql:host=localhost;database=maillogs","mailuser","passwordmailuser")[/quote]
Всегда с вами....

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

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

Непрочитанное сообщение fox » 2010-02-20 3:30:35

Ну, так что? Получилось, не получилось в базу данные добавить?

Мне самому скрипт не нравится, но так как я уже не работаю там где это актуально, и мой сервер умер (домашний - тестовый), то не где поработать...
Но не переживайте сейчас разберёмся с вашей проблемой, а в будующем я скоро более менее освою язык C++, и уже на нём думаю написать замену этому не удачному скрипту...
Да пребудет с нами сила!!!
Всех убью, один останусь!

ccolll
проходил мимо

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

Непрочитанное сообщение ccolll » 2010-02-24 12:48:26

Посмотрите что пишит у вас в лог MYSQL после запуска скрипта maillogs.pl.

Когда настраивали программу вы делали вот это:
GRANT ALL PRIVILEGES ON maillogs.* TO mailuser@localhost IDENTIFIED BY 'mailuser';

и после этого надо сделать:
flush privileges;