Гид по технологиям

Установка и базовый мониторинг osquery на Ubuntu 18.04 и CentOS 7

6 min read Системный мониторинг Обновлено 21 Nov 2025
Установка osquery на Ubuntu 18.04 и CentOS 7
Установка osquery на Ubuntu 18.04 и CentOS 7

Снимок экрана с интерфейсом osquery

Краткое введение

osquery — это открытое ПО для мониторинга, запросов и аналитики операционной системы. Проект был создан Facebook. Osquery представляет ОС как высокопроизводительную реляционную базу данных. Все элементы системы (процессы, пользователи, пакеты, монтирования, сетевые интерфейсы и т. д.) доступны в виде таблиц. Запросы формулируются на знакомом SQL.

Краткое определение: osquery — агент, который экспортирует данные ОС в виде SQL‑таблиц для интерактивного исследования и автоматического мониторинга.

Факты: платформа — мультиродовая. Osquery поддерживается на Linux, Windows, macOS и FreeBSD. В этой статье сосредоточимся на Ubuntu 18.04 и CentOS 7.

Важно: для установки требуются права root.

Что вы получите из руководства

  • Пошаговая установка osquery на Ubuntu 18.04 и CentOS 7.
  • Быстрый старт с osqueryi — интерактивной консолью.
  • Набор практических SQL‑запросов для мониторинга оборудования, ПО, сетей и безопасности.
  • Чек‑листы для администратора, DevOps и аналитика безопасности.
  • SOP (плейбук) установки и проверки работоспособности.

Предварительные условия

  • Сервер с Linux (Ubuntu 18.04 или CentOS 7).
  • root‑доступ или эквивалентные привилегии sudo.

Быстрая карта намерений (primary intent + варианты)

Связанные варианты: osquery установить ubuntu, osquery на centos, osqueryi команды, мониторинг linux sql, osquery cheat sheet


Шаг 1 — Установка osquery на Linux

Osquery предоставляет репозиторий для каждой платформы. В этих шагах мы добавим официальный репозиторий и установим пакет osquery.

На Ubuntu 18.04

Добавьте GPG‑ключ для репозитория и импортируйте ключ в apt:

export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY

Добавьте репозиторий и установите пакет:

sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt update
sudo apt install osquery -y

Примечание: если на сервере включён строгий фаерволл или прокси, убедитесь, что доступ к pkg.osquery.io разрешён.

На CentOS 7

Добавьте GPG‑ключ репозитория:

curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery

Добавьте репозиторий и установите пакет:

sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm
sudo yum install osquery -y

Дождитесь завершения установки всех зависимостей.

Процесс установки osquery на Linux

Важно: после установки пакет osquery обычно ставит системные юниты. На некоторых дистрибутивах osqueryd запускается как сервис; проверьте systemctl status osqueryd.


Шаг 2 — Быстрая работа в osqueryi (интерактивный режим)

osquery поставляется с двумя основными интерфейсами:

  • osqueryi — интерактивная консоль для ad‑hoc запросов.
  • osqueryd — демон для постоянного мониторинга и логирования.

osqueryi похож на mysql/psql: он предназначен для быстрой проверки данных и отладки.

Запустите консоль:

osqueryi

