Я знаю, что об этом спрашивали сотни раз. Но я много раз безуспешно искал в Google. Мой вопрос: Я хочу регистрировать каждую активность моего сервера postfix. Ни файл по умолчанию /var/log/mail ни какие-либо другие, касающиеся mail или postfix существует.
Какую точную строку нужно поместить в конфигурационный файл /etc/postfx/main.cf чтобы включить ведение журнала?
Где я могу посмотреть, какой конфигурационный файл использует postfix? (согласно моей подсказке ниже)
Спасибо за ваши ответы.
Подсказка: Я использую postfix вместе с dovecot. Я установил meta package несколько месяцев назад.
Выход для postconf -n:
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix home_mailbox = Maildir/ inet_interfaces = all mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-dovecot-postfix.conf -n -m "${EXTENSION}" mailbox_size_limit = 0 mydestination = mydomain.de localhost myhostname = mydomain.de mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key smtpd_tls_mandatory_ciphers = medium smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes tls_random_source = dev:/dev/urandom virtual_alias_maps = hash:/etc/postfix/virtual virtual_gid_maps = static:5000 virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_domains = mydomain2.de virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000Output for /etc/syslog.conf# /etc/syslog.conf Configuration file for syslogd.## For more information see syslog.conf(5)# manpage.## First some standard logfiles. Log by facility.#auth,authpriv.* -/var/log/auth.log*.*;auth,authpriv.none;local0.none;local1.none -/var/log/syslog#cron.* -/var/log/cron.logdaemon.* -/var/log/daemon.logkern.* -/var/log/kern.loglpr.* -/var/log/lpr.loguser.* -/var/log/user.log## Logging for the mail system. Split it up so that# it is easy to write scripts to parse these files.## Logging for INN news system#news.crit -/var/log/news/news.critnews.err -/var/log/news/news.errnews.notice -/var/log/news/news.notice## Some `catch-all' logfiles.#*.=debug;\ auth,authpriv.none;\ news.none -/var/log/debug*.=info;*.=notice;*.=warning;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages## Emergencies are sent to everybody logged in.#*.emerg *## I like to have messages displayed on the console, but only on a virtual# console I usually leave idle.##daemon,mail.*;\# news.=crit;news.=err;news.=notice;\# *.=debug;*.=info;\# *.=notice;*.=warning /dev/tty8# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,# you must invoke `xconsole' with the `-file' option:# # $ xconsole -file /dev/xconsole [...]## NOTE: adjust the list below, or you'll go crazy if you have a reasonably# busy site..#daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warning |/dev/xconsole
Они должны быть в /var/log/mail.log. Однако, похоже, что конфигурация вашего средства системного журнала была изменена вами (или вашим провайдером). Использование простого syslogd вместо rsyslogd очень возможно, но тогда вы можете ожидать, что все будет работать не так, как вы ожидали.
Как уже упоминалось в комментариях, установив rsyslog, файлы снова появились.
Чтобы быть явным: постфиксные журналы для системный журнал и использует mail средство системного журнала.
Вам нужно будет проверить, какой сервер системного журнала вы запускаете, но по умолчанию в Ubuntu до текущей версии 20.04 LTS используется rsyslogd.Если вы измените демон системного журнала, вам нужно будет настроить его для mail средство системного журнала.
Проверьте, если mail записывается в какой-либо конкретный файл путем поиска mail. (без какого-либо предшествующего комментария / хэш-символа) но также включите все "уловите все правила"; *.:
# We see that "/etc/rsyslog.conf" includes files from "/etc/rsyslog.d"/etc/rsyslog.conf:$IncludeConfig /etc/rsyslog.d/*.conf# "*.*" means that _all_ events _except_ "authpriv" is logged to /var/log/syslog/etc/rsyslog.d/50-default.conf:*.*;auth,authpriv.none -/var/log/syslog# Here goes "mail"/etc/rsyslog.d/50-default.conf:mail.* -/var/log/mail.log# In _addition_ "mail.err" goes here/etc/rsyslog.d/50-default.conf:mail.err /var/log/mail.err# And in the event of an "emerg" priority message../etc/rsyslog.d/50-default.conf:*.emerg :omusrmsg:*
Rsyslog считывает файлы конфигурации в порядке, и все события (строки журнала) проходят через все элементы конфигурации если не любая конфигурация отбрасывает или отфильтровывает событие.
Другой пример, где mail.* является подавленный от перехода в общую messages файл, затем отправляется как на файл, так и на внешний сервер системного журнала UDP:
Поэтому следите за порядком файлов, когда вы что-то меняете (сортировка по номерам или символам), и используйте rsyslog.d каталог вместо того, чтобы возиться с rsyslog.conf.
Пакет Postfix Ubuntu по умолчанию просто регистрируется в “/var/log/mail.log”. Если этого нет или он не регистрируется там, пожалуйста, уточните, что вы изменили в своей системе. Без предоставления такой подробной информации о том, что вы пробовали / нашли, мы не сможем вам по-настоящему помочь. Возможно, это так же просто, как измененная конфигурация rsyslog. У нас нет доступа к вашей системе, и мы не можем видеть ваши экраны, поэтому мы полагаемся на то, что вы указали в своем вопросе. А чтобы распечатать текущую конфигурацию Postfix, используйте postconf -n.
Привет. Я добавил выходные данные postconf. Я ничего не изменил в прошлом. Я только что установил мета-пакет. Ну, я мог бы предположить, что кто-то занял сервер и удалил логи :-D. В последние дни с этого сервера было отправлено много сообщений, которые, похоже, являются спамом…
Если вы подозреваете, что кто-то просто грубо удалил файлы журнала, то они могут больше не вращаться должным образом, и дескриптор файла все еще открыт для более старого (несвязанного) файла журнала. Вы пытались перезапустить Postfix и rsyslog?
Да, если вы уже несколько раз перезапускали postfix. Я также перезапустил сервер несколько минут назад. Никаких изменений. Файлы по-прежнему отсутствуют. Насколько я знаю, все активные журналы будут сжаты через некоторое время, поэтому я думаю, что это все активные: aptitude, auth, daemon, dovecot, dpkg, mysql, vsftpd. Что ж, если я не получу никаких результатов сегодня вечером, я сделаю резервную копию и запущу процесс переустановки (функция поставщика). И, кстати, я не могу перезапустить rsyslog(d) → нераспознанный сервис.
Используете ли вы образ поставщика на своем сервере? Он может быть изменен и иметь настройки по умолчанию, отличные от Ubuntu. Если да, то это важная информация, поскольку мы, возможно, рассматриваем изменения, внесенные вашим провайдером в Ubuntu. Убедитесь, что у вас запущен rsyslog и настроен для mail.* в /etc/rsyslog.d/50-default.conf. Если этого не хватает, то спросите своего провайдера, что еще они изменили в образе, или, что еще лучше, убедитесь, что они установили для вас обычный образ Ubuntu. (См. также [это linuxquestions.org сообщение](http://www.linuxquestions.org/questions/linux-server-73/missing-mail-log-file-4175472679 /)).
Я думаю, что они использовали образ ubuntu по умолчанию, но я не могу гарантировать, что они не внесли в него никаких изменений. Ps aux возвращает:
системный журнал 1289 0.0 0.0 12468 796 ? Ss 15:29 0:00 /sbin/syslogd -системный журнал u
Итак, запущен системный журнал, а не rsyslog. Существует также конфигурационный файл непосредственно в /etc. /etc/rsyslog не существует. Ну, хорошо, может быть, это не изображение по умолчанию :-D. Я опубликовал файл syslog.conf выше.
Хорошо. Удалил системный журнал и установил rsyslog. Теперь я могу найти некоторые файлы mail.* в /var/log. mail.info и mail.log имеют небольшое содержимое (197 байт), поэтому я думаю, что теперь это мои новые файлы журналов для почты. Существует также новый файл /var/log/messages. Я проверю их в ближайшие два дня. Может быть, сейчас он работает так, как ожидалось. Спасибо за твою помощь, Герт