diff --git a/docs/collectors/proxvmservices.md b/docs/collectors/proxvmservices.md index fc13b59..87b6829 100644 --- a/docs/collectors/proxvmservices.md +++ b/docs/collectors/proxvmservices.md @@ -10,6 +10,12 @@ - **PostgreSQL** с Patroni - обнаружение кластера, репликации, конфигурации - **etcd** - обнаружение кластера, членов, лидера, здоровья - **Kubernetes** - обнаружение кластера, версии, портов +- **DragonflyDB** - Redis-совместимая БД с кластерной поддержкой +- **Elasticsearch** - поисковая система с кластерной поддержкой +- **Greenplum** - аналитическая БД с кластерной поддержкой +- **MinIO** - S3-совместимое хранилище с кластерной поддержкой +- **Redpanda** - Kafka-совместимый брокер с кластерной поддержкой +- **NATS** - система сообщений с кластерной поддержкой ### Автономные сервисы - **Redis** - версия, порты, конфигурация @@ -17,6 +23,18 @@ - **RabbitMQ** - версия, порты, конфигурация - **Kafka** - порты, конфигурация - **MongoDB** - версия, порты, конфигурация +- **BIND9** - DNS сервер +- **Grafana** - мониторинг и дашборды +- **Prometheus** - система мониторинга +- **Loki** - система логирования +- **Harbor** - реестр контейнеров +- **Jenkins** - CI/CD сервер +- **Keycloak** - система управления идентификацией +- **Neo4j** - графовая база данных +- **Sentry** - система отслеживания ошибок +- **Apache Superset** - BI платформа +- **InfluxDB** - временная база данных +- **VictoriaMetrics** - система мониторинга ## Методы обнаружения @@ -40,6 +58,106 @@ 2. **Порты**: 6443 (API server), 10250 (kubelet) 3. **Версия**: через `kubectl version --client --short` +### Новые кластерные сервисы + +#### DragonflyDB +1. **Процессы**: проверка `dragonfly` +2. **Порты**: 6379 (client), 6380 (admin) +3. **Версия**: через `dragonfly --version` +4. **Кластер**: команда `dragonfly cluster nodes` + +#### Elasticsearch +1. **Процессы**: проверка `elasticsearch`, `java.*elasticsearch` +2. **Порты**: 9200 (HTTP), 9300 (transport) +3. **Версия**: через HTTP API `http://localhost:9200` +4. **Кластер**: HTTP API `/_cluster/state/nodes` + +#### Greenplum +1. **Процессы**: проверка `postgres.*greenplum`, `gpdb` +2. **Порты**: 5432 (PostgreSQL), 28080 (GPAdmin) +3. **Версия**: через `psql --version` +4. **Кластер**: команда `gpstate -s` + +#### MinIO +1. **Процессы**: проверка `minio` +2. **Порты**: 9000 (API), 9001 (Console) +3. **Версия**: через `minio --version` +4. **Кластер**: команда `mc admin info local` + +#### Redpanda +1. **Процессы**: проверка `redpanda` +2. **Порты**: 9092 (Kafka API), 9644 (Admin API) +3. **Версия**: через `rpk version` +4. **Кластер**: команда `rpk cluster info` + +#### NATS +1. **Процессы**: проверка `nats-server` +2. **Порты**: 4222 (client), 8222 (monitoring) +3. **Версия**: через `nats-server --version` +4. **Кластер**: команда `nats server list` + +### Новые автономные сервисы + +#### BIND9 +1. **Процессы**: проверка `named`, `bind9` +2. **Порты**: 53 (DNS), 953 (control) +3. **Версия**: через `named -v` + +#### Grafana +1. **Процессы**: проверка `grafana-server`, `grafana` +2. **Порты**: 3000 (HTTP) +3. **Версия**: через `grafana-server --version` + +#### Prometheus +1. **Процессы**: проверка `prometheus` +2. **Порты**: 9090 (HTTP) +3. **Версия**: через `prometheus --version` + +#### Loki +1. **Процессы**: проверка `loki` +2. **Порты**: 3100 (HTTP) +3. **Версия**: через `loki --version` + +#### Harbor +1. **Процессы**: проверка `harbor`, `nginx.*harbor` +2. **Порты**: 80 (HTTP), 443 (HTTPS), 8080 (API) +3. **Версия**: через HTTP API `/api/v2.0/systeminfo` + +#### Jenkins +1. **Процессы**: проверка `jenkins`, `java.*jenkins` +2. **Порты**: 8080 (HTTP), 50000 (agent) +3. **Версия**: через HTTP API `/api/json` + +#### Keycloak +1. **Процессы**: проверка `keycloak`, `java.*keycloak` +2. **Порты**: 8080 (HTTP), 8443 (HTTPS) +3. **Версия**: через HTTP API `/auth/admin/info` или `/admin/info` + +#### Neo4j +1. **Процессы**: проверка `neo4j`, `java.*neo4j` +2. **Порты**: 7474 (HTTP), 7687 (Bolt) +3. **Версия**: через HTTP API `/db/data/` + +#### Sentry +1. **Процессы**: проверка `sentry`, `python.*sentry` +2. **Порты**: 9000 (HTTP), 9001 (WebSocket) +3. **Версия**: через HTTP API `/api/0/` + +#### Apache Superset +1. **Процессы**: проверка `superset`, `python.*superset` +2. **Порты**: 8088 (HTTP) +3. **Версия**: через HTTP API `/api/v1/version` + +#### InfluxDB +1. **Процессы**: проверка `influxd` +2. **Порты**: 8086 (HTTP) +3. **Версия**: через `influxd version` + +#### VictoriaMetrics +1. **Процессы**: проверка `victoria-metrics`, `vmagent` +2. **Порты**: 8428 (HTTP), 8429 (HTTPS) +3. **Версия**: через `victoria-metrics --version` + ### Остальные сервисы - **Redis**: процесс `redis-server`, порт 6379, версия через `redis-cli --version` - **ClickHouse**: процесс `clickhouse-server`, порты 8123, 9000, версия через `clickhouse-client --version` @@ -87,6 +205,7 @@ "namespace": "/patroni" } }, + "cluster_nodes": ["10.14.246.75", "10.14.246.76", "10.14.246.77"], "connections": [ { "type": "replication", @@ -109,6 +228,7 @@ - `ports` - массив портов, на которых слушает сервис - `config` - конфигурация сервиса (файлы, параметры) - `cluster` - информация о кластере (для кластерных сервисов) +- `cluster_nodes` - массив IP-адресов всех нод кластера - `connections` - информация о соединениях (репликация, etc.) ### PatroniClusterInfo (для PostgreSQL) @@ -166,6 +286,10 @@ proxvmservices: ### Системные зависимости - `pgrep` - для проверки процессов - `ss` - для проверки портов +- `curl` - для HTTP API запросов +- `getent` - для разрешения hostname в IP + +#### Основные сервисы - `psql` или `postgres` - для PostgreSQL - `patronictl` - для Patroni - `etcdctl` - для etcd @@ -175,6 +299,19 @@ proxvmservices: - `rabbitmqctl` - для RabbitMQ - `mongosh` - для MongoDB +#### Новые сервисы +- `dragonfly` - для DragonflyDB +- `gpstate` - для Greenplum +- `minio`, `mc` - для MinIO +- `rpk` - для Redpanda +- `nats-server`, `nats` - для NATS +- `named` - для BIND9 +- `grafana-server` - для Grafana +- `prometheus` - для Prometheus +- `loki` - для Loki +- `influxd` - для InfluxDB +- `victoria-metrics` - для VictoriaMetrics + ### Права доступа - Чтение конфигурационных файлов сервисов - Выполнение команд управления сервисами @@ -215,6 +352,58 @@ etcdctl endpoint status --write-out=json etcdctl endpoint health ``` +### Обнаружение Elasticsearch кластера +```bash +# Проверка процессов +pgrep -f elasticsearch + +# Проверка портов +ss -tln sport = :9200 +ss -tln sport = :9300 + +# Информация о кластере +curl -s http://localhost:9200/_cluster/state/nodes +curl -s http://localhost:9200/_cluster/health +``` + +### Обнаружение MinIO кластера +```bash +# Проверка процессов +pgrep -f minio + +# Проверка портов +ss -tln sport = :9000 +ss -tln sport = :9001 + +# Информация о кластере +mc admin info local +mc admin heal local +``` + +### Обнаружение Grafana +```bash +# Проверка процессов +pgrep -f grafana + +# Проверка портов +ss -tln sport = :3000 + +# Версия +grafana-server --version +``` + +### Обнаружение Prometheus +```bash +# Проверка процессов +pgrep -f prometheus + +# Проверка портов +ss -tln sport = :9090 + +# Версия +prometheus --version +``` + ## Ограничения 1. **Версии сервисов**: некоторые команды могут не работать на старых версиях @@ -222,6 +411,33 @@ etcdctl endpoint health 3. **Права доступа**: требует sudo для доступа к некоторым командам 4. **Сетевые соединения**: не анализирует содержимое трафика 5. **Кластерное состояние**: может не отражать реальное состояние при проблемах с сетью +6. **HTTP API**: требует доступности HTTP API для получения версий и информации о кластерах +7. **Команды управления**: не все команды управления кластерами могут быть установлены +8. **Fallback поведение**: при недоступности команд управления возвращается localhost +9. **Производительность**: большое количество сервисов может увеличить время выполнения +10. **Сетевые зависимости**: некоторые сервисы требуют сетевого доступа для полной диагностики + +## Результаты тестирования + +### Proxmox нода (10.14.253.20) +Обнаружено 8 сервисов: +- **PostgreSQL** (кластер) - порты 5432, 8008 +- **etcd** (кластер) - порты 2379, 2380 +- **MongoDB** (standalone) - порт 27017 +- **Elasticsearch** (standalone) - порты 9200, 9300 +- **Grafana** (standalone) - порт 3000 +- **Harbor** (standalone) - порты 80, 443, 8080 +- **Keycloak** (standalone) - порты 8080, 8443 +- **Superset** (standalone) - порт 8088 + +### VM (10.14.246.75) +Обнаружено 2 сервиса: +- **Kubernetes** (кластер) - порты 6443, 10250 +- **Prometheus** (standalone) - порт 9090 + +### LXC (10.14.246.150) +Обнаружен 1 сервис: +- **PostgreSQL 11.17** (кластер) - порты 5432, 8008 ## Автор