The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Вопрос о журналировании Postfix"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Вопрос о журналировании Postfix"  
Сообщение от Makc2K email(ok) on 19-Апр-06, 14:55 
Столкнулся с потребностью парсера maillog файла. Порыскав решил написать сам на перле. Но тут меня постигла трудность. А именно, при изучении глазами лога я не нашел ни одной записи по исходящей почты от моих пользователей. То есть записи об отправке писем от моего домена отсутствуют. Видимо нужно что то дописать в master.cf, например -v напротив smtpd. Но я не уверен, может кто поможет подсказать поточнее или кинуть ссылочкой. Все исходящие, передаются на релей провайдера.

Заранее спасибо!

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Вопрос о журналировании Postfix"  
Сообщение от Free (??) on 19-Апр-06, 17:34 
>Столкнулся с потребностью парсера maillog файла. Порыскав решил написать сам на перле.
>Но тут меня постигла трудность. А именно, при изучении глазами лога
>я не нашел ни одной записи по исходящей почты от моих
>пользователей. То есть записи об отправке писем от моего домена отсутствуют.
>Видимо нужно что то дописать в master.cf, например -v напротив smtpd.
>Но я не уверен, может кто поможет подсказать поточнее или кинуть
>ссылочкой. Все исходящие, передаются на релей провайдера.
>
>Заранее спасибо!


Все уже написано. http://www.postfix.org/addon.html Например, pflogsumm. Дописывать ничего не надо. Все и так должно в логи сыпаться.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Вопрос о журналировании Postfix"  
Сообщение от Makc2K email(ok) on 19-Апр-06, 17:46 
Я тоже так думаю что все должно сыпаться, но ведь не сыпется. Таких строчек как from=user@mydomain.ru не нахожу. Pflogsumm я смотрел - разочарование полное. То что он рисует годно лишь для админа но никак не для шефа. Нужна тиблица типа | пользователь | адресат | время отправки | размер письма | - все больше ничего не надо.


Спасибо за ответ!

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Вопрос о журналировании Postfix"  
Сообщение от Free (ok) on 21-Апр-06, 10:38 
>Я тоже так думаю что все должно сыпаться, но ведь не сыпется.
>Таких строчек как from=user@mydomain.ru не нахожу. Pflogsumm я смотрел - разочарование
>полное. То что он рисует годно лишь для админа но никак
>не для шефа. Нужна тиблица типа | пользователь | адресат |
>время отправки | размер письма | - все больше ничего не
>надо.
>
>
>Спасибо за ответ!


Ну так вроде pflogsumm все это и выдает. Юзер объем, время и т.д. Там еще разные утилиты есть. В любом случае - это не статистика... Так не считают. Отправит юзер одно письмо размером в 1 мегабайт на 10 адресов и все. Юзер отправил 1 мегабайт на сервер, а сервер отправил 10 мегов. А теперь представим, что с некоторыми серверами в мухосранске плохой коннект и передача письма происходитв течение нескольких часов с постоянными таймаутами... Там и 50 и 100 набежит... Что в этом случае покажет скрипт статистики ... мне неизвестно.... да и возможно ли тут как-либо посчитать... думаю, что нет... Только на 25 порту считать без разделения по пользователям.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Вопрос о журналировании Postfix"  
Сообщение от _KAV_ (ok) on 21-Апр-06, 11:27 
>Я тоже так думаю что все должно сыпаться, но ведь не сыпется.
>Таких строчек как from=user@mydomain.ru не нахожу.
Извини за наивный вопрос - а у тебя юзверги отправляют почту через твой сервер или сразу через релейный напрямую, мимо твоего постфикса?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Вопрос о журналировании Postfix"  
Сообщение от Makc2K email(??) on 21-Апр-06, 13:08 
Отправляют конечно через мой smtp, а он в свою очередь уже на релей провайдера. Я уже нашел где взять from и to. У меня проверка идет через amavis, в его логе все видно.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Вопрос о журналировании Postfix"  
Сообщение от Дмитрий email(??) on 21-Апр-06, 17:16 
#!/usr/local/bin/bash

emails=" ДядяВася@МойДомен "
logfile="/var/log/postfix.log"

# Создаём цикл для почтовыйх ящиков в списке emails
for myemail in ${emails}
do
# Непринятая почта
cat $logfile | grep "$myemail" | grep "NOQUEUE" | awk '{ for (i=NF;i>0;--i) {{a=$i} if ( a~"from=" ) {print $1,$2,$3,a}}}' > ./tmp/noqueue.$myemail

# Кто присылал почту
cat /dev/null > ./tmp/who-is-send.$myemail
id=$(cat $logfile | grep "$myemail" | grep "postfix/virtual" | awk '{print $6}' | cut -d\: -f1)

