Az SQL és az osquery használatával kérdezze meg a hardvert Linux rendszeren – CloudSavvy IT

Avatar Gadam | 2021.01.28. 35 Views 0 Likes 0 Ratings

35 Views 0 Ratings Rate it

Bash Shell

Felejti el folyamatosan a homályos hardverparancsok szintaxisát, amelyeket alig használ? Az osquery alkalmazás lehetővé teszi a Linux számítógép hardverének, felhasználóinak és teljesítményének lekérdezését szokásos SQL parancsokkal.

Az osquery alkalmazás

A osquery alkalmazás egy ingyenes és nyílt forráskódú program a osquery Alapítvány. Óriási mennyiségű információt gyűjt a Linux számítógépéről, és ál-adatbázisként teszi hozzáférhetővé. Az adatbázis sok táblázatot tartalmaz, amelyek különböző kategóriájú információkat tartalmaznak. A táblázatok adatai egyszerű használatával nyerhetők le strukturált lekérdezés nyelve (SQL) parancsokat.

az osquery használható interaktív módon, vagy vezérelhető egy konfigurációs fájlon keresztül, és démonként futtatható. Démonként történő futtatása lehetővé teszi a lekérdezések ütemezését. az osquery nagyon rugalmas, kifinomult alkalmazás. Sokkal többet tartalmaz, mint amire egy bevezető cikkben lehet kitérni. A kiváló dokumentáció az első hely, ahol meg kell vizsgálni a sok más lehetőséget.

Meg fogjuk vizsgálni az osquery interaktív használatát.

Az osquery telepítése

A legtöbb Linux disztribúció nem tartalmazza az osquery-t a hivatalos adattárakban. Ez nem jelent problémát, letölthetünk telepítési csomagokat a osquery letöltések oldal.

Ubuntu esetén töltse le a „.deb” csomagot. Ezt valószínűleg a „Letöltések” könyvtárba tölti le. Változtassa a könyvtárat a „Letöltések” könyvtárba, majd használja dpkg parancs a .deb fájl telepítéséhez. Helyettesítse a fájl nevét a példánkban a letöltött fájl nevével.

cd Downloads
sudo dpkg -i osquery_4.6.0-1.linux_amd64.deb

sudo dpkg -i osquery_4.6.0-1.linux_amd64.deb a terminál ablakában

