Как активировать логирование сообщений phpmail
Включение лог-файла сообщений phpmail является важным шагом для обеспечения надежной и эффективной отправки электронной почты на вашем сайте или сервере. В этой статье мы расскажем, как включить логирование сообщений phpmail на виртуальном хостинге и на VPS.
Что такое лог сообщений
Лог сообщений представляют собой записи событий, которые происходят во время процесса отправки электронной почты. Они содержат информацию о различных этапах отправки письма, таких как подключение к почтовому серверу, аутентификация, отправка и получение письма.
Зачем включать логирование сообщений
Включение логов сообщений phpmail может быть важным по нескольким причинам и может быть полезным в следующих случаях:
- Отладка и обработка ошибок при отправке почты. Логи сообщений предоставляют подробную информацию о процессе отправки электронной почты, включая ошибки, предупреждения и отладочную информацию. При возникновении проблем с отправкой писем логи помогут выявить возможные причины и позволят вам внести соответствующие исправления.
- Мониторинг почтовых операций. Включение логов позволяет вам отслеживать и контролировать отправку почты на вашем веб-сайте или сервере. Вы можете просматривать логи, чтобы убедиться, что отправка и получение писем проходит успешно, и при случае быстро отслеживать любую нежелательную активность.
- Анализ производительности и оптимизация. Логи сообщений могут быть использованы для анализа производительности и оптимизации процесса отправки электронной почты.
- Безопасность. Логирование сообщений может быть полезным с точки зрения безопасности. Логи могут служить в качестве доказательства выполнения отправки писем и помочь при поиске возможных нарушений.
Как включить лог сообщений phpmail на виртуальном хостинге
С помощью панели управления ISPmanager вы можете включить логирование сообщений на своём виртуальном хостинге. Для этого:
- Откройте панель управления ISPmanager.
- В левом меню выберите раздел Сайты.
- Выберите нужный вам веб-сайт.
- В верхней панели найдите настройку PHP .
- Найдите в списке опцию mail.add_x_header и щёлкните по ней.
- В верхней панели нажмите Изменить, чтобы открыть файл для редактирования.
- В графе «Переменная для Apache» пропишите On, а затем сохраните изменения.
- Вернитесь к изначальному списку и найдите модуль mail.log. Выберите его и щёлкните Изменить в верхней панели.
- В графе «Переменная для Apache» пропишите /var/www/логин-вашего-хостинга/data/phpmail.log.
- Сохраните изменения.
Готово! Вы активировали лог сообщений phpmail.
Как включить лог сообщений phpmail на VPS/VDS
Включить лог сообщений phpmail на VPS/VDS можно при помощи различных панелей управления. В нашем руководстве мы покажем, как это сделать при помощи ISPmanager.
RU-CENTER поставляет различные VDS-хостинги с уже предустановленной панелью ISPmanager. Мы предлагаем вам ознакомиться с тарифами, если вы ещё не знакомы с этой услугой.
- Откройте панель управления ISPmanager.
- В левом меню выберите раздел Сайты.
- Выберите нужный вам веб-сайт.
- В верхней панели найдите вкладку Файлы сайта.
- Перед вами откроется «Менеджер файлов». Нажмите на кнопку Создать файл.
- В поле «Тип» оставьте значение Файл.
В поле «Имя» введите info.php.
- Нажмите на кнопку Создать, чтобы создать новый файл.
- Выберите созданный файл «info.php» и следом в верхней панели найдите вкладку «Редактировать».
- Щёлкните Открыть.
- Введите в текстовом редактор следующий скрипт:
- Сохраните изменения, нажав Сохранить и закрыть.
- После создания файла info.php вы можете получить доступ к нему, введя URL-адрес вашего сайта, за которым следует /info.php (например, http://example.com/info.php). В результате, вы увидите информацию о настройках PHP и сервера.
- Вы можете настроить логирование почты для конкретного сайта или всех сайтов на сервере, следуя следующим инструкциям:
- Для добавления настроек для одного сайта, вам необходимо внести записи в файл, путь к которому указан в параметре «Loaded Configuration File».
- Чтобы добавить настройки для всех сайтов на сервере, вам нужно внести записи в файл php.ini, путь к которому указан в параметре «Configuration File (php.ini) Path».
- Для включения логирования сообщений, добавьте следующий код в конец файла php.ini:
где/var/tmp/php.mail.log — это файл, в который будет записываться лог сообщений phpmail.
- Вам остаётся только перезапустить сервер Apache с помощью команды:
Debian/Ubuntu: service apache2 restart
CentOS: service httpd restart.
Готово! Вы успешно включили лог сообщений phpmail.
Конфигурационные файлы и логи
Статья содержит перечень конфигурационных файлов и логов панели управления и сторонних сервисов. Для работы со сторонними сервисами панель управления использует учётные записи пользователей операционной системы.
Панель управления
Конфигурационные файлы
Конфигурационные файлы панели управления находятся в директории /usr/local/mgr5/etc/:
- core.conf — конфигурационный файл COREmanager;
- debug.conf — настройка уровня логирования;
- ihttpd.conf — конфигурационный файл встроенного веб-сервера ihttpd;
- ispmgr.conf — основной конфигурационный файл ISPmanager;
- sptar.conf — конфигурационный файл модуля резервного копирования;
- mgrlist.conf — список панелей управления, установленных на сервере.
/usr/local/mgr5/etc/ispmgr.conf.d/ — директория с конфигурационными файлами управления сервисами.
/usr/local/mgr5/etc/xml/ — директория с xml-файлами, описывающими интерфейс панели управления.
Лог-файлы
Лог-файлы панели управления находятся в директории /usr/local/mgr5/var/:
- ispmgr.log — основной лог ISPmanager;
- core.log — лог COREmanager;
- pkg.log — лог установки, удаления и обновления пакетов панели управления;
- ihttpd.log — лог встроенного веб-сервера ihttpd;
- backup2*.log — логи модуля резервного копирования;
- usermove.log — лог импорта пользователя.
Веб-серверы
Apache
/etc/httpd/conf/vhosts/ / .conf — конфигурационные файлы доменов пользователей;
— имя пользователя-владельца домена — доменное имя
/etc/httpd/conf/webdav-users/ — конфигурационные файлы веб-диска;
/etc/httpd/conf.d/ — конфигурационные файлы дополнительного ПО. Например, Roundcube, phpMyAdmin.
ОС Debian, Ubuntu:
/etc/apache2/conf/vhosts/ / .conf — конфигурационные файлы доменов пользователей;
— имя пользователя-владельца домена — доменное имя
/etc/apache2/conf/webdav-users/ — конфигурационные файлы веб-диска;
/etc/apache2/conf.d/ — конфигурационные файлы дополнительного ПО.
Nginx
/etc/nginx/vhosts/ / .conf — конфигурационные файлы доменов пользователей.
— доменное имя
/etc/nginx/vhosts-includes/ — конфигурационные файлы дополнительного ПО.
/var/www/httpd-logs/ — лог-файлы WWW-доменов.
PHP
Нативная версия
/etc/php.ini — основной конфигурационный файл.
/etc/php.d/*.ini — конфигурационные файлы расширений php.
/var/www/ /data/php-bin/php.ini — конфигурационные файлы пользователей.
— имя пользователя
Альтернативные версии
/opt/php /etc/php.ini — основной конфигурационный файл.
/opt/php /etc/php.d/*.ini — конфигурационные файлы расширений php.
/var/www/ /data/php-bin-isp-php /php.ini — конфигурационные файлы пользователей.
— имя пользователя — версия PHP. Например, для PHP 5.4, конфигурационные файлы находится в директории /opt/php54/etc/
PHP-FPM
Нативная версия
/etc/php-fpm.conf — основной конфигурационный файл.
/etc/php-fpm.d/ — конфигурационные файлы пользователей.
Альтернативные версии
/opt/php /etc/php-fpm.conf — основной конфигурационный файл.
/opt/php /etc/php-fpm.d/ — конфигурационные файлы пользователей.
— версия PHP. Например, для PHP 5.4, конфигурационные файлы находится в директории /opt/php54/etc/
Почта
Автоответчик
Сообщения и логи автоответчика хранятся в директории /var/www/ /data/email/ / /:
- .responder.msg — сообщения автоответчика.
- .responder.db — логи автоответчика.
— имя пользователя — имя почтового домена — имя почтового ящика
Exim
/etc/exim/domains — настройки почтовых доменов.
/etc/exim/domainips — сопоставление почтовых доменов и IP-адресов, используемых для отправки почты.
/etc/exim/passwd — список почтовых ящиков.
/etc/exim/aliases — псевдонимы для почтовых ящиков.
ОС Debian, Ubuntu
/etc/exim4/exim4.conf — основной конфигурационный файл.
/etc/exim4/domains — настройки почтовых доменов.
/etc/exim4/domainips — сопоставление почтовых доменов и IP-адресов, используемых для отправки почты.
/etc/exim4/passwd — список почтовых ящиков.
/etc/exim4/aliases — псевдонимы для почтовых ящиков.
Dovecot
/etc/dovecot/dovecot.passwd — данные о почтовых ящиках.
/var/www/ /data/email/ / / .dovecot.sieve — правила сортировки почты для ящика.
/etc/mail/spamassassin/local.cf — правила для спам-фильтра
— имя пользователя — имя почтового домена — имя почтового ящика
DNS
Powerdns
/etc/pdns/pdns.conf — основной конфигурационный файл.
/var/log/messages — лог-файл.
ОС Debian, Ubuntu:
/etc/powerdns/pdns.conf — основной конфигурационный файл.
/var/log/syslog — лог-файл.
Bind
/etc/named/named.conf — основной конфигурационный файл.
/var/log/messages — лог-файл.
ОС Debian, Ubuntu:
/etc/bind/named.conf — основной конфигурационный файл.
/var/log/syslog — лог-файл.
СУБД
Нативная версия
Альтернативные версии
Альтернативные версии MySQL запускаются в докер-контейнерах, файлы в контейнер монтируются из директории /var/lib/ /. Например, /var/lib/mysql-5.7/.
Конфигурационные файлы: /etc/ispmysql/ /custom.cnf.
— версия MySQL
— имя базы данных
FTP
ProFTPd
/etc/proftpd.conf — основной конфигурационный файл ProFTPd.
/etc/proftpd.passwd — список пользователей FTP.
/var/log/proftpd/ — директория с лог-файлами ProFTPd.
PureFTPd
/etc/pure-ftpd/conf/ — директория с конфигурационными файлами PureFTPd.
/var/log/pureftpd.log — лог-файл PureFTPd.
Брандмауэр
/etc/sysconfig/iptables — правила сетевого экрана iptables.
ОС Debian, Ubuntu:
/etc/ispiptable.conf, /etc/ispip6table.conf — правила сетевого экрана iptables.
Модули интеграции
LetsEncrypt
Обратите внимание!
- Перейдите в Настройки → Настройка логирования.
- Зажмите Ctrl и выделите модули ssl, rpc, core_modules.
- Нажмите кнопку Максимальный.
Модуль записывает информацию в лог-файлы:
- /usr/local/mgr5/var/letsencrypt.log;
- /usr/local/mgr5/var/ispmgr.log.
Softaculous
/etc/nginx/vhosts-includes/softaculous.conf — конфигурационный файл модуля.
/var/softaculous/error_log.log — лог-файл модуля.
Imunify
/usr/local/mgr5/var/raisp_data/log/ — директория с лог-файлами модуля.
Virusdie
/usr/local/mgr5/var/virusdierun.log — лог-файл модуля.
Работа с логами (журналами) сервера
Как правило, в Linux логи хранятся в специальном каталоге /var/log , внутри которого создаются отдельные файлы и папки для того или иного сервиса. Однако стоит учитывать, что для служб и ПО не запрещено задавать специальные каталоги для хранения логов. Например, для виртуальных хостов (сайтов) панель ISPmanager задает специальный каталог ( /var/www/htttpd-logs ) для удобного анализа логов по каждому сайту отдельно. А, например, стороннее ПО, устанавливаемое в директорию /opt , чаще всего будет вести логи также внутри этого каталога.
Стоит отметить, что несмотря на общую структуру, наименования отдельных файлов и каталогов могут отличаться в зависимости от определенной версии ОС, чаще всего разделяют на Debian-based (Debian/Ubuntu) и RedHat-based (Centos, Rocky Linux, AlmaLinux и т.д.), в статье мы будем разделять именно так.
Далее рассмотрим подробнее особенности вышеназванных наиболее популярных категорий журналов.
Системные логи
Начнем с системных логов как наиболее важных (система — основа работы сервера:)).
- Системный журнал, как правило, записывается в файлы:
Debian-based:
/var/log/syslog RedHat-based:
/var/log/messages
Там находится много различной информации о событиях, процессах и ошибках практически от всех системных служб сервера и, в частности, сообщения от ядра Linux. Также к системному логу можно отнести:
/var/log/dmesg (для удобного просмотра этого журнала можно просто выполнить команду dmesg -T )
/var/log/kern.log
в этих файлах ведется журнал с сообщениями ядра и драйверов всех устройств сервера. Обратите внимание, что эти логи ведутся с момента старта системы, поэтому часто после ее аварийной перезагрузки довольно сложно узнать, что было, так как этого события уже нет в логе. - Логи авторизации.
Сюда вносится информация о входах в систему, в том числе и о неудачных попытках (полезно для отслеживания попыток подбора пароля к системе и выяснения, кто был на сервере)
Debian-based:
/var/log/auth.log RedHat-based:
/var/log/secure
- Лог загрузки ОС:
/var/log/boot.log
- Лог планировщика (CRON) системы:
/var/log/cron
Логи веб-сервера
В стандартных конфигурациях сайты осуществляют свою работу посредством таких веб-серверов, как Apache или Nginx. Они могут быть установлены как поодиночке, так и в связке, где Nginx будет отвечать за фронтенд, а Apache за бэкенд.
У Apache и Nginx есть свои логи, как правило, двух категорий: первая — хранит журнал посещений, вторая — хранит информацию об ошибках, уведомлениях, примечаниях, предупреждениях и т. д.
Также в связке с Nginx довольно часто устанавливается интерпретатор PHP (php-fpm), соответственно, он тоже имеет свой лог с ошибками и уведомлениями.
Логи веб-сервера Apache
Apache создает два лог-файла:
- лог посещений (доступа) ( access.log/access_log );
- лог ошибок ( error.log/error_log ).
Конфигурация Apache позволяет задать хранение этих файлов отдельно для каждого сайта, размещенного на сервере. Хороший пример — реализация журналов веб-сервера в панели ISPmanager — логи хранятся в директории /var/www/httpd-logs и называются domain.name.access.log и domain.name.error.log , где вместо domain.name — имя определенного домена. Могут быть и другие реализации хранения логов, это всегда отражено в конфигурационных файлах веб-сервера.
Что касается стандартной реализации, то логи на Debian-based системах хранятся в каталоге /var/log/apache2 , а у RedHat-based систем в каталоге /var/log/httpd .
Логи веб-сервера Nginx
Nginx создает тоже два файла, хранящих журнал посещений и журнал ошибок. Файлы находятся в каталоге /var/log/nginx . В случае конфигурации веб-сервера как связки Nginx с Apache, журналы Nginx иногда пишутся в одном файле с логами Apache, с одной стороны, это может быть удобно, но в некоторых случаях для обнаружения ошибок это может создать трудности.
Также как и в Apache, Nginx может быть настроен для ведения логов каждого сайта отдельно.
Пример отображения стандартных логов Nginx в консоли:
Файлы .gz — это архивы логов, созданные в результате ротации логов, о ней расскажем позже.
Логи PHP-интерпретатора
Стандартно PHP-интерпретатор входит в конфигурацию Apache как модуль PHP. В таком случае все ошибки PHP хранятся там же, где основной лог Apache.
Если интерпретатор PHP работает в виде службы PHP-FPM (например, для связки веб-сервера Nginx+PHP-fpm), то логи хранятся отдельно, в каталоге /var/log/php-fpm .
В PHP (через конфигурационный файл php.ini) возможно настроить запись ошибок в определенный лог-файл, либо задать запись ошибок на определенной странице в отдельный файл (это уже осуществляется через файл .htaccess в соответствующем каталоге сайта). Чаще всего для таких случаев задают имя файла php_error.log или просто error.log , располагаться они могут как в каталоге сайта, так и любом другом каталоге пользователя, проверить лучше непосредственно в конфигурации PHP и веб-сервера.
Логи почтовой службы
На серверах довольно часто, помимо веб-сервера, присутствует и почтовая служба для отправки и приема писем все с тех же сайтов или отдельно через электронные почтовые ящики. Наиболее популярной конфигурацией почты сейчас является связка Exim (отправка и прием писем по протоколу SMTP) и Dovecot с сортировщиком sieve (для доступа пользователей к почтовым ящикам по протоколу IMAP/POP3).
В этом случае логи Exim находятся в каталоге /var/log/exim , чаще всего интересует файл mainlog (в нем хранятся все события почтовой службы), еще есть panic.log (там находятся сообщения об ошибках).
У Dovecot же логи, как правило, пишутся в файл /var/log/maillog или /var/log/mail.log , в него заносится информация о доставке, приеме и сортировке писем.
Логи FTP
В качестве FTP-службы в Linux есть несколько вариантов ПО, но в целом методика ведения логов у каждого ПО примерно схожая. В папке /var/log создаются журналы FTP-сервера, в случае использования vsFTPd это будет файл vsftpd.log , а в случае proFTPd — proftpd.log . В случае PURE-FTPd поищите файл /var/log/pureftpd.log . Если лога FTP вы не обнаружите, скорее всего, он все равно ведется, но уже в системных логах, упомянутых выше, это:
Также некоторые FTP-службы имеют файл лога xferlog , в котором пишется информация обо всех передачах по протоколу FTP.
Логи сервера базы данных
Рассмотрим сначала наиболее распространенный сервер баз данных MySQL. В стандартной настройке он ведет лог в файле mysqld.log или mysql.log . Файл располагается в папке /var/log/mysql или /var/log/mariadb , в зависимости от используемой версии MySQL.
Однако чаще всего в этот файл задается ведение general log , он же лог запросов, но так как этот лог очень быстро заполняется и начинает занимать много места на диске, то без особой необходимости его ведение не включают, а в лог если что и пишется, то ошибки и уведомления. Они заносятся, как правило, в файл error.log или mysql_error.log .
Также сервер MySQL может создавать в этой папке файл отладки медленных запросов к базе данных. Обычно он называется mysql_slow.log .
Иногда, в случае если настроена репликация баз данных, включают и ведение бинарных логов, они заносятся в файл mysql-bin.log . Этот лог, помимо большого своего объема на диске, также может снизить производительность сервера баз данных, поэтому также без особой необходимости включать его ведение не стоит.
Относительно сервера баз данных PostgreSQL можно отметить, что ведение логов задается в разных случаях в совершенно разные директории. Стоит посмотреть значение переменной log_filename в конфигурационном файле PostgreSQL, если этот параметр не задан, но при этом параметр logging_collector в статусе on, то лог ведется по следующему пути:
/var/log/postgresql/postgresql-x.x.main.log
где x.x — номер версии PostgreSQL
Ротация логов
Для сайтов, имеющих активную посещаемость или большое количество уведомлений и ошибок PHP на многих страницах сайта, размеры журналов могут очень быстро разрастись и в конечном итоге заполнить диск сервера. Для предотвращения этих ситуаций в Linux есть стандартный инструмент ротации логов — logrotate.
На примере логов веб-сервера работает он так. Раз в сутки (время можно задавать) файл лога, например, access.log переименовывается logrotate’ом в access.log.1 и проходит через gzip-сжатие, после чего получает имя access.log.1.gz. А вместо переименованного access.log тут же создается новый пустой файл с этим именем, куда и продолжает писаться информация о посещениях. На следующие сутки, уже при наличии файла access.log.1.gz, аналогично создается файл уже с именем access.log.2.gz, таким же образом далее все дни. Количество хранимых архивов и период можно настроить.
По такому же принципу ротируются логи и других служб — FTP, почтовой службы, системные логи.
Главная задача ротации логов — экономить место на диске, а также иметь понятную логику доступа к архивам логов. Однако в случае бесконтрольной и объемной записи в лог, пространство диска может очень быстро закончиться еще до момента срабатывания ротации логов. В этом случае необходимо настроить ротацию логов на более частый период, но, как правило, такие ситуации случаются нечасто, и можно вручную очистить лог — эту ситуацию мы рассматривали в другой нашей статье.
Чтение лог-файлов
Логи бывают разные, как и способы их чтения.
Стандартным советом для просмотра содержимого текстового файла был бы совет использовать команду:
Однако, в случае когда логи объемны и, например, активно ведутся целый день, команда cat вывалит на вас гору информации, неудобную для просмотра.
Она может быть полезна, только если вы ищите сразу в логе что-то определенное, например, ошибку:
cat имя.лога | grep err
Но даже в этом случае ошибку можно поискать сразу командой grep :
grep ‘err’ имя.лога
Без поиска же более логичен в данном случае просмотр лога через инструмент tail :
- tail имя.лога — выведет последние 10 строк журнала,
- tail -n 100 имя.лога — выведет последние 100 строк журнала, числовое значение можно менять в зависимости от необходимого числа строк,
- tail -f имя.лога — просмотр лога в «прямом эфире», т. е. все поступаемые в лог записи тут же обновляются на экране, удобно для отслеживания ошибок, появляющихся после определенных действий.
Ну, а если все же требуется прочитать весь объемный лог или как минимум пробежаться глазами для отслеживания событий, для этого есть более удобный, чем cat, инструмент less :
less имя.лога — покажет первую страницу лога (те строки, которые поместятся на экран консоли), пролистывать можно клавишами «вверх»/«вниз» (построчно) и PageUp/PageDown (постранично).
Важно, для выхода из просмотра в less , просто нажмите клавишу q .
Также можно, не листая текст, найти в логе определенный фрагмент, просто начав печатать искомую фразу или фрагмент в поле с мигающим курсором, в начале напечатав символ / (для поиска вниз по тексту) и ? (для поиска вверх по тексту).
После ввода необходимой части текста, нажмите Enter , все участки текста, которые подходят условиям поиска, будут подсвечены.
Для быстрого перехода в конец файла, нажмите клавишу G , для перехода в начало файла — g .
В этой статье мы разобрали лишь базовые логи и базовые инструменты для работы с журналами сервера. Так как в системах Linux, по большей части, все создается единообразно, разобравшись с базовыми элементами и основными логами, вам не составит труда в будущем найти и поработать с логами каких-либо других служб, установленных на сервер.
Логи в ISPmanager
Эта статья поможет Вам узнать, как осуществляется настройка параметров сохранения логов и как оценить работу панели ISPmanager.
Логи WWW-доменов
Для того чтобы посмотреть логи запросов и логи ошибок (access.log и error.log), выполните следующие шаги:
- Зайдите в раздел «Мониторинг и журналы» > «Журналы WWW-запросов».
- Выделите в списке нужного пользователя, нажмите и выберите «Журналы» или нажмите «Журналы» в верхнем меню.
- При стандартных настройках домена сохраняются и access.log и error.log. Также происходит ежедневная ротация – логи за предыдущие дни помещаются в архив, журнал обновляется.
- Просмотреть архивы можно в разделе «Менеджер файлов» в каталоге /var/www/имя-пользователя/data/logs.
- Настройка параметров сохранения логов выполняется при добавлении нового домена в панель. Для настройки существующего домена зайдите в раздел «Сайты».
- Выделите нужную Вам домен, нажмите и выберите «Изменить» или нажмите «Изменить» в верхнем меню.
- В открывшемся окне настроек домена перейдите на вкладку «Дополнительные настройки».
- Здесь Вы можете изменить следующие параметры:
- включить/отключить ведение логов,
- настроить период ротации,
- установить максимальное количество архивов, хранящихся на сервере,
- включить/отключить и настроить генератор отчетов.
- Нажмите «Сохранить».
Логи панели
Для того чтобы просмотреть логи авторизации в панели ISPmanager от имени пользователя root, выполните следующие шаги:
- Войдите в панель от имени root.
- Перейдите раздел «Мониторинг и журналы» > «Журнал посещений».
- Просмотреть логи панели управления можно в разделе «Менеджер файлов» в каталоге /usr/local/mgr5/var. Это позволит оценить работу панели ISPmanager и ее модулей.
- Нажмите «Перейти».
Основные логи панели управления ISPmanager:
- ispmgr.log – основной лог,
- backupctl-ispmgr.log – лог резервного копирования,
- longtask.log – лог выполнения длительных операций,
- pkg.log – лог установки ПО.
Ограничение на размер логов панели – 100 Мб. После достижения этого объема логи ротируются, архивы сохраняются в каталог /usr/local/mgr5/var/logs/.
Если у Вас остались какие-либо вопросы, Вы можете задать их в онлайн чате в правом нижнем углу сайта или тикетом в техподдержку.