SSH проверки с помощью Proto Observability
Описание
SSH-проверка подключается к узлу по SSH, проходит аутентификацию и, по желанию, проверяет работу SFTP. Проверка подходит для контроля доступности серверов, на которые нельзя установить Агент (сетевое оборудование, СХД, внешние SFTP-серверы обмена файлами), и для контроля работоспособности SFTP-сервисов.
Установка
Проверка входит в поставку Агента Proto Observability. Отдельная установка не требуется.
Для проверки нужна учётная запись на проверяемом узле. Создайте отдельную учётную запись с минимальными правами: для SSH-проверки достаточно права на вход, для SFTP-проверки — доступа на чтение к домашнему каталогу.
Конфигурация
Создайте файл ssh_check.d/conf.yaml в каталоге conf.d/ директории конфигурации Агента (за основу можно взять conf.yaml.example в том же каталоге).
Пример с аутентификацией по ключу:
init_config:
instances:
- host: sftp.corp.local
port: 22
username: monitoring
private_key_file: /etc/protoobp-agent/ssh/monitoring_ecdsa
private_key_type: ecdsa
sftp_check: true
tags:
- service:file_exchange
Пример с аутентификацией по паролю без SFTP-проверки:
init_config:
instances:
- host: 10.20.0.15
username: monitoring
password: ENC[ssh_monitoring_password]
sftp_check: false
Пароль в примере задан через управление секретами и не хранится в файле в открытом виде.
Настройки и их описание
| Настройка | Описание |
|---|---|
host | Обязательный. Имя или IP-адрес узла. |
port | Порт SSH (по умолчанию 22). |
username | Обязательный. Учётная запись для подключения. |
password | Пароль учётной записи. Если задан private_key_file, используется как парольная фраза ключа. |
private_key_file | Путь к закрытому ключу. Файл должен быть доступен на чтение пользователю Агента (pobp-agent). |
private_key_type | Тип ключа: rsa (по умолчанию) или ecdsa. Другие типы ключей не поддерживаются. |
sftp_check | По умолчанию true. Проверять работу SFTP: открыть сессию и прочитать список файлов домашнего каталога. |
add_missing_keys | По умолчанию false. Если true, неизвестный ключ узла принимается автоматически. Если false, ключ узла должен быть заранее добавлен в known_hosts пользователя Агента. |
force_sha1 | По умолчанию false. Использовать устаревшую подпись ssh-rsa (SHA-1) — только для старых SSH-серверов, которые не поддерживают rsa-sha2-256/512. |
tags | Список пользовательских тегов. |
Агент добавляет к данным проверки тег instance:<host>-<port>. Общие параметры (min_collection_interval, service) описаны на странице Общие параметры интеграций.
Поддерживается аутентификация по паролю и по ключу с необязательной парольной фразой. Многофакторная аутентификация не поддерживается.
Метрики
sftp_response_time— время чтения списка файлов по SFTP (секунды). Отправляется, еслиsftp_check: trueи SFTP-сессия открылась.
Сервисные проверки
Сервисные проверки сохраняются как метрики со значением статуса: 0 — ok, 2 — critical.
ssh.can_connect
Метрика ssh_can_connect.
- ok — подключение и аутентификация выполнены;
- critical — узел недоступен, ключ узла не принят или аутентификация не прошла.
sftp.can_connect
Метрика sftp_can_connect. Отправляется, если sftp_check: true.
- ok — SFTP-сессия открыта, список файлов прочитан;
- critical — SSH-подключение не удалось или SFTP недоступен.
Проверка работоспособности
Запустите команду статуса Агента и убедитесь, что в разделе Collector есть ssh_check без ошибок.
Пример для Linux:
sudo protoobp-agent status
sudo -u pobp-agent protoobp-agent check ssh_check
Команды для других платформ — на странице Команды и проверка работы.
Устранение неполадок
Ключ узла не известен (
Server '...' not found in known_hosts). Добавьте ключ узла вknown_hostsв домашнем каталоге пользователя Агента (при установке пакетом на Linux —/opt/protoobp-agent):sudo mkdir -p /opt/protoobp-agent/.ssh ssh-keyscan -p 22 sftp.corp.local | sudo tee -a /opt/protoobp-agent/.ssh/known_hosts sudo chown -R pobp-agent:pobp-agent /opt/protoobp-agent/.ssh sudo chmod 700 /opt/protoobp-agent/.sshЛибо включите
add_missing_keys: true, если проверка подлинности ключа узла не требуется.Аутентификация не проходит. Проверьте логин и пароль вручную:
ssh monitoring@sftp.corp.local. Для ключей типа ed25519 используйте вместо них ключ RSA или ECDSA — другие типы проверка не поддерживает.Ошибка чтения ключа (
Unable to find private key file,Private key file is invalid). Проверьте путь к файлу и права: файл должен читаться пользователемpobp-agent.Старый SSH-сервер отклоняет подпись. Включите
force_sha1: true.sftp.can_connectв статусе critical при успешномssh.can_connect. На узле не включена подсистема SFTP или учётной записи запрещён доступ к ней. Если SFTP не нужен, установитеsftp_check: false.