> >
>
> > > >
> > > >
>
>
>
>
>
>
alterworld.ru - информационный тематический блог
>
> > >
> > >
>
>
>
Авг. 4, 2011, 3:40 п.п.  
> > >
>

На сервере должен быть установлен php с поддержкой mysqli.

1. Необходимо создать базу данных, на которой будет производится мониторинг.

# mysqladmin -u root create system_monitor

2. Далее в этой базе данных необходимо создать 2 таблицы:

CREATE TABLE `master_status` (
`replication_date` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `slave_status` (
  `replication_date` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

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


/* vim: set expandtab sw=4 ts=4 sts=4: */

# define variable
$name = "NAME"; # name server
$ip = "1.1.1.1"; # ip address server
$alert_email = "test@example.org";
$status = "master" # variable: master | slave,  master - current master server. slave - current slave server.

# init connect
define('DB_PROD_DBHOST', 'localhost');
define('DB_PROD_DBNAME', 'system_monitor');
define('DB_PROD_USER', 'system_monitor');
define('DB_PROD_PASS', 'PASS');
define('DB_PROD_CHARSET', 'UTF-8');
$db = new mysqli(DB_PROD_DBHOST, DB_PROD_USER, DB_PROD_PASS, DB_PROD_DBNAME);

if (mysqli_connect_errno()) {
        if(!file_exists('alertconnect')){
        	touch('alertconnect');
        	# mail out to admins
        	$message = "Server Name: $name\n";
        	$message .= "Server IP: $ip\n";
        	$message .= "Not possible to make a connection to the database server\n";

        	mail($alert_email, "[$name] Error. BD connect failed.", $message,
        	"From: $alert_email \r\n"
        	."X-Mailer: PHP/" . phpversion());
        	exit;
        }
}

if(file_exists('alertconnect')){
	unlink('alertconnect');
	# mail out to admins
	$message = "Server Name: $name\n";
	$message .= "Server IP: $ip\n";
	$message .= "Database connection is fine.\n";

	mail($alert_email, "[$name] connection is fine", $message,
	"From: $alert_email \r\n"
	."X-Mailer: PHP/" . phpversion());
}


$db->set_charset(DB_PROD_CHARSET);
# end

if ($status == "master"){
    $update_table = "master_status";
    $test_table = "slave_status";
} else {
    $update_table = "slave_status";
    $test_table = "master_status";
}

# update replication date
$db->query("UPDATE $update_table SET replication_date = NOW()");

# checking replication date
$result = $db->query("SELECT TIMESTAMPDIFF(MINUTE,replication_date,NOW()) FROM $test_table");
$row = $result->fetch_row();

if( $row[0]>5 ){

        if(!file_exists('alertsending')){

        # mail out to admins
        $message = "Server Name: $name\n";
        $message .= "Server IP: $ip\n";
        $message .= "Database replication does not occur for {$row[0]} minutes.\n";

        mail($alert_email, "[$name] AlertMSG. Replication failed", $message,
        "From: $alert_email \r\n"
        ."X-Mailer: PHP/" . phpversion());
        touch('alertsending');
        }
}else{
        if(file_exists('alertsending')){
                unlink('alertsending');
                # mail out to admins
                $message = "Server Name: $name\n";
                $message .= "Server IP: $ip\n";
                $message .= "Database replication is fine.\n";

                mail($alert_email, "[$name] Replication is fine", $message,
                "From: $alert_email \r\n"
                ."X-Mailer: PHP/" . phpversion());
        }
}
$db->close();
# end
?>

Данный скрипт необходимо повесить в cron на ежеминутное исполнение. В случае прекращения репликации вам будет выслано письмо на указанный email

 
Последние статьи
Окт. 31, 2011, 2:08 п.п.
Обновление timezone в Java

Сегодня взя Россия обновляет свои сервера, с ОС все достаточно просто, достаточно обновить пакет tzdata, timezone-data или еще как то специфично для конкретной ОС.

Но есть приложения, которые не используют серверные TZ, например java.
Для обновления необходимо использовать специальную утилиту tzupdater:

www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html

Не ...

Отобразить полное содержание сообщения
 
Авг. 4, 2011, 3:40 п.п.
Мониторинг репликация Master-Master MySQL сервера.

На сервере должен быть установлен php с поддержкой mysqli.

1. Необходимо создать базу данных, на которой будет производится мониторинг.

# mysqladmin -u root create system_monitor

2. Далее в этой базе данных необходимо создать 2 таблицы:

CREATE TABLE `master_status` (
`replication_date` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `slave_status` (
  `replication_date ...
Отобразить полное содержание сообщения
 

Разделы rss

TOP 10 Статей
Рейтинг
Автоматический запуск гостевой ОС в VirtualBox. Запуск через консоль. 34279
2 канала на ОС FreeBSD 12747
Блокирование сайтов vkontakte.ru и odnoklassniki.ru 9904
Установка NTP сервера на Centos 4.x - 5.x 9206
Смена атрибутов или владельцев папок и файлов 7951
Сегодня в 21:00 по МСК начнется конференция WWDC 2010 7659
PF Squid3 transparant proxy 7328
ipfw nat во FreeBSD 7 7262
Настройка общих поддоменов, wildcard subdomains в Apache 6508
Cisco Easy VPN Server 6020
> > >
>
Alterworld Group © 2008-2011 Все права защищены. >
>
>
> > >
>
>
>
Новости Статьи О проекте Контакты Главная Поиск Послать сообщение Главная Главная