mirvmon/monitoring_system_dump.sql

386 lines
17 KiB
SQL
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: monitoring_system
-- ------------------------------------------------------
-- Server version 10.11.14-MariaDB-0ubuntu0.24.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `agent_configs`
--
DROP TABLE IF EXISTS `agent_configs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `agent_configs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`interval_seconds` int(11) DEFAULT 60,
`monitor_services` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Массив сервисов для мониторинга' CHECK (json_valid(`monitor_services`)),
`enabled` tinyint(1) DEFAULT 1 COMMENT 'Включен ли агент',
`created_at` timestamp NULL DEFAULT current_timestamp(),
`updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `server_id` (`server_id`),
CONSTRAINT `agent_configs_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `agent_tokens`
--
DROP TABLE IF EXISTS `agent_tokens`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `agent_tokens` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`token_hash` varchar(64) NOT NULL,
`encrypted_token` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`last_used_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `server_id` (`server_id`),
CONSTRAINT `agent_tokens_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `alerts`
--
DROP TABLE IF EXISTS `alerts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `alerts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`metric_name` varchar(50) NOT NULL,
`value` decimal(8,2) DEFAULT NULL,
`severity` enum('warning','critical') NOT NULL,
`resolved` tinyint(1) DEFAULT 0,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`resolved_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `server_id` (`server_id`),
CONSTRAINT `alerts_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `global_notification_settings`
--
DROP TABLE IF EXISTS `global_notification_settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `global_notification_settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`smtp_host` varchar(255) DEFAULT '',
`smtp_port` int(11) DEFAULT 587,
`smtp_username` varchar(255) DEFAULT '',
`smtp_password` varchar(255) DEFAULT '',
`smtp_encryption` enum('tls','ssl','none') DEFAULT 'tls',
`smtp_from_email` varchar(255) DEFAULT '',
`telegram_bot_token` varchar(255) DEFAULT '',
`telegram_chat_id` varchar(100) DEFAULT '',
`telegram_proxy` varchar(255) DEFAULT 'http://127.0.0.1:1081',
`email_enabled` tinyint(1) DEFAULT 0,
`telegram_enabled` tinyint(1) DEFAULT 0,
`notify_on_warning` tinyint(1) DEFAULT 1,
`notify_on_critical` tinyint(1) DEFAULT 1,
`updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `metric_names`
--
DROP TABLE IF EXISTS `metric_names`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `metric_names` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`unit` varchar(20) DEFAULT NULL,
`description` text DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `metric_thresholds`
--
DROP TABLE IF EXISTS `metric_thresholds`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `metric_thresholds` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`metric_name_id` int(11) NOT NULL,
`warning_threshold` decimal(8,2) DEFAULT NULL,
`critical_threshold` decimal(8,2) DEFAULT NULL,
`duration` int(11) DEFAULT 0,
PRIMARY KEY (`id`),
KEY `server_id` (`server_id`),
KEY `metric_name_id` (`metric_name_id`),
CONSTRAINT `metric_thresholds_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE,
CONSTRAINT `metric_thresholds_ibfk_2` FOREIGN KEY (`metric_name_id`) REFERENCES `metric_names` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `server_groups`
--
DROP TABLE IF EXISTS `server_groups`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `server_groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`description` text DEFAULT NULL,
`icon` varchar(50) DEFAULT NULL,
`color` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `server_metrics`
--
DROP TABLE IF EXISTS `server_metrics`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `server_metrics` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`metric_name_id` int(11) NOT NULL,
`value` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_server_metric_time` (`server_id`,`metric_name_id`,`created_at`),
KEY `metric_name_id` (`metric_name_id`),
CONSTRAINT `server_metrics_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE,
CONSTRAINT `server_metrics_ibfk_2` FOREIGN KEY (`metric_name_id`) REFERENCES `metric_names` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=395224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `servers`
--
DROP TABLE IF EXISTS `servers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `servers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`address` varchar(255) DEFAULT NULL,
`group_id` int(11) DEFAULT NULL,
`description` text DEFAULT NULL,
`last_metrics_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`last_service_check_at` timestamp NULL DEFAULT NULL COMMENT 'Время последней проверки сервисов',
`service_check_enabled` tinyint(1) DEFAULT 0 COMMENT 'Включена ли проверка сервисов',
PRIMARY KEY (`id`),
KEY `group_id` (`group_id`),
CONSTRAINT `servers_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `server_groups` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_alerts`
--
DROP TABLE IF EXISTS `service_alerts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_alerts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`service_name` varchar(100) NOT NULL,
`status` enum('stopped','running','unknown') NOT NULL,
`severity` enum('warning','critical') DEFAULT 'warning' COMMENT 'Уровень важности (всегда critical для остановленных сервисов)',
`resolved` tinyint(1) DEFAULT 0,
`created_at` timestamp NULL DEFAULT current_timestamp(),
`resolved_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_server_service` (`server_id`,`service_name`),
CONSTRAINT `service_alerts_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `service_status`
--
DROP TABLE IF EXISTS `service_status`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `service_status` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server_id` int(11) NOT NULL,
`service_name` varchar(255) NOT NULL,
`status` enum('running','stopped','unknown') NOT NULL,
`load_state` varchar(50) DEFAULT NULL,
`active_state` varchar(50) DEFAULT NULL,
`sub_state` varchar(50) DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uk_server_service` (`server_id`,`service_name`),
KEY `idx_server_updated` (`server_id`,`updated_at`),
CONSTRAINT `service_status_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=14919756 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_notification_settings`
--
DROP TABLE IF EXISTS `user_notification_settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_notification_settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`telegram_chat_id` varchar(50) DEFAULT NULL,
`email_for_alerts` varchar(100) DEFAULT NULL,
`enabled_notifications` tinyint(1) DEFAULT 1,
`notify_on_warning` tinyint(1) DEFAULT 1,
`notify_on_critical` tinyint(1) DEFAULT 1,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `user_notification_settings_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password_hash` varchar(255) NOT NULL,
`email` varchar(100) DEFAULT NULL,
`role` enum('admin','user') DEFAULT 'user',
`created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2026-04-13 0:54:46
--
-- Примеры данных для демонстрации и тестирования
--
-- Пользователи (пароль для обоих: admin123)
INSERT INTO `users` (`id`, `username`, `email`, `password_hash`, `role`, `is_active`, `created_at`) VALUES
(1, 'admin', 'admin@example.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin', 1, NOW()),
(2, 'operator', 'operator@example.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'operator', 1, NOW());
-- Группы серверов
INSERT INTO `server_groups` (`id`, `name`, `description`, `icon`, `color`, `sort_order`) VALUES
(1, 'Production', 'Продакшн серверы', 'fa-server', '#dc3545', 1),
(2, 'Staging', 'Тестовые серверы', 'fa-flask', '#ffc107', 2),
(3, 'Database', 'Серверы баз данных', 'fa-database', '#0dcaf0', 3);
-- Серверы
INSERT INTO `servers` (`id`, `name`, `address`, `description`, `group_id`, `is_active`, `created_at`) VALUES
(1, 'web-server-01', '192.168.1.10', 'Основной веб-сервер', 1, 1, NOW()),
(2, 'web-server-02', '192.168.1.11', 'Веб-сервер (резервный)', 1, 1, NOW()),
(3, 'db-server-01', '192.168.1.20', 'PostgreSQL основной', 3, 1, NOW()),
(4, 'staging-app', '192.168.1.30', 'Staging окружение', 2, 1, NOW());
-- Настройки агентов
INSERT INTO `agent_configs` (`id`, `server_id`, `interval_seconds`, `monitor_services`, `enabled`) VALUES
(1, 1, 60, '["nginx", "php-fpm", "sshd"]', 1),
(2, 2, 60, '["nginx", "php-fpm"]', 1),
(3, 3, 30, '["postgresql", "sshd"]', 1),
(4, 4, 120, '["nginx"]', 1);
-- Названия метрик
INSERT INTO `metric_names` (`id`, `name`, `description`, `unit`) VALUES
(1, 'cpu_load', 'Загрузка CPU', '%'),
(2, 'ram_used', 'Использование RAM', '%'),
(3, 'disk_used', 'Использование диска', '%'),
(4, 'network_rx', 'Входящий трафик', 'Mbps'),
(5, 'network_tx', 'Исходящий трафик', 'Mbps'),
(6, 'disk_read', 'Чтение диска', 'MB/s'),
(7, 'disk_write', 'Запись диска', 'MB/s');
-- Примеры метрик (последние сутки)
INSERT INTO `server_metrics` (`server_id`, `metric_name`, `value`, `time_bucket`) VALUES
(1, 'cpu_load', 45.2, NOW() - INTERVAL 1 HOUR),
(1, 'cpu_load', 62.8, NOW() - INTERVAL 50 MINUTE),
(1, 'cpu_load', 78.1, NOW() - INTERVAL 40 MINUTE),
(1, 'cpu_load', 55.3, NOW() - INTERVAL 30 MINUTE),
(1, 'cpu_load', 41.7, NOW() - INTERVAL 20 MINUTE),
(1, 'cpu_load', 38.9, NOW() - INTERVAL 10 MINUTE),
(1, 'ram_used', 67.5, NOW() - INTERVAL 1 HOUR),
(1, 'ram_used', 68.2, NOW() - INTERVAL 30 MINUTE),
(1, 'ram_used', 69.1, NOW() - INTERVAL 10 MINUTE),
(1, 'disk_used', 72.3, NOW() - INTERVAL 1 HOUR),
(3, 'cpu_load', 23.4, NOW() - INTERVAL 1 HOUR),
(3, 'cpu_load', 31.2, NOW() - INTERVAL 30 MINUTE),
(3, 'ram_used', 82.1, NOW() - INTERVAL 1 HOUR),
(3, 'ram_used', 83.5, NOW() - INTERVAL 30 MINUTE);
-- Пороги
INSERT INTO `metric_thresholds` (`server_id`, `metric_name`, `warning_threshold`, `critical_threshold`, `duration_minutes`) VALUES
(1, 'cpu_load', 80.0, 90.0, 5),
(1, 'ram_used', 85.0, 95.0, 10),
(3, 'cpu_load', 75.0, 85.0, 5),
(3, 'ram_used', 80.0, 90.0, 5);
-- Алерты
INSERT INTO `alerts` (`id`, `server_id`, `metric_name`, `value`, `severity`, `resolved`, `created_at`, `resolved_at`) VALUES
(1, 3, 'ram_used', 82.10, 'warning', 1, NOW() - INTERVAL 2 HOUR, NOW() - INTERVAL 1 HOUR),
(2, 1, 'cpu_load', 91.50, 'critical', 0, NOW() - INTERVAL 30 MINUTE, NULL);
-- Статусы сервисов
INSERT INTO `service_status` (`server_id`, `service_name`, `load_state`, `active_state`, `last_check`, `is_monitored`) VALUES
(1, 'nginx', 'loaded', 'active', NOW(), 1),
(1, 'php8.2-fpm', 'loaded', 'active', NOW(), 1),
(1, 'sshd', 'loaded', 'active', NOW(), 1),
(3, 'postgresql', 'loaded', 'active', NOW(), 1),
(3, 'sshd', 'loaded', 'active', NOW(), 1);
-- Глобальные настройки уведомлений
INSERT INTO `global_notification_settings` (`id`, `smtp_host`, `smtp_port`, `smtp_username`, `smtp_from_email`, `telegram_bot_token`, `telegram_chat_id`, `telegram_proxy`, `email_enabled`, `telegram_enabled`) VALUES
(1, 'smtp.example.com', 587, 'noreply@example.com', 'noreply@example.com', '123456789:AAExampleBotToken', '-1001234567890', '', 0, 0);