for myid in ${id}
    do
    cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g >> ./tmp/who-is-send.$myemail
    done

# Кому посылали почту
cat /dev/null > ./tmp/$myemail.send-to
id=$(cat $logfile | grep "$myemail" | grep "postfix/qmgr" | awk '{print $6}' | cut -d\: -f1)
for myid in ${id}
    do
    kol=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g | wc -l | awk '{print $1}')
    if [ $kol != 0 ]
        then
    firstlog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7}' | sed s/","/""/g)
    traflog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $8}' | sed s/","/""/g | sed s/"size="/""/g)
    secondlog=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $7}' | sed s/","/""/g)
    echo "$firstlog $secondlog $traflog" >> ./tmp/$myemail.send-to
    fi
    done
    traf=$(cat ./tmp/who-is-send.$myemail | awk '{s+=$5} END {print s}')
    echo "$myemail (Входящий траффик) -- $traf Байт"
done

В директории куда положишь скрипт, нужно создать папку tmp

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Вопрос о журналировании Postfix"  
Сообщение от Makc2K email(??) on 21-Апр-06, 18:01 
Большое спасибо за скрипт. Но если чесно на перле он будет менее громоздким.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Вопрос о журналировании Postfix"  
Сообщение от dik email(ok) on 21-Апр-06, 17:19 
#!/usr/local/bin/bash

emails=" ДядяВася@МойДомен "
logfile="/var/log/postfix.log"

# Создаём цикл для почтовыйх ящиков в списке emails
for myemail in ${emails}
do
# Непринятая почта
cat $logfile | grep "$myemail" | grep "NOQUEUE" | awk '{ for (i=NF;i>0;--i) {{a=$i} if ( a~"from=" ) {print $1,$2,$3,a}}}' > ./tmp/noqueue.$myemail

# Кто присылал почту
cat /dev/null > ./tmp/who-is-send.$myemail
id=$(cat $logfile | grep "$myemail" | grep "postfix/virtual" | awk '{print $6}' | cut -d\: -f1)

for myid in ${id}
    do
    cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g >> ./tmp/who-is-send.$myemail
    done

# Кому посылали почту
cat /dev/null > ./tmp/$myemail.send-to
id=$(cat $logfile | grep "$myemail" | grep "postfix/qmgr" | awk '{print $6}' | cut -d\: -f1)
for myid in ${id}
    do
    kol=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g | wc -l | awk '{print $1}')
    if [ $kol != 0 ]
        then
    firstlog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7}' | sed s/","/""/g)
    traflog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $8}' | sed s/","/""/g | sed s/"size="/""/g)
    secondlog=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $7}' | sed s/","/""/g)
    echo "$firstlog $secondlog $traflog" >> ./tmp/$myemail.send-to
    fi
    done
    traf=$(cat ./tmp/who-is-send.$myemail | awk '{s+=$5} END {print s}')
    echo "$myemail (Входящий траффик) -- $traf Байт"
done

Создай папку tmp, там куда положишь скрипт.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Вопрос о журналировании Postfix"  
Сообщение от dik email(ok) on 21-Апр-06, 17:21 
#!/usr/local/bin/bash

emails=" ДядяВася@ТвойДомен "
logfile="/var/log/postfix.log"

# Создаём цикл для почтовыйх ящиков в списке emails
for myemail in ${emails}
do
# Непринятая почта
cat $logfile | grep "$myemail" | grep "NOQUEUE" | awk '{ for (i=NF;i>0;--i) {{a=$i} if ( a~"from=" ) {print $1,$2,$3,a}}}' > ./tmp/noqueue.$myemail

# Кто присылал почту
cat /dev/null > ./tmp/who-is-send.$myemail
id=$(cat $logfile | grep "$myemail" | grep "postfix/virtual" | awk '{print $6}' | cut -d\: -f1)

for myid in ${id}
    do
    cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g >> ./tmp/who-is-send.$myemail
    done

# Кому посылали почту
cat /dev/null > ./tmp/$myemail.send-to
id=$(cat $logfile | grep "$myemail" | grep "postfix/qmgr" | awk '{print $6}' | cut -d\: -f1)
for myid in ${id}
    do
    kol=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g | wc -l | awk '{print $1}')
    if [ $kol != 0 ]
        then
    firstlog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7}' | sed s/","/""/g)
    traflog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $8}' | sed s/","/""/g | sed s/"size="/""/g)
    secondlog=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $7}' | sed s/","/""/g)
    echo "$firstlog $secondlog $traflog" >> ./tmp/$myemail.send-to
    fi
    done
    traf=$(cat ./tmp/who-is-send.$myemail | awk '{s+=$5} END {print s}')
    echo "$myemail (Входящий траффик) -- $traf Байт"
done

Папку tmp создай.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру