37 Commits

Author SHA1 Message Date
d0f7bb6d24 docs: исправлена документация - все кластерные сервисы указаны правильно
Исправления в документации:

**Кластерные сервисы (15):**
- PostgreSQL с Patroni
- etcd
- Kubernetes
- ClickHouse
- Redis (перенесен из автономных)
- RabbitMQ (перенесен из автономных)
- Kafka (перенесен из автономных)
- MongoDB (перенесен из автономных)
- DragonflyDB
- Elasticsearch
- Greenplum
- MinIO
- Redpanda
- NATS
- Zookeeper (добавлен)

**Добавлены подробные методы обнаружения:**
- Redis: redis-cli cluster nodes
- RabbitMQ: rabbitmqctl cluster_status
- Kafka: kafka-topics --bootstrap-server
- MongoDB: mongosh --eval rs.status()
- Zookeeper: zkCli ls /

**Добавлены примеры использования:**
- Команды для обнаружения Redis кластера
- Команды для обнаружения RabbitMQ кластера
- Команды для обнаружения Kafka кластера
- Команды для обнаружения MongoDB кластера
- Команды для обнаружения Zookeeper кластера

**Обновлены системные зависимости:**
- Добавлены команды для кластерных сервисов
- Добавлен zkCli для Zookeeper

Теперь документация точно отражает все возможности коллектора по обнаружению кластерных систем.

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 17:48:59 +03:00
31f923af8b docs: обновлена документация коллектора proxvmservices
Добавлено подробное описание всех 26 поддерживаемых сервисов:

**Кластерные сервисы (9):**
- PostgreSQL с Patroni
- etcd
- Kubernetes
- DragonflyDB
- Elasticsearch
- Greenplum
- MinIO
- Redpanda
- NATS

**Автономные сервисы (17):**
- Redis, ClickHouse, RabbitMQ, Kafka, MongoDB
- BIND9, Grafana, Prometheus, Loki
- Harbor, Jenkins, Keycloak, Neo4j
- Sentry, Apache Superset, InfluxDB, VictoriaMetrics

**Обновления документации:**
- Подробные методы обнаружения для каждого сервиса
- Описание портов и команд для получения версий
- Информация о кластерных командах
- Обновленная структура выходных данных с полем cluster_nodes
- Расширенный список системных зависимостей
- Примеры использования для новых сервисов
- Результаты тестирования на реальных серверах
- Обновленные ограничения и требования

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 17:43:41 +03:00
7fbbb6d0f7 feat: добавлено обнаружение 18 новых сервисов в коллектор proxvmservices
Добавлены следующие сервисы с поддержкой кластеров:

**Standalone сервисы:**
- BIND9 DNS сервер (порты: 53, 953)
- Grafana (порт: 3000)
- Prometheus (порт: 9090)
- Loki (порт: 3100)
- Harbor (порты: 80, 443, 8080)
- Jenkins (порты: 8080, 50000)
- Keycloak (порты: 8080, 8443)
- Neo4j (порты: 7474, 7687)
- Sentry (порты: 9000, 9001)
- Apache Superset (порт: 8088)
- InfluxDB (порт: 8086)
- VictoriaMetrics (порты: 8428, 8429)

**Кластерные сервисы:**
- DragonflyDB (порты: 6379, 6380) - через dragonfly cluster nodes
- Elasticsearch (порты: 9200, 9300) - через HTTP API /_cluster/state/nodes
- Greenplum (порты: 5432, 28080) - через gpstate -s
- MinIO (порты: 9000, 9001) - через mc admin info
- Redpanda (порты: 9092, 9644) - через rpk cluster info
- NATS (порты: 4222, 8222) - через nats server list

**Особенности реализации:**
- Все сервисы определяют тип (standalone/cluster) автоматически
- Кластерные сервисы извлекают IP всех нод кластера
- Поддержка получения версий через CLI и HTTP API
- Fallback на localhost для standalone сервисов
- Обработка ошибок при недоступности команд управления кластерами

**Результаты тестирования:**
- Proxmox нода: обнаружено 8 сервисов (PostgreSQL, etcd, MongoDB, Elasticsearch, Grafana, Harbor, Keycloak, Superset)
- VM: обнаружено 2 сервиса (Kubernetes, Prometheus)
- LXC: обнаружен 1 сервис (PostgreSQL 11.17)

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 17:28:07 +03:00
ceab977da1 feat: улучшен коллектор proxvmservices - добавлено обнаружение нод кластеров
- Добавлено поле cluster_nodes в структуру ServiceInfo для вывода IP всех нод кластера
- Реализовано извлечение нод для PostgreSQL с Patroni через patronictl list
- Реализовано извлечение нод для etcd кластера через etcdctl member list
- Реализовано извлечение нод для Kubernetes кластера через kubectl get nodes
- Реализовано извлечение нод для Redis кластера через redis-cli cluster nodes
- Реализовано извлечение нод для ClickHouse кластера через system.clusters
- Реализовано извлечение нод для RabbitMQ кластера через rabbitmqctl cluster_status
- Реализовано извлечение нод для Kafka кластера (базовая реализация)
- Реализовано извлечение нод для MongoDB кластера через rs.status()
- Добавлены вспомогательные функции: extractIPFromURL, isValidIP, resolveHostname
- Исправлена паника в extractClusterNodes при работе с nil указателями
- Протестировано на удаленных серверах

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 17:19:54 +03:00
5fa101dfff feat: добавлен коллектор proxvmservices для обнаружения сервисов на VM
- Создан новый коллектор proxvmservices для обнаружения и мониторинга сервисов
- Поддержка PostgreSQL с Patroni (кластер, репликация, конфигурация)
- Поддержка etcd кластера (члены, лидер, здоровье)
- Поддержка остальных сервисов: Redis, ClickHouse, RabbitMQ, Kafka, MongoDB, Kubernetes
- Добавлен в Makefile и конфигурацию агента
- Обновлены групповые переменные Ansible для включения в группу proxvms
- Исправлены проблемы с шаблонами Ansible (конфигурация и systemd unit)
- Создана подробная документация
- Протестирован на удаленных серверах через Ansible

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 17:04:47 +03:00
89512f66bc feat: добавлен шаблон для systemd сервиса
- Создан шаблон runner/templates/sensusagent.service.j2 для гибкой настройки systemd сервиса
- Обновлен runner/deploy-service/playbook.yml для использования шаблона вместо хардкода
- Добавлены переменные для настройки systemd сервиса в group_vars/all.yml:
  - service_user, service_group, service_restart_sec, agent_mode
- Добавлена возможность переопределения agent_mode для группы proxvms (stdout вместо kafka)
- Обновлена документация docs/ansible_groups.md:
  - Добавлен раздел о настройках systemd сервиса
  - Добавлен раздел о шаблоне systemd сервиса
  - Обновлена структура проекта

Теперь systemd сервис настраивается через Jinja2 шаблоны с возможностью
переопределения параметров для разных групп хостов.

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 15:40:32 +03:00
d1da51d875 docs: обновлена документация проекта
- Удален тестовый скрипт runner/test-config-generation.sh
- Обновлен docs/overview.md:
  - Добавлена информация о гибкой конфигурации коллекторов
  - Добавлена информация о командах обновления
  - Обновлено описание структуры runner/
  - Добавлена ссылка на docs/ansible_groups.md

- Обновлен docs/deploy.md:
  - Убраны ссылки на устаревшие -raw папки
  - Добавлена информация о командах обновления
  - Добавлен раздел о гибкой конфигурации коллекторов
  - Добавлены примеры развертывания на конкретных группах

- Исправлен порядок команд в Makefile (перенесены в правильное место)

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 14:58:41 +03:00
330397f331 refactor: убран суффикс -raw из названий папок Ansible ролей
- Переименованы папки:
  - delete-raw → delete
  - delete-service-raw → delete-service
  - deploy-raw → deploy
  - deploy-service-raw → deploy-service

- Обновлены пути в Makefile для всех команд:
  - make deploy
  - make delete
  - make deploy-service
  - make delete-service
  - make update-service
  - make update

- Обновлены пути в документации
- Добавлены новые команды make update-service и make update
- Обновлен deploy/playbook.yml для использования шаблонов конфигурации

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 14:55:41 +03:00
7316b507ad feat: добавлена гибкая конфигурация коллекторов через Ansible группы
- Создана система групповых переменных для настройки коллекторов
- Добавлены группы: proxmox, proxvms, standalone
- Создан шаблон config.yaml.j2 для автоматической генерации конфигурации
- Обновлен Ansible playbook для использования шаблонов
- Добавлен скрипт тестирования генерации конфигурации
- Создана подробная документация по новой системе
- Обновлен inventory.ini с группировкой хостов