A Fedora részéről töltse le az „.rpm” fájlt. Keresse meg a fájlt a merevlemezen, és használja a rpm csomag telepítéséhez. Használjuk a -U (frissítési opció. Ez telepít egy alkalmazást, ha még nincs telepítve a rendszerére, és frissíti, ha van.

sudo rpm -U osquery-4.6.0-1.linux.x86_64.rpm

sudo rpm -U osquery-4.6.0-1.linux.x86_64.rpm a terminál ablakában

A Manjaro-n az oszquery az alapértelmezett tárházakban található. tudunk segítségével telepítse pacman.

sudo pacman -Sy osquery

sudo pacman -Sy osquery egy terminál ablakban

Kipróbálhatja, hogy az osquery telepítve van-e – és megtudhatja, hogy milyen verziót használ -, ha elindítja az osquery alkalmazást a --version választási lehetőség. Vegye figyelembe, hogy a parancs végén van egy „i”. Ez „osqueryi”, nem „osquery”. Az „i” interaktív.

osqueryi --version

osqueryi - verzió a terminál ablakában

Interaktív héj

Az osquery interaktív módban történő indításához használja a osqueryi parancs.

osqueryi

osqueryi a terminál ablakában

Elindul egy oszquery interaktív shell, és megjelenik egy „osquery>” parancs.

Itt írja be az SQL-t és dot parancsokat. A pontparancsok azok a parancsok, amelyeket kiadsz, hogy kölcsönhatásba lépjenek az osquery héjjal. Egy vagy két kivételtől eltekintve a dot parancsok nem adnak vissza információkat a számítógépről. Nevüket a pontról vagy a „” pontról kapják. ami az összes dot parancs elején megjelenik.

A „Fel nyíl” gombbal görgethet a korábban használt parancsok között, és a tabulátorok kitöltése elérhető a táblák nevéhez.

A pontparancsok listájának és mindegyikük gyors leírásának megszerzéséhez használja a .help parancsot az „osquery>” parancsra.

.help

.segítsen egy osquery interaktív munkamenetben

Az osquery munkamenet bezárásához bármelyiket használhatja .exit vagy .quit.

.quit

v osquery interaktív munkamenetben

SQL parancsok használata

Az osquery bemutatja a rendszerinformációkat, amelyekről táblázatokként jelenthet egy adatbázisban. Az adatbázis lekérdezéséhez ismernie kell az egyes táblák és mezők nevét. A .tables parancs felsorolja a táblákat az Ön számára.

.tables

.táblák egy osquery interaktív munkamenetben

Nagyon sok asztal van. Görgethet előre és hátra a listán, és megkeresheti az Önt érdeklő listákat. Tegyük fel, hogy többet akarunk tudni a uptime asztal. A .schema a parancs felsorolja a tábla mezőneveit és az egyes mezők által tárolt adatok típusát.

.schema uptime

.schema uptime egy osquery interaktív munkamenetben

Most már elég sokat tudunk ahhoz, hogy kiadhassuk az első SQL-utasításunkat. Kiválasztjuk az adatokat a days, hours, és minutes oszlopok a uptime asztal. Ne feledje, hogy ez az SQL, ezért használjon pontosvesszőt “;”A parancs befejezéséhez.

select days, hours, minutes from uptime;

válasszon napokat, órákat és perceket az üzemidőből;  interaktív interaktív munkamenetben

Ha az összes oszlopot meg akarjuk tekinteni, használhatunk egy csillagot*”Az összes oszlopnevet képviselő parancsikonként. De van egy pontparancs, amely még gyorsabb. típus .all a táblázat neve követi ugyanazt az eredményt. (Ne feledje, nincs pontosvessző;” végén a pont parancsokat.)

select * from uptime;
.all uptime

válasszon * a rendelkezésre állásból;  interaktív szekcióban

Adatok kiválasztása a táblázatokból

A felhasználók táblázata

Az összes felhasználónév listájának megtekintéséhez lekérdezhetjük users asztal.

select username from users;

válassza ki a felhasználók nevét;  interaktív interaktív munkamenetben

Az eredményeket bármely oszlop szerint rendezheti. Ebben a példában csak egyetlen oszlopunk van, de az adatokat továbbra is rendezhetjük.

select username from users order by username;

válassza ki a felhasználónevet a felhasználókból, felhasználónév szerint rendezve;  interaktív interaktív munkamenetben

Ha a felhasználónév egy részhalmazát szeretnénk látni – esetleg egy bizonyos hosszúságúak -, akkor további záradékokat adhatunk az SQL utasításunkhoz.

select username, directory from users where length(username)=4 order by username;

válassza ki a felhasználónév, könyvtárat a felhasználók közül, ahol a hossz (felhasználónév) = 4 sorrend felhasználónév szerint;  interaktív interaktív munkamenetben

Talán csak egyetlen felhasználónév érdekel.

select username, directory, shell from users where username="mary";

válassza ki a felhasználónevet, könyvtárat, héjat azoktól a felhasználóktól, ahol felhasználónév ="Mária";  interaktív interaktív munkamenetben

A folyamatok táblázat

Bármely táblázatban szereplő adatokra ugyanazokat az elveket alkalmazhatjuk. Ha meg akarjuk tudni a gedit folyamat során így kereshetünk rá:

select pid, name, state, start_time from processes where name="gedit";

válassza ki a pid, név, állapot, kezdési_időt azokból a folyamatokból, ahol a név ="gedit";  interaktív interaktív munkamenetben

Az „S” a state oszlop azt jelenti megszakítható alvás.

A naplózott_felhasználók tábla

Ahelyett, hogy megnéznénk a konfigurált felhasználók listáját, mint korábban, talán inkább a jelenleg bejelentkezett felhasználók érdekelnek minket.

select user, host, time from logged_in_users;

válassza ki a felhasználót, a gazdagépet, az időt a bejelentkezett_felhasználók közül;  interaktív szekcióban

A nem emberi felhasználású felhasználók kizárásához használja anot like”SQL záradék. A tty oszlop a a felhasználó tty adatai vagy tilde~”, Ha nincs használva tty.

select user, host, time from logged_in_users where tty not like "~";

válassza ki a felhasználót, a gazdagépet, az időt a log____user felhasználókból, ahol a tty nem tetszik "~";  interaktív interaktív munkamenetben

Láthatjuk, hogy a „dave” felhasználónévvel rendelkező felhasználó kétszer van bejelentkezve.

A „: 0” a host oszlop jelzi a számítógéphez csatlakoztatott képernyőt és billentyűzetet. Ennek a felhasználónak fizikailag a helyszínen kell lennie. A másik felhasználónevet használó bejelentkezési munkamenet egy másik IP-címről származik.

Ezt valószínűleg ki kell vizsgálni. Hogyan érhetik el távolról a számítógépet, ha itt vannak az épületben? Ezen munkamenetek egyike csaló lehet.

Az os_version táblázat

A Linux verzió részleteinek megismeréséhez kérdezze meg a os_version asztal.

select name, major, minor, codename from os_version;

válassza ki a nevet, a majorot, a minorot, a kódnevet az os_verzióból;  interaktív interaktív munkamenetben

A felület_címek Táblázat

A interface_addresses táblázat tartalmazza a hálózati interfészek adatait.

select interface, address from interface_addresses order by interface;

interfész, cím kiválasztása az interfész címekről sorrend felületenként;  interaktív szekcióban

A memory_info táblázat

A memory_info táblázat információkat tartalmaz a számítógép memóriájának mennyiségéről és használatáról.

select memory_total, memory_free, cached from memory_info;

válassza a memory_total, memory_free, cache-t a memory_info-ból;  interaktív interaktív munkamenetben

A csoportok táblázat

A rendszer konfigurált csoportjainak gyors megtekintéséhez használja a .all dot parancs a groups asztal.

.minden csoport

.minden csoport egy osquery interaktív ülésen

A felhasználókhoz társított csoportok részleteinek megtekintéséhez szűrje ki azokat a csoportokat, amelyek csoport azonosítója nagyobb vagy egyenlő, mint 1000.

select * from groups where gid>=1000;

válasszon * azokból a csoportokból, ahol gid> = 1000;  interaktív interaktív munkamenetben” width=”646″ height=”197″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”/></p>
<h3>Az usb_devices táblázat</h3>
<p>Ha egy univerzális soros busz eszközt nem ismerünk fel, akkor ellenőrizze ezt a táblázatot, hogy az operációs rendszer még észleli-e.</p>
<pre>select usb_address, usb_port, version, model from usb_devices;</pre>
<p><img decoding=

A deb_packages táblázat

A deb_packages táblázat tartalmazza a számítógépére telepített összes „.deb” szoftvercsomag részleteit. Van még egy rpm_packages táblázat a Fedora és más Red Hat derivatívákról. Más csomagkezelő rendszerekről nem számoltak be.

Nagyon sok csomag van ezen a tesztgépen. Az eredmények 10 rekordra korlátozódtak.

select name, version, source from deb_packages limit 10;

válasszon nevet, verziót, forrást a deb_packages 10. korlátból;  interaktív szekcióban

A system_info táblázat

Nagyon sok információ van csomagolva a system_info táblába. Csak ellenőrizni fogjuk a márkát központi feldolgozó egység (CPU), amely telepítve van a számítógépre.

select cpu_brand from system_info;

válassza ki a cpu_brand-ot a system_info-ból;  interaktív interaktív munkamenetben

A jéghegy csúcsa

Az osquery több mint 150 táblázat információját kéznél tartja. Még akkor is, ha nem tud sokat az SQL-ből, könnyen elsajátíthatja azt a keveset, amelyre szüksége van ahhoz, hogy produktívan használja ezt a kiváló alkalmazást.


Source link


35 Views 0 Ratings Rate it