GNU/Linux >> Belajar Linux >  >> Linux

Cara Memantau Server Linux Anda menggunakan osquery

Osquery adalah perangkat lunak pemantauan, kueri, dan analitik Sistem Operasi open source. Dibuat oleh Facebook, ini memperlihatkan sistem operasi sebagai database relasional berkinerja tinggi yang dapat dikueri menggunakan kueri berbasis SQL.

Osquery adalah software multi-platform, dapat diinstal di Linux, Windows, MacOS, dan FreeBSD. Osquery memungkinkan kami menjelajahi profil sistem operasi, performa, keamanan, dan metrik lainnya dengan menggunakan kueri berbasis SQL.

Dalam tutorial ini, saya akan menunjukkan cara menginstal osquery pada distribusi Linux Ubuntu 18.04 LTS dan CentOS 7. Kami akan menginstal osquery, mempelajari cara menggunakan mode interaktif 'osqueryi', dan cara memantau sistem langsung menggunakan osquery.

Prasyarat

  • Linux OS (Ubuntu 18.04 atau CentOS 7)
  • Hak istimewa root

Apa yang akan kami lakukan

  • Instal osquery di Sistem Operasi Linux
  • Penggunaan Dasar Mode Interaktif osqueryi
  • Sistem Pemantauan menggunakan osquery

Langkah 1 - Instal osquery di Sistem Operasi Linux

osquery menyediakan repositorinya sendiri untuk setiap platform. Pada langkah ini, kita akan menginstal paket osquery dari repositori resmi osquery.

Di Ubuntu

Tambahkan kunci osquery.

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

Instal paket osquery di Ubuntu.

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

Di CentOS

Tambahkan kunci osquery.

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

Instal paket osquery di 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

Tunggu hingga semua paket terinstal.

Langkah 2 - Penggunaan Dasar Mode Interaktif osqueryi

osquery menyediakan dua antarmuka utama bagi pengguna, osqueryi, dan osqueryd.

osqueryi adalah konsol kueri interaktif osquery. Ini seperti shell perintah 'mysql' di MySQL dan shell 'psql' di database PostgreSQL.

Pada langkah ini, kita akan mempelajari penggunaan dasar mode interaktif 'osqueryi'.

Ketik perintah 'osqueryi' di terminal server, dan Anda akan mendapatkan mode konsol interaktif osquery.

osqueryi

Selanjutnya, kita akan mempelajari tentang perintah dasar dari mode konsol osqueryi.

Tampilkan semua perintah dasar yang tersedia pada mode interaktif osqueryi.

.help

Tampilkan konfigurasi dan pengaturan osquery saat ini.

.show

Osquery menyediakan beberapa mode tampilan untuk menampilkan hasil kueri. Mode default adalah mode 'cantik'.

Sekarang kita akan mengubah mode tampilan hasil kueri, untuk panduan ini, kita akan menggunakan mode 'garis'.

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

Osquery memaparkan sistem operasi sebagai sistem basis data relasional. Semua info tentang sistem disimpan dalam tabel osquery dan kita dapat menjelajahi seluruh info sistem dengan menanyakan semua tabel yang tersedia.

Untuk mendapatkan daftar semua tabel yang tersedia di osquery, jalankan perintah di bawah ini.

.tables

Setelah kita mengetahui semua tabel yang tersedia di sistem osquery, kita akan melihat kolomnya.

Gunakan perintah berikut untuk mendapatkan skema (kolom, tipe) tabel.

.schema users
.schema processes

Dan Anda akan mendapatkan semua kolom skema tabel.

Langkah 3 - Pemantauan Linux Dasar menggunakan kueri

Pada langkah ini, kita akan memantau sistem Linux langsung menggunakan osquery. Kami akan memantau info profil sistem, pengguna, antarmuka jaringan, dll melalui mode interaktif osqueryi.

Dapatkan Info Sistem

Tampilkan detail tentang perangkat keras sistem.

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

Dapatkan Versi OS

Tampilkan info sistem operasi saat ini, termasuk versi os, platform, patch os, dan nama kode.

SELECT * FROM os_version;

Melihat Versi dan Modul Kernel

Untuk memeriksa info kernel sistem, osquery menyediakan tabel 'kernel_info' dan 'kernel_modules'.

Tampilkan kernel yang digunakan oleh sistem.

SELECT * FROM kernel_info;

Tampilkan semua modul kernel yang dimuat pada sistem.

SELECT * FROM kernel_modules LIMIT 5;

Memeriksa Repositori dan Paket

osquery menyediakan tabel untuk memeriksa repositori dan paket yang diinstal pada Linux Ubuntu dan CentOS.

- Di Ubuntu