Группы коллекторов:
- proxmox: proxcluster, proxnode, proxvms, uptime
- proxvms: proxvmsystem, uptime
- standalone: system, hba, sensors, uptime

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 14:50:51 +03:00
7d970eada7 feat: добавлен коллектор proxvmsystem и обновлена документация
- Добавлен новый коллектор proxvmsystem, объединяющий функциональность system и gpu коллекторов
- Добавлен machine_uid для идентификации VM/контейнеров в Proxmox инфраструктуре
- Обновлена документация по коллекторам и проекту
- Добавлены новые хосты в inventory для тестирования
- Обновлен Makefile для сборки нового коллектора
- Обновлен config.yaml с конфигурацией proxvmsystem коллектора

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 14:13:22 +03:00
b23d724bea feat: реализована новая логика получения machine_uid для QEMU и LXC
- Для QEMU VM: получение UUID из конфигурации (uuid, smbios1 uuid) с fallback на machine_id
- Для LXC контейнеров: получение machine-id через pct exec (запущенные) или чтение из rootfs (остановленные)
- Добавлены функции getLXCMachineIDViaExec и getLXCMachineIDFromRootfs
- Улучшена логика fallback для случаев когда UUID недоступен
- Все machine_uid генерируются как SHA256[:16] для консистентности
- Протестировано на реальных VM и контейнерах
2025-09-15 13:28:01 +03:00
96b841d6c8 feat: улучшен парсинг конфигурации в коллекторе proxvms
- Добавлен парсинг nameserver в формат dns1: ip1, dns2: ip2
- Добавлен парсинг searchdomain в структурированный формат
- Добавлен парсинг features в структурированный формат
- Переименовано description_parsed в description
- Переименовано pool_disk_size в pool_disk_size_gb
- Добавлена конвертация единиц измерения: T в GB, M в GB
- Улучшена логика удаления оригинальных полей после успешного парсинга
2025-09-15 13:09:21 +03:00
15e6260ac3 feat: добавлен коллектор proxvms и обновлена документация
- Добавлен новый коллектор proxvms для сбора информации о виртуальных машинах и контейнерах Proxmox
- Реализован парсинг конфигураций VM/контейнеров с структурированием данных
- Добавлена поддержка парсинга сетевых интерфейсов, IP конфигураций, SCSI/IDE устройств
- Реализован парсинг JSON из поля description с переводом русских ключей на английский
- Добавлена генерация уникальных идентификаторов (cluster_uid, node_uid, machine_uid)
- Обновлена документация для всех коллекторов:
  - proxcluster (существующая)
  - gpu (существующая)
  - proxnode (новая)
  - proxvms (новая)
  - system (новая)
  - docker (новая)
  - hba (новая)
  - sensors (новая)
  - kubernetes (новая)
  - macos (новая)
  - uptime (новая)
- Обновлен основной файл docs/collectors.md с полным списком коллекторов
- Добавлена поддержка платформ для каждого коллектора
- Включены примеры использования и устранение неполадок

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-15 12:47:44 +03:00
8b8f26909c feat: улучшения proxcluster коллектора и системы логирования
- Переписан proxcluster коллектор с асинхронным получением данных
- Добавлена информация о loadavg для каждой ноды
- Добавлена суммарная статистика кластера (CPU, память, VM, контейнеры)
- Добавлено время выполнения во все коллекторы Go (execution_time_ms/seconds)
- Улучшено логирование агента:
  * Логи запуска/завершения коллекторов
  * Информация о коллекторах в Kafka/stdout логах
