Создание сайтов в Москве - удаленная работа, способ сэкономить не навредив качеству
Готовые решения для вашего сайта интернет-магазина
Примеры работ по созданию сайтов для саратова
- Я рекомендую использовать хостинг от Интернет Хостинг Центра
AndresDanilovЧестная цена за честную работу |
||
Для клиентовЗагруженность02.12.2024 - 12.12.2024
КалендарьСсылки по теме
|
Zabbix - мониторинг обновлений WordpressПри поддержке множества сайтов с разными плагинами, темами и открытыми CMS, такими как Wordpress, часто встает проблема своевременного обновления. Автоматически обновлять - не всегда хорошая идея, а вот узнавать о том, что обновление появилось - очень полезно. Для мониторинга этого (как и многого другого) подходит Zabbix - система мониторинга IT-ресурсов. Однако, штатного функционала для связки Wordpress с Zabbix-ом нет. Приходится придумывать. Не углубляясь в историю придумывания решения, выдаю готовую схему. Описание общей схемыZabbix периодически (в моем случае раз в 10 часов) запрашивает у Wordpress сколько обновлений доступно. При изменении числа обновлений (плагинов, тем, ядра), выдается предупреждение администратору. Настройки на стороне Wordpress.Для того, чтобы wordpress отдавал сведения о доступных обновлениях, помещаем туда файл zabbix-wordpress.php со следующим содержанием: <?php require('wp-load.php'); require('wp-admin/includes/update.php'); // from wp_get_update_data() function $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); if ( function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) ) $counts['wordpress'] = 1; } $r=$counts; if ( (!isset($_GET['k'])) or (!isset($r[$_GET['k']])) ) { foreach ($r as $k=>$l) { echo $k.": ".$l."\n"; } } else { echo $r[$_GET['k']]; } ?> Этот файл при помощи встроенного инструментария собирает сведения о доступных обновлениях и выдает их или все сразу, или по одному из ключей: plugins, themes, wordpress, translations Настройки на стороне Zabbix-клиентаНа стороне клиента Zabbix, который будет запрашивать данные с сайта и потом передават их на сервер Zabbix необходимо внести в файл новый параметр: UserParameter=mywebsite.wp.updates[*],curl -s http://my.web.site/zabbix-wordpress.php?k=$1 Конечно же не забыв указать правильный адрес вашего сайта, и при необходимости путь к curl Настройки на стороне Zabbix-сервераНа стороне сервер остается только прописать нужные вам данные, которые могут быть:
И установить необходимые тригеры и действия. Они вполне подходят под общую схему. Лично я в качестве триггера указал изменение значения доступных обновлений: {zclient:mywebsite.wp.update[plugins].diff(0)}>0 особо рьяные любители того, чтобы у них было все самое свежее, могут настроить так, что наличие неустановленных обновлений zabbix будет считать "проблемой", а когда кол-во обновлений будет нулевым автоматически проблему закрывать. Развитие и улучшенияВ качестве резвития и улучшения этой схемы отмечу, что в качестве параметра можно передавать не только значение типа обновлений, но и адрес сайта. Это будет полезно, когда необходимо мониторить много сайтов на Wordpress одним Zabbix-ом. В этом случае на клиенте надо будет прописать пользовательский параметр такого вида: UserParameter=wp.updates[*],curl -s $1/zabbix-wordpress.php?k=$2 Вызывать такой параметр надо будет строкой: wp.updates[http://my.web.site,wordpress]
Со временем будут решения для Joomla, Битрикс и других CMS. |