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
This commit is contained in:
Sergey Antropoff 2025-09-15 17:43:41 +03:00
parent 7fbbb6d0f7
commit 31f923af8b

View File

@ -10,6 +10,12 @@
- **PostgreSQL** с Patroni - обнаружение кластера, репликации, конфигурации - **PostgreSQL** с Patroni - обнаружение кластера, репликации, конфигурации
- **etcd** - обнаружение кластера, членов, лидера, здоровья - **etcd** - обнаружение кластера, членов, лидера, здоровья
- **Kubernetes** - обнаружение кластера, версии, портов - **Kubernetes** - обнаружение кластера, версии, портов
- **DragonflyDB** - Redis-совместимая БД с кластерной поддержкой
- **Elasticsearch** - поисковая система с кластерной поддержкой
- **Greenplum** - аналитическая БД с кластерной поддержкой
- **MinIO** - S3-совместимое хранилище с кластерной поддержкой
- **Redpanda** - Kafka-совместимый брокер с кластерной поддержкой
- **NATS** - система сообщений с кластерной поддержкой
### Автономные сервисы ### Автономные сервисы
- **Redis** - версия, порты, конфигурация - **Redis** - версия, порты, конфигурация
@ -17,6 +23,18 @@
- **RabbitMQ** - версия, порты, конфигурация - **RabbitMQ** - версия, порты, конфигурация
- **Kafka** - порты, конфигурация - **Kafka** - порты, конфигурация
- **MongoDB** - версия, порты, конфигурация - **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) 2. **Порты**: 6443 (API server), 10250 (kubelet)
3. **Версия**: через `kubectl version --client --short` 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` - **Redis**: процесс `redis-server`, порт 6379, версия через `redis-cli --version`
- **ClickHouse**: процесс `clickhouse-server`, порты 8123, 9000, версия через `clickhouse-client --version` - **ClickHouse**: процесс `clickhouse-server`, порты 8123, 9000, версия через `clickhouse-client --version`
@ -87,6 +205,7 @@
"namespace": "/patroni" "namespace": "/patroni"
} }
}, },
"cluster_nodes": ["10.14.246.75", "10.14.246.76", "10.14.246.77"],
"connections": [ "connections": [
{ {
"type": "replication", "type": "replication",
@ -109,6 +228,7 @@
- `ports` - массив портов, на которых слушает сервис - `ports` - массив портов, на которых слушает сервис
- `config` - конфигурация сервиса (файлы, параметры) - `config` - конфигурация сервиса (файлы, параметры)
- `cluster` - информация о кластере (для кластерных сервисов) - `cluster` - информация о кластере (для кластерных сервисов)
- `cluster_nodes` - массив IP-адресов всех нод кластера
- `connections` - информация о соединениях (репликация, etc.) - `connections` - информация о соединениях (репликация, etc.)
### PatroniClusterInfo (для PostgreSQL) ### PatroniClusterInfo (для PostgreSQL)
@ -166,6 +286,10 @@ proxvmservices:
### Системные зависимости ### Системные зависимости
- `pgrep` - для проверки процессов - `pgrep` - для проверки процессов
- `ss` - для проверки портов - `ss` - для проверки портов
- `curl` - для HTTP API запросов
- `getent` - для разрешения hostname в IP
#### Основные сервисы
- `psql` или `postgres` - для PostgreSQL - `psql` или `postgres` - для PostgreSQL
- `patronictl` - для Patroni - `patronictl` - для Patroni
- `etcdctl` - для etcd - `etcdctl` - для etcd
@ -175,6 +299,19 @@ proxvmservices:
- `rabbitmqctl` - для RabbitMQ - `rabbitmqctl` - для RabbitMQ
- `mongosh` - для MongoDB - `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 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. **Версии сервисов**: некоторые команды могут не работать на старых версиях 1. **Версии сервисов**: некоторые команды могут не работать на старых версиях
@ -222,6 +411,33 @@ etcdctl endpoint health
3. **Права доступа**: требует sudo для доступа к некоторым командам 3. **Права доступа**: требует sudo для доступа к некоторым командам
4. **Сетевые соединения**: не анализирует содержимое трафика 4. **Сетевые соединения**: не анализирует содержимое трафика
5. **Кластерное состояние**: может не отражать реальное состояние при проблемах с сетью 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
## Автор ## Автор