- Добавлен новый коллектор proxnode
- Обновлен Makefile для сборки proxcluster коллектора
- Исправлены типы данных в main.go файлах коллекторов
2025-09-12 00:11:32 +03:00
c3a81d963f Исправлены критические ошибки приведения типов в коллекторе proxcluster
- Исправлена ошибка 'interface conversion: interface {} is int, not float64'
- Добавлено безопасное приведение типов для всех операций с interface{}
- Исправлены проблемы в функциях getAlternativeResources, getAlternativeHardware, getVMSummary, calculateClusterResources
- Добавлена поддержка как int, так и float64 типов из JSON
- Улучшена стабильность работы коллектора

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-11 19:00:15 +03:00
17f5a04c9e Исправлен парсинг данных в коллекторе proxcluster
- Исправлен парсинг /etc/pve/.members - теперь правильно обрабатывает JSON структуру
- Улучшен парсинг corosync.conf для извлечения имен нод
- Исправлено определение онлайн статуса нод (поддержка разных форматов статуса)
- Добавлена отладочная информация для диагностики проблем
- Исправлена проблема с неправильными именами нод в выводе

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-11 18:54:49 +03:00
bb966dcea2 Исправлен коллектор proxcluster: улучшено получение данных о CPU/RAM и ресурсах нод
- Добавлена проверка онлайн статуса нод через pvesh get /nodes
- Реализованы альтернативные методы получения данных о ресурсах через /nodes/{node}/rrddata и /nodes/{node}/capabilities
- Улучшено получение информации о VM и контейнерах с детальными ресурсами
- Добавлены fallback методы для получения данных о железе через /nodes/{node}/hardware
- Исправлена проблема с нулевыми значениями CPU/RAM

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-11 18:49:43 +03:00
621d3f0a43 feat: добавлена информация о VM в коллектор GPU
- Добавлен сбор информации о виртуальных машинах и контейнерах Proxmox
- Генерация уникального vm_id на основе cluster_uuid + vmid (16 символов SHA256)
- Убрана информация о VM из коллектора proxcluster
- Обновлена документация по коллектору GPU
- Исправлен возврат пустого массива вместо null для vms

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-11 16:14:42 +03:00
5bfb6fea8b feat: добавлена поддержка SSL для Kafka
- Добавлены SSL поля в KafkaConfig структуру
- Реализована SSL поддержка в KafkaOutput с TLS транспортом
- Добавлена поддержка переменных окружения для SSL настроек
- Обновлен config.yaml с SSL конфигурацией
- Создан env.example с SSL переменными
- Добавлена документация по SSL в docs/kafka_ssl.md
- Обновлен README.md с ссылкой на SSL документацию

Поддерживаемые SSL параметры:
- ssl_enabled, ssl_keystore_location, ssl_keystore_password
- ssl_key_password, ssl_truststore_location, ssl_truststore_password
- ssl_client_auth, ssl_endpoint_identification_algorithm

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-10 11:37:04 +03:00
9770917312 runner: обновлён inventory.ini — добавлены videotest7 и videotest8 2025-09-08 20:29:00 +03:00
5df9e35d03 chore(deploy): правки playbook deploy-service и config.yaml; актуализирован после Kafka проверки 2025-09-08 19:08:15 +03:00
baf4dece84 chore(config,service): обновлены config.yaml и systemd unit; Kafka подключение подтверждено 2025-09-08 19:02:48 +03:00
51fdd67831 feat(kafka-logs): логируем статус подключения при старте и успешные отправки сообщений 2025-09-08 18:37:36 +03:00
838dc4fc00 feat(kafka): авто-создание топика в writer; Makefile targets kafka-once/kafka-consume; config points to 10.99.0.90 2025-09-08 18:25:08 +03:00
927a30fd06 fix(deploy-service): копирование через временную директорию с последующим переносом под sudo, исправление прав 2025-09-08 18:17:03 +03:00
be7e3c3420 feat(kubernetes): расширены метрики — узлы (capacity/allocatable + usage), поды (usage, requests/limits, IPs), PV type, kubelet storage usage 2025-09-08 18:07:45 +03:00
fbee229d5d feat(kubernetes): новый коллектор K8s (узлы, поды, ingress, svc LB, NS, PV/PVC, секреты, деплойменты/DS/SS, cronjobs); добавлен в Makefile и config 2025-09-08 17:51:35 +03:00
10b79a14bb feat(gpu): новый коллектор GPU для Linux (nvidia-smi/rocm-smi); добавлен в сборку и config 2025-09-08 17:41:45 +03:00
2e87580e84 feat(docker): снижена информативность и добавлено ~20% подробностей (IO, PIDs, scope, total image size); обновлены коллекторы Linux/macOS 2025-09-08 17:29:03 +03:00
6ca4b0f0a3 chore(git): ignore .cache; remove it from repo history (index) [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:48:53 +03:00
ff3c3f6f9e ansible(raw): make raw roles default; remove python-based roles; update docs [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:43:42 +03:00
3db64fe543 ansible(raw): add raw+scp playbooks and Makefile targets (no Python on target) [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:40:31 +03:00
576caf1fba chore: commit all pending changes (configs, code, runner) [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:32:30 +03:00
00da60f41c chore(docs): remove legacy app/docs dir (moved to docs/) [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:30:10 +03:00
55e796bc2b docs: Kafka details; systemd section; compose examples; CI/CD notes; FAQ [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:23:12 +03:00
1402fceb0e docs: rewrite overview, collectors, config, build_and_run, deploy; update README [author: Сергей Антропов https://devops.org.ru] 2025-09-08 15:19:13 +03:00
ad409950b8 Initial commit: SensusAgent core, collectors, build, docs 2025-09-08 10:47:41 +03:00