Полезные команды внутри osqueryi:

  • .help — показать список встроенных команд.
  • .show — показать текущие конфигурации и состояние.
  • .tables — список доступных таблиц.
  • .schema — показать схему таблицы (столбцы и типы).
  • .mode — переключить формат вывода (pretty, column, csv, list, line).
  • Примеры переключения режимов вывода:

    .mode csv
    .mode list
    .mode column
    .mode line
    .mode pretty

    Использование osqueryi и встроенных команд

    Примечание: режим line удобен для быстрого парсинга внешними инструментами; pretty — для чтения человеком.


    Шаг 3 — Базовый мониторинг Linux с помощью SQL‑запросов

    Ниже собраны практические запросы, которые помогают получить профиль системы, состояние пакетов, загрузку, сетевые интерфейсы, процессы и параметры безопасности.

    Получение информации о системе

    Показать все доступные данные о системе:

    SELECT * FROM system_info;

    Выбрать ключевые поля:

    SELECT hostname, cpu_type, physical_memory, hardware_vendor, hardware_model FROM system_info;

    Информация о железе системы

    Версия ОС

    SELECT * FROM os_version;

    Детали операционной системы

    Версия ядра и модули

    Показать сведения о ядре:

    SELECT * FROM kernel_info;

    Показать загруженные модули (ограничение для быстрого вывода):

    SELECT * FROM kernel_modules LIMIT 5;

    Информация о используемом ядре Linux

    Репозитории и пакеты

    Osquery имеет разные таблицы для Ubuntu и CentOS.

    • Ubuntu: apt_sources, deb_packages.
    • CentOS: yum_sources, rpm_packages.

    Примеры для Ubuntu:

    SELECT * FROM apt_sources;
    SELECT name, base_uri, release, maintainer, components FROM apt_sources ORDER BY name;
    SELECT name, version FROM deb_packages ORDER BY name;
    SELECT name, version FROM deb_packages WHERE name='nginx';

    Примеры для CentOS:

    SELECT * FROM yum_sources;
    SELECT name, baseurl, enabled FROM yum_sources WHERE enabled=1;
    SELECT name, version FROM rpm_packages ORDER BY name;
    SELECT name, version FROM rpm_packages WHERE name='firewalld';

    Детали пакетов и репозиториев

    Монтирования и файловые системы

    SELECT * FROM mounts;
    SELECT device, path, type, inodes_free, flags FROM mounts;
    SELECT device, path, type, inodes_free, flags FROM mounts WHERE type='ext4';

    Информация о точках монтирования

    Память

    SELECT * FROM memory_info;

    Детали памяти в байтах

    Сетевые интерфейсы

    Адреса интерфейсов:

    SELECT * FROM interface_addresses;

    Детальная статистика интерфейсов:

    SELECT * FROM interface_details;
    SELECT interface, mac, ipackets, opackets, ibytes, obytes FROM interface_details;

    Информация о сетевых интерфейсах

    Время работы сервера

    SELECT * FROM uptime;

    Пользователи и входы в систему

    Все пользователи:

    SELECT * FROM users;

    Обычные незарегистрированные системные пользователи (uid>=1000):

    SELECT * FROM users WHERE uid>=1000;

    Последние входы:

    SELECT * FROM last;
    SELECT username, time, host FROM last WHERE type=7;

    Текущие авторизованные пользователи:

    SELECT * FROM logged_in_users;

    Информация о пользователях системы

    Правила iptables

    SELECT * FROM iptables;
    SELECT chain, policy, src_ip, dst_ip FROM iptables WHERE chain='POSTROUTING' ORDER BY src_ip;

    Правила iptables

    Процессы

    Все процессы:

    SELECT * FROM processes;

    Выборка ключевых полей:

    SELECT pid, name, path, cmdline FROM processes;

    Детали процессов в системе

    Cron‑задания

    SELECT * FROM crontab;

    Cron задачи и расписание

    SUID бинарники

    SUID — это бит в правах доступа, который позволяет исполняемому файлу запускаться с правами владельца файла. Такие файлы представляют потенциальную угрозу безопасности.

    SELECT * FROM suid_bin;
    SELECT * FROM suid_bin WHERE username='root' AND groupname='nobody' ORDER BY path;

    Список файлов с SUID


    Cheat sheet: часто используемые запросы (сводный набор)

    ЦельЗапрос
    Проверить hostname и памятьSELECT hostname, physical_memory FROM system_info;
    Проверить активные пакеты nginxSELECT name, version FROM deb_packages WHERE name=’nginx’;
    Найти процессы с большой командной строкойSELECT pid, name, cmdline FROM processes WHERE LENGTH(cmdline) > 100;
    Список подключённых интерфейсовSELECT interface, ipaddress FROM interface_addresses;
    Загруженные ядро модулиSELECT name, size FROM kernel_modules ORDER BY name;
    Текущие авторизованные пользователиSELECT * FROM logged_in_users;

