Мониторинг сервера / ВМ
Монитор Server / VM следит за одной машиной через инфраструктурный агент Status200 (oneuptime-infrastructure-agent) – небольшую службу, которая каждые 30 секунд отправляет в Status200 данные о CPU, памяти, дисках, нагрузке, сети и запущенных процессах. На этой странице показано, как подключить агент к монитору Server / VM, что сообщает агент и как написать критерии, которые решают, когда сервер в сети, а когда нет.
Как это работает
Агент работает как системная служба. Каждые 30 секунд он собирает отчёт и отправляет его на ваш URL Status200, подписав секретным ключом монитора. Status200 сохраняет значения как метрики монитора и проверяет отчёт по критериям монитора.
Молчание проверяется отдельно. Каждую минуту Status200 заново оценивает критерии Is Online каждого монитора Server / VM, который не присылал отчётов 3 минуты или дольше, и сервер, молчащий дольше, чем допускают его критерии (по умолчанию 3 минуты), считается не в сети. Монитор без критерия Is Online никогда не помечается как не в сети только потому, что агент замолчал. В это молчание засчитывается только время, когда Status200 принимал данные: время, когда Status200 сам перезапускался, обновлялся или догонял отставание, не учитывается, как объясняет страница Когда Status200 не получает данные.
Как монитор Server / VM получает данные
Перед началом работы
- Монитор Server / VM в вашем проекте.
- Право редактировать мониторы. Секретный ключ и содержащие его команды настройки видны только тем, кто может редактировать мониторы.
- Права root (Linux, macOS) или администратора (Windows) на сервере. Агент устанавливает себя как системную службу.
- Исходящий HTTPS с сервера на ваш URL Status200, напрямую или через HTTP-прокси.
Подключение агента
В командах ниже используются https://status200.ru и YOUR_SECRET_KEY. В собственных командах настройки монитора ваш URL Status200 и секретный ключ монитора уже подставлены, поэтому по возможности копируйте их из монитора.
Откройте команды настройки монитора
Перейдите в Мониторы, откройте монитор Server / VM и выберите Документация. Карточки Set up your Server Monitor (Linux/Mac) и Set up your Server Monitor (Windows) содержат команды для этого монитора. Пока агент не прислал первый отчёт, их показывает и Обзор монитора.
Установите агент
Linux
В Debian и Ubuntu добавьте apt-репозиторий Status200 и установите агент из него:
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://packages.status200.ru/gpg.key -o /etc/apt/keyrings/status200.asc sudo chmod a+r /etc/apt/keyrings/status200.asc echo "deb [signed-by=/etc/apt/keyrings/status200.asc] https://packages.status200.ru/deb stable main" | sudo tee /etc/apt/sources.list.d/status200.list sudo apt-get update sudo apt-get install oneuptime-infrastructure-agentВ RHEL, Rocky Linux, AlmaLinux, Fedora и Amazon Linux добавьте yum-репозиторий Status200 и установите агент из него. Где нет
dnf, используйтеyum, а когда появится запрос, примите ключ подписи Status200.sudo curl -fsSL https://packages.status200.ru/rpm/status200.repo -o /etc/yum.repos.d/status200.repo sudo dnf install oneuptime-infrastructure-agentВ любом другом дистрибутиве используйте скрипт установки:
curl -sSL https://status200.ru/docs/static/scripts/infrastructure-agent/install.sh | sudo bashmacOS
Установите агент через Homebrew:
brew install oneuptime/tap/status200-infrastructure-agentИли используйте скрипт установки:
curl -sSL https://status200.ru/docs/static/scripts/infrastructure-agent/install.sh | sudo bashWindows
В Командной строке от имени администратора установите агент через winget:
winget install --id OneUptime.InfrastructureAgent --exact --scope machineЗатем снова откройте Командную строку от имени администратора, чтобы
oneuptime-infrastructure-agentбыл в пути.Без winget скачайте агент сами:
- Скачайте агент из последнего релиза на GitHub:
oneuptime-infrastructure-agent_windows_amd64.zipдля x64 илиoneuptime-infrastructure-agent_windows_arm64.zipдля ARM64. - Распакуйте zip-архив. В нём находится
oneuptime-infrastructure-agent.exe. - Откройте Командную строку от имени администратора в папке, куда вы его распаковали.
Чтобы развернуть агент через Intune, Configuration Manager или групповую политику, используйте
oneuptime-infrastructure-agent-amd64.msi(илиoneuptime-infrastructure-agent-arm64.msi) из того же релиза. Он устанавливает агент вC:\Program Files\OneUptimeInfrastructureAgent, а более новый MSI обновляет его на месте и снова запускает. MSI из более раннего релиза обновить нельзя: сначала один раз удалите его.Любой из этих способов устанавливает последний релиз для вашей операционной системы и процессора (x86-64 или ARM64). Репозитории apt и yum содержат пакеты
.debи.rpm, приложенные к каждому релизу на GitHub и подписанные ключом изhttps://packages.status200.ru/gpg.key, а пакеты помещают исполняемый файл в/usr/bin. Скрипт установки помещает исполняемый файлoneuptime-infrastructure-agentв$HOME/bin. При самостоятельном размещении скрипт отдаётся с вашего собственного URL Status200.- Скачайте агент из последнего релиза на GitHub:
Подключите его к монитору
Linux
sudo oneuptime-infrastructure-agent configure --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.rumacOS
sudo oneuptime-infrastructure-agent configure --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ruWindows
oneuptime-infrastructure-agent configure --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ruconfigureсохраняет секретный ключ и URL в файле конфигурации агента и устанавливает агент как системную службу. Оба флага обязательны. При самостоятельном размещении заменитеhttps://status200.ruсвоим URL.Если сервер выходит в интернет через прокси, добавьте
--proxy-url:sudo oneuptime-infrastructure-agent configure --proxy-url=http://proxy.example.com:8080 --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ruЗапустите агент
Linux
sudo oneuptime-infrastructure-agent startmacOS
sudo oneuptime-infrastructure-agent startWindows
oneuptime-infrastructure-agent startПри запуске агент проверяет секретный ключ в Status200 и сразу отправляет первый отчёт.
Проверьте, что он отправляет отчёты
Выполните
sudo oneuptime-infrastructure-agent status(безsudoв Windows): команда выведетService is running. В Status200 Обзор монитора перестаёт показывать команды настройки, как только приходит первый отчёт, а вкладка Метрики начинает строить графики по серверу.
Справочник по агенту
Команды
| Команда | Что она делает |
|---|---|
configure --secret-key=<key> --oneuptime-url=<url> | Сохраняет настройки и устанавливает агент как системную службу. Добавьте --proxy-url=<url>, чтобы отправлять отчёты через прокси. |
start | Запускает службу. Она отказывается запускаться, пока не выполнена configure. |
stop | Останавливает службу. |
restart | Перезапускает службу. |
status | Выводит, работает служба или остановлена. |
logs | Выводит последние 100 строк журнала агента. -n <lines> выводит другое число строк, а -f следит за новыми. |
uninstall | Удаляет службу и файл конфигурации агента. |
help | Перечисляет команды. |
Запускайте их с sudo в Linux и macOS и из Командной строки с правами администратора в Windows. Чтобы изменить секретный ключ, URL или прокси настроенного агента, выполните stop и uninstall, а затем снова configure и start.
Файлы
| Файл | Linux и macOS | Windows |
|---|---|---|
| Конфигурация | /etc/status200-infrastructure-agent/config.json | %PROGRAMDATA%\oneuptime-infrastructure-agent\config.json |
| Журнал | /var/log/status200-infrastructure-agent/status200-infrastructure-agent.log | %PROGRAMDATA%\oneuptime-infrastructure-agent\oneuptime-infrastructure-agent.log |
Если агент не может писать в эти каталоги, он использует вместо них ~/.oneuptime-infrastructure-agent/. Переменные окружения STATUS200_AGENT_CONFIG_PATH и STATUS200_AGENT_LOG_PATH явно задают любой из этих путей.
Обновление и удаление
Обновляйте агент тем же способом, которым вы его установили:
| Способ установки | Обновление |
|---|---|
| apt | sudo apt-get update && sudo apt-get install --only-upgrade oneuptime-infrastructure-agent |
| dnf или yum | sudo dnf upgrade oneuptime-infrastructure-agent |
| Homebrew | brew upgrade oneuptime-infrastructure-agent |
| winget | winget upgrade --id OneUptime.InfrastructureAgent --exact |
| MSI | Установите более новый MSI. |
| Скрипт установки | Запустите скрипт установки ещё раз. |
Обновление не перезапускает работающий агент, поэтому после него выполните restart. В Windows выполните stop перед winget upgrade и start после: winget не может заменить программу, пока её выполняет служба.
Чтобы удалить агент, сначала выполните uninstall, а затем удалите пакет тем инструментом, которым вы его установили, например sudo apt-get remove oneuptime-infrastructure-agent.
Что сообщает агент
Каждый отчёт содержит имя хоста сервера и:
| Область | Что сообщается |
|---|---|
| CPU | Использование в %, число ядер, использование по ядрам и время в режимах user, system, idle, ожидания ввода-вывода, steal, nice, IRQ и soft IRQ |
| Память | Всего, занято, свободно и доступно памяти, буферы и кеш, использование в %, а также swap: всего, занято, свободно и использование в % |
| Диски | Для каждого смонтированного диска: точка монтирования, устройство, файловая система, общий, занятый и свободный объём, использование в %, прочитанные и записанные байты и операции, время ввода-вывода |
| Нагрузка | Средняя нагрузка за 1, 5 и 15 минут |
| Сеть | Для каждого интерфейса: отправленные и полученные байты и пакеты, ошибки и отброшенные пакеты на входе и выходе; а также установленные и слушающие соединения |
| Хост | Операционная система, платформа и версия, версия ядра и архитектура, время работы, время загрузки, виртуализация и число процессов |
| Процессы | Каждый запущенный процесс: имя, PID, команда, CPU в %, память, статус, потоки, пользователь и время запуска |
Значения, которых операционная система не предоставляет, опускаются. Вкладка Метрики монитора строит графики доступности, CPU, памяти, использования диска и дискового ввода-вывода, средней нагрузки, swap, сетевого трафика и ошибок, соединений, времени работы и числа процессов.
Критерии мониторинга
Критерии решают, когда монитор в сети, работает с ухудшением или не в сети, и когда он открывает оповещение или инцидент. У каждого фильтра в критерии есть Тип фильтра, Условие фильтра и для большинства типов значение.
| Тип фильтра | Что проверяет | Условия фильтра |
|---|---|---|
| Is Online | Присылал ли агент отчёт недавно (по умолчанию за последние 3 минуты) | Истина, Ложь |
| CPU Usage (in %) | Общее использование CPU | Больше, Меньше, Больше или равно, Меньше или равно |
| Memory Usage (in %) | Используемая память | Как для CPU |
| Disk Usage (in %) | Использование диска, указанного в Путь к диску | Как для CPU |
| Swap Usage (in %) | Используемый swap | Как для CPU |
| CPU IO Wait (in %) | Доля времени CPU в ожидании ввода-вывода | Как для CPU |
| Load Average (1 minute) | Средняя нагрузка за последнюю минуту | Как для CPU |
| Load Average (5 minute) | Средняя нагрузка за последние 5 минут | Как для CPU |
| Load Average (15 minute) | Средняя нагрузка за последние 15 минут | Как для CPU |
| Server Process Name | Запущен ли процесс с этим именем (без учёта регистра) | Is Executing, Is Not Executing |
| Server Process Command | Запущен ли процесс именно с этой командной строкой (без учёта регистра) | Is Executing, Is Not Executing |
| Server Process PID | Запущен ли процесс с этим PID | Is Executing, Is Not Executing |
Путь к диску принимает точку монтирования или устройство, например /, /mnt/data, C:\ или /dev/sda1; если поле пустое, это /. Введите *, чтобы проверять каждый диск, о котором сообщает агент: каждый диск, превысивший порог, получает собственное оповещение, так что второй заполняющийся диск не прячется за открытым оповещением первого.
Оценка за период времени
Оценивать этот критерий в течение определённого периода времени – это отдельный флажок в форме критерия, а не условие фильтра. Он доступен для Is Online и для каждого числового типа фильтра. Включите его, чтобы сравнивать агрегат – выбранный в Оценить (Среднее, Сумма, Maximum Value, Minimum Value, All Values, Any Value) за окно, заданное в За последние (в минутах), – вместо значения последней проверки. Для фильтра Is Online окно – это время, которое агент может молчать, прежде чем сервер будет считаться не в сети.
All Values срабатывает только тогда, когда окно действительно покрыто данными. У только что созданного монитора или у монитора, проверки которого перестали записываться, недостаточно истории, чтобы что-то сказать о последних N минутах, поэтому критерий ждёт, а не срабатывает по единственному имеющемуся значению. Any Value – это настройка для «сообщи, как только одна проверка выйдет за порог», и он по-прежнему срабатывает сразу.
Если нет данных определяет, что происходит, пока окно не может подтвердить критерий:
| Если нет данных | Поведение | Для чего использовать |
|---|---|---|
| Ignore (по умолчанию) | Критерий не срабатывает. | Обычные пороговые оповещения. |
| Триггер | Отсутствие данных считается проблемой. | Проверки в стиле heartbeat, где молчание само по себе – сбой. |
| Treat As Zero | Окно сравнивается как один ноль. | Счётчики, где «нет событий» действительно означает ноль. |
CPU и нагрузка постоянно дают короткие всплески. Оценивайте их за несколько минут с Среднее или All Values, а не оповещайте по одному отчёту.
Примеры критериев
| Цель | Тип фильтра | Условие фильтра | Значение |
|---|---|---|---|
| Пометить сервер как не в сети, когда агент перестаёт присылать отчёты | Is Online | Ложь | — |
| Оповещать, когда использование CPU выше 90 % | CPU Usage (in %) | Больше | 90 |
| Оповещать, когда корневой диск заполнен более чем на 85 % | Disk Usage (in %), Путь к диску / | Больше | 85 |
| Оповещать о любом диске, заполненном более чем на 85 %, по одному оповещению на диск | Disk Usage (in %), Путь к диску * | Больше | 85 |
| Оповещать, когда использование памяти выше 80 % | Memory Usage (in %) | Больше | 80 |
| Оповещать, когда nginx перестаёт работать | Server Process Name | Is Not Executing | nginx |
Устранение неполадок
Агент не отправляет отчёты
- Проверьте, что служба работает:
sudo oneuptime-infrastructure-agent status. - Прочитайте её журнал:
sudo oneuptime-infrastructure-agent logs -n 50. СтрокаMetrics successfully pushed to Status200 serverозначает, что отчёты доходят. - Агент проверяет секретный ключ при запуске и завершается, если Status200 его отклоняет, записывая в журнал
Secret key is invalid. Сравните ключ с ключом на странице Настройки монитора, в разделе Сбросить секретный ключ серверного монитора. - Убедитесь, что сервер может достучаться до вашего URL Status200 по HTTPS и что брандмауэр не блокирует исходящие соединения.
sudo сообщает, что команда не найдена
Пакеты помещают агент в системный путь, поэтому это бывает только со скриптом установки. Скрипт установки помещает исполняемый файл в $HOME/bin пользователя, от имени которого он запускался, и выводит использованный каталог. Запускайте агент по полному пути, например sudo /root/bin/status200-infrastructure-agent configure .... Чтобы вместо этого установить его в каталог из системного пути, передайте скрипту -b:
curl -sSL https://status200.ru/docs/static/scripts/infrastructure-agent/install.sh | sudo bash -s -- -b /usr/local/binstart сообщает, что конфигурация службы не найдена
configure не выполнялась, или uninstall удалила её конфигурацию. Выполните configure с секретным ключом и URL, а затем start.
Монитор никогда не уходит в офлайн, когда сервер выключен
Пометить молчащий сервер как не в сети может только критерий Is Online. Добавьте его с Условие фильтра, равным Ложь, и задайте статус монитора, на который он переключает.
Отчёты не проходят через прокси
- Проверьте URL прокси и порт, переданные в
--proxy-url. - Убедитесь, что прокси разрешает соединения с вашим URL Status200.
- Чтобы сменить прокси, выполните
stopиuninstall, затемconfigureс новым--proxy-urlиstart.