Intereting Posts
Divs появляются повсюду в почтовом контенте Создание контактной формы 7 записей в календаре «требуется» Доступ к элементам управления Widget по умолчанию в панели настроек Вызов clean_term_cache () завершается с ошибкой при вызове в том же плагине, который создает термины, успешно выполняется при вызове отдельно? Пользовательские стили в Tiny MCE с внешним файлом CSS Измените имя корневого имени уже созданной темы WordPress Использование оператора «IF», ​​основанного на существовании настраиваемого поля get_post_meta не работает на category.php Тип сообщения Постоянная ссылка Пользовательские query_vars и parse_request на wp-admin Передача переменных через структуру контировки Как добавить к the_content с помощью add_filter с настраиваемым типом сообщения? Избегание использования цикла для доступа к одному сообщению Как динамически загружать окно столбцов сообщений? Отображение другого изображения для каждой страницы с редактором

Как следить за сервером за ошибкой при установлении соединения с базой данных

Я знаю, что есть такие инструменты, как pingdom.com и uptimerobot.com, которые будут отслеживать ваш сайт и сообщать вам, если они не работают , но я обнаружил, что мой сайт WordPress испытывает страшную «ошибку, устанавливающую соединение с базой данных» чаще, чем хотелось , и я хотел бы получить какое-то уведомление, когда это произойдет (но не в форме жалобы пользователя!). Pingdom и Uptimerobot не считают эту ошибку и, таким образом, не нажимают никаких уведомлений.

Существуют ли какие-либо простые инструменты или методы, которые будут отслеживать мой сайт для этой конкретной проблемы (и, возможно, другие проблемы?), Которые могут быть не пойманы иначе.

[Изменить] 1. Я имею в виду конкретно известную ошибку WordPress, которая часто возникает из-за различных причин подключения к DB. При возникновении ошибки посещение сайта возвращает белую страницу по умолчанию с текстом, показанным ниже.

  1. Для целей этого вопроса меня не интересует, почему это происходит или как это исправить, но вместо этого я просто хотел бы выяснить, как автоматически контролировать его и получать уведомление . Благодарю.

введите описание изображения здесь

Solutions Collecting From Web of "Как следить за сервером за ошибкой при установлении соединения с базой данных"

Фактически вы можете использовать Pingdom для проверки такой ошибки, а не прямой проверки на ответ с сервера, который вы можете настроить для проверки конкретной строки на странице. Например, если ваша страница имеет какой-то согласованный бит текста на домашней странице, вы можете найти это.

В этой записи Pingdom есть информация о проверке строк:

Сделайте большую часть своей проверки HTTP: передовая практика для дополнительных настроек

Вы также можете проверить, что у него нет определенной строки, поэтому вы должны иметь возможность указывать ее как нисходящую, если она показывает текст «Ошибка при установлении соединения с базой данных».

Вы можете переопределить сообщение файлом wp-content/db-error.php .

Затем в этом файле вы можете зарегистрировать ошибку или отправить электронное сообщение, чтобы предупредить, что есть проблема. Я рекомендую вам не отправлять электронную почту на каждую ошибку, потому что вы можете получать много писем через несколько секунд.

Как вы подключаетесь к базе данных? Не могли бы вы поймать исключение, которое отправляет вам электронное письмо?

С WordPress я предполагаю, что это PHP, поэтому …

  try { // connect to database } catch(PDOException $ex) { $this->output_error_string .= "$ex"; mail(/* send mail */); } 

Есть, вероятно, несколько внешних способов сделать это, не относящихся к WordPress, например, делать http каждый раз в минуту (или больше) домашней страницы и проверять ее содержимое. может даже быть сделано с локального хоста или с другого.

Решение WordPress, зависящее от того, что предлагает @sdexp, должно переопределить класс wpdb , предоставив свою собственную реализацию (в файле wpdb.php, размещенном в / wp-content), который отличается от основного только действием выполняются при сбое соединения. Очевидно, это мягкая вилка wpdb, но этот класс не сильно меняется и с умным использованием методов php magic call , set и get в вашей реализации вы можете свести к минимуму возможность дальнейшего сбоя еще больше.

Тем не менее, ваш лучший путь – использовать внешнюю службу. Мониторинг – это удивительно то, что не очень легко получить право, если вы раньше этого не делали. Какая услуга? StackOverflow или ServerFault, вероятно, гораздо лучше, чтобы спросить, поскольку это действительно не проблема WordPress.