SOP: плейбук установки и проверки (краткий)

  1. Подготовка: убедитесь в подключении к интернету и наличии root‑прав.
  2. Добавление GPG‑ключа и репозитория (см. шаг 1).
  3. Установка osquery и проверка статуса пакета.
  4. Запуск osqueryi и выполнение .tables и .schema для ознакомления со структурами.
  5. Выполнение контрольных запросов из Cheat sheet.
  6. По результатам проверок сформировать baseline и настроить osqueryd с конфигурационными файлами для постоянного мониторинга.

Критерии приёмки

  • osquery установлен и версия пакета отображается в менеджере пакетов.
  • osqueryi запускается без ошибок.
  • Минимальный набор запросов возвращает ожидаемые данные (system_info, os_version, processes).

Чек‑листы по ролям

Администратор систем:

  • Установить пакет и проверить systemctl status osqueryd.
  • Выполнить базовые запросы (system_info, mounts, memory_info).
  • Настроить ротацию логов и права доступа к файлам конфигурации.

DevOps/Инженер SRE:

  • Интегрировать osqueryd с центральной системой логирования (ELK/Graylog/Fluentd).
  • Настроить правила для оповещений по критическим изменениям (новые пакеты, удаление пользователей).
  • Внедрить шаблоны конфигурации для развертывания на кластере.

Аналитик безопасности (SOC):

  • Создать регулярные запросы на обнаружение SUID, подозрительных процессов, изменений в crontab.
  • Сравнить текущие результаты с базовой линией и обнаруживать отклонения.
  • Настроить экспорт данных в SIEM.

Методология быстрых проверок (mini‑methodology)

  1. Составьте baseline: выполните набор запросов на чистой системе.
  2. Автоматизируйте сбор: настроите osqueryd для периодического снятия снимков.
  3. Сравнивайте изменения: используйте diff по снимкам или правила для срабатывания оповещений.
  4. Реагируйте: откатывайте изменения или инициируйте инцидент‑процедуру при выявлении подозрительных отклонений.

Частые ошибки и когда это не работает

  • Если система не имеет доступа к repo, установка не завершится.
  • Если SELinux жестко запрещает новые бинарники, osquery может неправильно функционировать; проверьте логи audit.
  • На очень старых или минимальных системах могут отсутствовать некоторые таблицы — это зависит от платформенных API.

Устранение неполадок (короткий набор шагов)

  • Проверка версии и статуса: sudo systemctl status osqueryd или dpkg -l | grep osquery / rpm -qa | grep osquery.
  • Запуск osqueryi вручную для локальной диагностики.
  • Просмотр системных логов: journalctl -u osqueryd.
  • Проверка разрешений файлов конфигурации и ключей.

Краткий глоссарий (1 строка каждый)

  • osqueryi — интерактивный консольный клиент для выполнения SQL‑запросов к таблицам ОС.
  • osqueryd — демон для фонового сбора событий и отправки логов.
  • Таблица — представление сущностей ОС (например, processes, users) в виде SQL‑таблицы.
  • SUID — специальный бит прав, позволяющий исполняемому файлу работать с правами владельца.

Заключение и рекомендации

Osquery даёт гибкий и мощный способ исследовать состояние операционной системы с помощью привычных SQL‑запросов. Для продакшн‑использования настройте osqueryd, интегрируйте его с системами логирования и создайте набор правил для обнаружения аномалий. Начните с базовых запросов из Cheat sheet и постепенно расширяйте профиль мониторинга под задачи вашей организации.

Ссылки и документация

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Измерить рост на iPhone с LiDAR
Гид

Измерить рост на iPhone с LiDAR

PUBG падает в Windows 11 — как исправить
Гейминг

PUBG падает в Windows 11 — как исправить

Исправить ошибку «Oops! Something went wrong» в YouTube
Техподдержка

Исправить ошибку «Oops! Something went wrong» в YouTube

Экран входа macOS — настройки и советы
macOS

Экран входа macOS — настройки и советы

Удалить историю Google Bard и отключить её
Конфиденциальность

Удалить историю Google Bard и отключить её

TinyLetter для блогеров: быстро и просто
Email-маркетинг

TinyLetter для блогеров: быстро и просто