GNU/Linux >> Znalost Linux >  >> Linux

Jak monitorovat váš Linux Server pomocí osquery

Osquery je open source software pro monitorování, dotazy a analýzu operačního systému. Vytvořil ji Facebook a odhaluje operační systém jako vysoce výkonnou relační databázi, kterou lze dotazovat pomocí dotazů založených na SQL.

Osquery je multiplatformní software, lze jej nainstalovat na Linux, Windows, MacOS a FreeBSD. Osquery nám umožňuje prozkoumat profil operačního systému, výkon, zabezpečení a mnoho dalších metrik pomocí dotazů založených na SQL.

V tomto tutoriálu vám ukážu, jak nainstalovat osquery na linuxové distribuce Ubuntu 18.04 LTS a CentOS 7. Nainstalujeme osquery, naučíme se používat interaktivní režim 'osqueryi' a jak monitorovat živý systém pomocí osquery.

Předpoklady

  • Linux OS (Ubuntu 18.04 nebo CentOS 7)
  • Oprávnění uživatele root

Co uděláme

  • Nainstalujte osquery na operační systém Linux
  • Základní použití interaktivního režimu osqueryi
  • Monitorovací systém pomocí osquery

Krok 1 – Instalace osquery na operační systém Linux

osquery poskytuje své vlastní úložiště pro každou platformu. V tomto kroku nainstalujeme balíček osquery z oficiálního úložiště osquery.

Na Ubuntu

Přidejte klíč osquery.

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

Nainstalujte balíček osquery na Ubuntu.

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

V systému CentOS

Přidejte klíč osquery.

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

Nainstalujte balíček osquery na CentOS 7.

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

Počkejte, až se nainstalují všechny balíčky.

Krok 2 – Základní použití interaktivního režimu osqueryi

osquery poskytuje uživatelům dvě hlavní rozhraní, osqueryi a osqueryd.

osqueryi je interaktivní dotazovací konzole osquery. Je to jako příkazový shell 'mysql' v MySQL a shell 'psql' v databázi PostgreSQL.

V tomto kroku se naučíme základní použití interaktivního režimu 'osqueryi'.

Zadejte příkaz 'osqueryi' na serverovém terminálu a získáte režim interaktivní konzoly osquery.

osqueryi

Dále se seznámíme se základním příkazem režimu konzoly osqueryi.

Zobrazit všechny základní dostupné příkazy v interaktivním režimu osqueryi.

.help

Zobrazit aktuální konfiguraci a nastavení osquery.

.show

Osquery poskytuje více režimů zobrazení pro zobrazení výsledků dotazu. Výchozí režim je režim „pěkný“.

Nyní změníme režim zobrazení výsledků dotazu, pro tuto příručku použijeme režim 'čára'.

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

Osquery odhaluje operační systém jako relační databázový systém. Všechny informace o systému jsou uloženy v tabulkách osquery a můžeme prozkoumat informace o celém systému dotazem na všechny dostupné tabulky.

Chcete-li získat seznam všech dostupných tabulek v osquery, spusťte níže uvedený příkaz.

.tables

Jakmile budeme znát všechny dostupné tabulky v systému osquery, podíváme se na sloupce.

Pomocí následujícího příkazu získáte schéma (sloupce, typy) tabulek.

.schema users
.schema processes

A získáte všechny sloupce schématu v tabulce.

Krok 3 – Základní monitorování systému Linux pomocí dotazu

V tomto kroku budeme monitorovat živý systém Linux pomocí osquery. Budeme monitorovat informace o profilu systému, uživatele, síťová rozhraní atd. prostřednictvím interaktivního režimu osqueryi.

Získat systémové informace

Zobrazit podrobnosti o systémovém hardwaru.

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

Získat verzi operačního systému

Zobrazit aktuální informace o operačním systému, včetně verze operačního systému, platformy, opravy operačního systému a kódového názvu.

SELECT * FROM os_version;

Zobrazit verzi jádra a moduly

Chcete-li zkontrolovat informace o jádře systému, osquery poskytuje tabulky 'kernel_info' a 'kernel_modules'.

Ukaž jádro používané systémem.

SELECT * FROM kernel_info;

Zobrazit všechny načtené moduly jádra v systému.

SELECT * FROM kernel_modules LIMIT 5;

Kontrola úložiště a balíčků

osquery poskytuje tabulky pro kontrolu repozitářů a nainstalovaných balíčků v Linuxu Ubuntu i CentOS.

– Na Ubuntu

Na Ubuntu můžeme zkontrolovat dostupné repozitáře prostřednictvím 'apt_sources' a zkontrolovat balíčky nainstalované prostřednictvím 'deb_packages'.

Zkontrolujte všechna dostupná úložiště Ubuntu.

SELECT * FROM apt_sources;
SELECT name, base_uri, release, maintainer, components FROM apt_sources ORDER BY name;

Zkontrolujte všechny balíčky nainstalované pomocí tabulky deb_packages.

SELECT * FROM deb_packages;

Zobrazit pouze název balíčku a verzi.

SELECT name, version FROM deb_packages ORDER BY name;

Pro konkrétní balíček přidejte filtr názvu.

SELECT name, version FROM deb_packages WHERE name="nginx";

– V systému CentOS

Na CentOS můžeme zkontrolovat dostupné úložiště prostřednictvím 'yum_sources' a zkontrolovat balíčky nainstalované prostřednictvím 'rpm_packages'.

Zkontrolujte všechna dostupná úložiště CentOS.

SELECT * FROM yum_sources;
SELECT name, baseurl, enabled FROM yum_sources;

Zkontrolujte povolené úložiště přidáním filtru 'enabled'.

SELECT name, baseurl, enabled FROM yum_sources WHERE enabled=1;

Zkontrolujte všechny balíčky nainstalované pomocí tabulky rpm_packages.

SELECT * FROM rpm_packages;
SELECT name, version FROM rpm_packages ORDER BY name;

Pro konkrétní název balíčku přidejte filtr názvu.

SELECT name, version FROM rpm_packages WHERE name="firewalld";

Informace o připojení disku

Můžeme použít tabulku připojení ke kontrole všech podrobností o systémové jednotce, včetně volných inodů, příznaků, typu atd.

Zkontrolujte všechny disky připojené systémem.

SELECT * FROM mounts;
SELECT device, path, type, inodes_free, flags FROM mounts;

Pro konkrétní typ zařízení.

SELECT device, path, type, inodes_free, flags FROM mounts WHERE type="ext4";
SELECT device, path, type, inodes_free, flags FROM mounts WHERE type="tmpfs";

Informace o paměti

Kontrola systémové paměti v bajtech.

SELECT * FROM memory_info;

Informace o síťovém rozhraní

Kontrola síťové adresy pomocí 'interface_addresses'.

SELECT * FROM interface_addresses;

Kontrola podrobností síťového rozhraní pomocí 'interface_details'.

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

Doba provozu serveru

Kontrola provozuschopnosti serveru.

SELECT * FROM uptime;

Kontrola uživatele

osqery poskytuje podrobné tabulky pro kontrolu uživatelů systému. Můžeme použít tabulku 'users' ke kontrole všech uživatelů v systému, používat tabulku 'poslední' ke kontrole posledního přihlášení uživatelů a pomocí 'logged_in_users' získat přihlášeného uživatele s aktivním shellem.

Chcete-li zkontrolovat všechny dostupné uživatele na serveru, použijte tabulku 'users'.

SELECT * FROM users;

Pro běžné uživatele můžeme zadat uid na '>=1000'.

SELECT * FROM users WHERE uid>=1000;

Chcete-li zkontrolovat poslední přihlášené uživatele, použijte tabulku 'poslední'.

SELECT * FROM last;

Pro normální uživatele vyplňte 'type' na '7'.

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

Pro kontrolu přihlášeného uživatele s aktivním shellem použijte tabulky 'logged_in_users'.

SELECT * FROM logged_in_users;

Informace o firewallu tabulek IP

Pomocí tabulky 'tables' můžeme zkontrolovat všechna dostupná pravidla firewallu, včetně řetězce, politiky, src/dst IP a portu atd.

Zobrazit všechna pravidla iptables.

SELECT * FROM iptables;

Specifikujte pravidlo pomocí vlastního dotazu níže.

SELECT chain, policy, src_ip, dst_ip FROM iptables WHERE chain="POSTROUTING" order by src_ip;

Informace o procesu

Celý proces aplikace můžeme zkontrolovat pomocí tabulky 'procesy'. Poskytuje podrobné informace o procesu včetně pid, názvu, cesty, příkazu atd.

Dotaz na základní procesy pro kontrolu všech spuštěných aplikací.

SELECT * FROM processes;

Zadejte sloupce pro pid atd., cestu a příkaz.

SELECT pid, name, path, cmdline FROM processes;

Kontrola úlohy Cron

Zkontrolujte dostupnou úlohu cron a čas spuštění skriptu pomocí tabulky 'crontab'.

SELECT * FROM crontab;

Binární soubor SUID

SUID (Nastavit uživatelské ID vlastníka při spuštění) je speciální typ oprávnění k souboru udělená souboru a většinou binárním spustitelným souborům.

Zkontrolujte všechny dostupné uvedené binární soubory.

SELECT * FROM suid_bin;

Zadejte uživatelské jméno a název skupiny.

SELECT * FROM suid_bin WHERE username="root" AND groupname="nobody" order by path;

A vše výše uvedené je základní monitorování systému Linux pomocí osquery.


Linux
  1. Jak monitorovat váš Linux server?

  2. Jak měřit výkon na vašem Linux VPS serveru

  3. Jak používat OpenSSH k připojení k vašemu linuxovému serveru

  1. Monitorujte svůj Linux server pomocí Checkmk

  2. Jak synchronizovat čas na serveru Linux pomocí Chrony

  3. Jak monitorovat zabezpečení serveru Linux pomocí Osquery

  1. Jak vytvořit server CS:GO na Linux VPS

  2. Jak monitorovat linuxové servery pomocí CloudStats

  3. Jak monitorovat váš CentOS 7 Server pomocí Cacti