Di Ubuntu, kita dapat memeriksa repositori yang tersedia melalui 'apt_sources' dan memeriksa paket yang diinstal melalui 'deb_packages'.

Periksa semua repositori Ubuntu yang tersedia.

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

Periksa semua paket yang diinstal menggunakan tabel deb_packages.

SELECT * FROM deb_packages;

Hanya tampilkan nama paket dan versi.

SELECT name, version FROM deb_packages ORDER BY name;

Untuk paket tertentu, tambahkan filter nama.

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

- Di CentOS

Di CentOS, kita dapat memeriksa repositori yang tersedia melalui 'yum_sources' dan memeriksa paket yang diinstal melalui 'rpm_packages'.

Periksa semua repositori CentOS yang tersedia.

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

Periksa repositori yang diaktifkan dengan menambahkan filter 'diaktifkan'.

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

Periksa semua paket yang diinstal menggunakan tabel rpm_packages.

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

Untuk nama paket tertentu, tambahkan filter nama.

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

Mount Disk Info

Kita dapat menggunakan tabel mount untuk memeriksa semua detail tentang drive sistem, termasuk inode gratis, flag, tipe, dll.

Periksa semua disk yang dipasang oleh sistem.

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

Untuk jenis perangkat tertentu.

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

Info Memori

Memeriksa memori sistem dalam byte.

SELECT * FROM memory_info;

Info Antarmuka Jaringan

Memeriksa alamat jaringan menggunakan 'interface_addresses'.

SELECT * FROM interface_addresses;

Memeriksa detail antarmuka jaringan menggunakan 'interface_details'.

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

Waktu Aktif Server

Memeriksa waktu aktif server.

SELECT * FROM uptime;

Memeriksa Pengguna

osqery menyediakan tabel detail untuk memeriksa pengguna sistem. Kita dapat menggunakan tabel 'pengguna' untuk memeriksa semua pengguna di sistem, menggunakan tabel 'terakhir' untuk memeriksa login terakhir pengguna, dan menggunakan 'logged_in_users' untuk mendapatkan pengguna yang login dengan shell aktif.

Untuk memeriksa semua pengguna yang tersedia di server, gunakan tabel 'pengguna'.

SELECT * FROM users;

Untuk pengguna biasa, kita dapat menentukan uid menjadi '>=1000'.

SELECT * FROM users WHERE uid>=1000;

Untuk memeriksa pengguna login terakhir, gunakan tabel 'terakhir'.

SELECT * FROM last;

Untuk pengguna biasa, isi 'type' sampai '7'.

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

Memeriksa pengguna yang masuk dengan shell aktif, gunakan tabel 'logged_in_users'.

SELECT * FROM logged_in_users;

Info Firewall Tabel IP

Dengan tabel 'tabel', kita dapat memeriksa semua aturan firewall yang tersedia, termasuk rantai, kebijakan, IP src/dst, dan port, dll.

Tampilkan semua aturan iptables.

SELECT * FROM iptables;

Tentukan aturan menggunakan kueri khusus di bawah ini.

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

Info Proses

Kita dapat memeriksa semua proses aplikasi dengan menggunakan tabel 'proses'. Ini memberikan info terperinci tentang proses termasuk pid, nama, jalur, perintah, dll.

Kueri proses dasar untuk memeriksa semua aplikasi yang berjalan.

SELECT * FROM processes;

Tentukan kolom untuk pid dll, jalur, dan perintah.

SELECT pid, name, path, cmdline FROM processes;

Memeriksa Pekerjaan Cron

Periksa tugas cron yang tersedia dan waktu menjalankan skrip menggunakan tabel 'crontab'.

SELECT * FROM crontab;

File Biner SUID

SUID (Atur ID Pengguna pemilik pada saat eksekusi) adalah jenis izin file khusus yang diberikan ke file dan sebagian besar file biner yang dapat dieksekusi.

Periksa semua file biner yang tersedia.

SELECT * FROM suid_bin;

Tentukan nama pengguna dan nama grup.

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

Dan semua hal di atas adalah pemantauan sistem Linux dasar menggunakan osquery.


Linux
  1. Bagaimana cara memonitor server Linux Anda?

  2. Cara Mengukur Kinerja di Server VPS Linux Anda

  3. Cara Menggunakan OpenSSH untuk Menghubungkan ke Server Linux Anda

  1. Pantau server Linux Anda dengan Checkmk

  2. Cara Menyinkronkan Waktu di Server Linux menggunakan Chrony

  3. Cara Memantau Keamanan Server Linux dengan Osquery

  1. Cara Membuat CS:GO Server Di VPS Linux

  2. Cara Memantau Server Linux menggunakan CloudStats

  3. Cara Memantau Server CentOS 7 Anda menggunakan Cacti