Alat Pemantauan Sistem
Melihat Proses Sistem
Menggunakan Perintah ps
Perintah ps memungkinkan Anda untuk menampilkan informasi tentang proses yang sedang berjalan. Ini menghasilkan daftar statis, yaitu snapshot dari apa yang berjalan ketika Anda menjalankan perintah. Jika Anda menginginkan daftar proses berjalan yang terus diperbarui, gunakan perintah top atau aplikasi Pemantau Sistem.
Untuk mencantumkan semua proses yang saat ini berjalan pada sistem termasuk proses yang dimiliki oleh pengguna lain, ketik hal berikut ini di prompt shell:
ps ax
Untuk setiap proses yang tercantum, perintah ps ax menampilkan ID proses (PID
), terminal yang terkait dengannya (TTY
), status saat ini (STAT
), waktu CPU yang terakumulasi (TIME
), dan nama berkas yang dapat dieksekusi (COMMAND
). Misalnya:
~]$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:02 /usr/lib/systemd/systemd --system --deserialize 20
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [ksoftirqd/0]
5 ? S 0:00 [kworker/u:0]
6 ? S 0:00 [migration/0]
[output truncated]
Untuk menampilkan pemilik di samping setiap proses, gunakan perintah berikut:
ps aux
Terlepas dari informasi yang diberikan oleh perintah ps ax, ps aux menampilkan nama pengguna yang efektif dari pemilik proses (USER
), persentase penggunaan CPU (%CPU
) dan memori (%MEM
), ukuran memori virtual dalam kilobyte (VSZ
), ukuran memori fisik yang tidak di-swap dalam kilobyte (RSS
), dan waktu atau tanggal proses dimulai. Misalnya:
~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 53128 2988 ? Ss 13:28 0:02 /usr/lib/systemd/systemd --system --deserialize 20
root 2 0.0 0.0 0 0 ? S 13:28 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 13:28 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 13:28 0:00 [kworker/u:0]
root 6 0.0 0.0 0 0 ? S 13:28 0:00 [migration/0]
[output truncated]
Anda juga dapat menggunakan perintah ps dalam kombinasi dengan grep untuk melihat apakah proses tertentu sedang berjalan. Misalnya, untuk menentukan apakah Emacs sedang berjalan, ketik:
~]$ ps ax | grep emacs
2625 ? Sl 0:00 emacs
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual ps(1).
Menggunakan Perintah top
Perintah top menampilkan daftar real-time proses yang berjalan pada sistem. Ini juga menampilkan informasi tambahan tentang uptime sistem, cpu saat ini dan penggunaan memori, atau cacah total proses yang berjalan, dan memungkinkan Anda untuk melakukan tindakan seperti menyortir daftar atau membunuh proses.
Untuk menjalankan perintah top, ketik yang berikut ini pada prompt shell:
top
Untuk setiap proses yang tercantum, perintah top menampilkan ID proses (PID
), nama pengguna efektif pemilik proses (USER
), prioritas (PR
), nilai bagus (NI
), banyaknya memori virtual yang digunakan proses (VIRT
), banyaknya memori fisik yang tidak di-swap yang digunakan proses (RES
), banyaknya memori bersama yang digunakan proses (SHR
), persentase penggunaan CPU (%CPU
) dan memori (%MEM
), waktu CPU yang terakumulasi (TIME+
), dan nama berkas yang dapat dieksekusi (COMMAND
). Misalnya:
~]$ top top - 19:22:08 up 5:53, 3 users, load average: 1.08, 1.03, 0.82 Tasks: 117 total, 2 running, 115 sleeping, 0 stopped, 0 zombie Cpu(s): 9.3%us, 1.3%sy, 0.0%ni, 85.1%id, 0.0%wa, 1.7%hi, 0.0%si, 2.6%st Mem: 761956k total, 617256k used, 144700k free, 24356k buffers Swap: 1540092k total, 55780k used, 1484312k free, 256408k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 510 john 20 0 1435m 99m 18m S 9.0 13.3 3:30.52 gnome-shell 32686 root 20 0 156m 27m 3628 R 2.0 3.7 0:48.69 Xorg 2625 john 20 0 488m 27m 14m S 0.3 3.7 0:00.70 emacs 1 root 20 0 53128 2640 1152 S 0.0 0.3 0:02.83 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.18 ksoftirqd/0 5 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u:0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.30 watchdog/0 8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset 9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 12 root 20 0 0 0 0 S 0.0 0.0 0:00.11 sync_supers 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 bdi-default 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
Perintah top interaktif berisi perintah interaktif yang berguna yang dapat Anda gunakan dengan top. Untuk informasi lebih lanjut, lihat halaman manual top(1).
Perintah | Deskripsi |
---|---|
Enter, Space |
Seketika segarkan layar. |
h, ? |
Menampilkan layar bantuan. |
k |
Membunuh sebuah proses. Anda diminta untuk ID proses dan sinyal untuk dikirim ke sana. |
n |
Mengubah cacah proses yang ditampilkan. Anda diminta untuk memasukkan angka tersebut. |
u |
Mengurutkan daftar berdasarkan pengguna. |
M |
Mengurutkan daftar berdasarkan penggunaan memori. |
P |
Mengurutkan daftar berdasarkan penggunaan CPU. |
q |
Menghentikan utilitas dan kembali ke prompt shell. |
Menggunakan Alat Pemantau Sistem
Tab Proses
dari alat Pemantau Sistem memungkinkan Anda untuk melihat, mencari, mengubah prioritas, dan membunuh proses dari antarmuka pengguna grafis.
Untuk memulai alat Pemantau Sistemr, pilih gnome-system-monitor pada shell prompt. Kemudian klik tab Proses
untuk melihat daftar proses yang sedang berjalan.
For each listed process, the System Monitor tool displays its name (Process Name
), current status (Status
), percentage of the memory usage (% CPU
), nice value (Nice
), process ID (ID
), memory usage (Memory
), the channel the process is waiting in (Waiting Channel
), and additional details about the session (Session
). To sort the information by a specific column in ascending order, click the name of that column. Click the name of the column again to toggle the sort between ascending and descending order.
Secara baku, alat Pemantau Sistem menampilkan daftar proses yang dimiliki oleh pengguna saat ini. Memilih berbagai opsi dari menu Tampilan memungkinkan Anda untuk:
-
hanya melihat proses aktif,
-
melihat semua proses,
-
melihat proses Anda,
-
melihat dependensi proses,
-
melihat peta memori dari proses yang dipilih,
-
melihat berkas yang dibuka oleh proses yang dipilih, dan
-
menyegarkan daftar proses.
Selain itu, berbagai opsi di menu Sunting memungkinkan Anda untuk:
-
menghentikan suatu proses,
-
terus menjalankan proses yang dihentikan,
-
mengakhiri sebuah proses,
-
membunuh sebuah proses,
-
mengubah prioritas proses yang dipilih, dan
-
sunting preferensi Pemantau Sistemr, seperti interval penyegaran untuk daftar proses, atau informasi apa yang akan ditampilkan.
Anda juga dapat mengakhiri proses dengan memilihnya dari daftar dan mengklik tombol Akhir Proses.
Melihat Penggunaan Memori
Menggunakan Perintah free
Perintah free memungkinkan Anda untuk menampilkan banyaknya memori yang bebas dan terpakai pada sistem. Untuk melakukannya, ketik hal berikut ini pada prompt shell:
free
Perintah free memberikan informasi tentang memori fisik (Mem
) dan ruang swap (Swap
). Ini menampilkan banyaknya total memori (total
), serta banyaknya memori yang digunakan (terpakai
), bebas (bebas
), dipakai bersama (berbagi
), dalam penyangga kernel (penyangga
), dan singgahan (disinggahkan
). Misalnya:
~]$ free total used free shared buffers cached Mem: 761956 607500 154456 0 37404 156176 -/+ buffers/cache: 413920 348036 Swap: 1540092 84408 1455684
Secara baku, free menampilkan nilai dalam kilobyte. Untuk menampilkan nilai dalam megabyte, berikan opsi baris perintah -m
:
free -m
Misalnya:
~]$ free -m total used free shared buffers cached Mem: 744 593 150 0 36 152 -/+ buffers/cache: 404 339 Swap: 1503 82 1421
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual free(1).
Menggunakan Alat Pemantau Sistem
Tab Sumber Daya
dari alat Pemantau Sistemr memungkinkan Anda untuk melihat banyaknya memori yang bebas dan terpakai pada sistem.
Untuk memulai alat Pemantau Sistem, pilih gnome-system-monitor pada shell prompt. Kemudian klik tab Sumber Daya
untuk melihat penggunaan memori sistem.
Di bagian Riwayat Memori dan Swap
, alat Pemantau Sistem menampilkan representasi grafis dari riwayat penggunaan memori dan swap, serta banyaknya total memori fisik (Memori
) dan ruang swap (Swap
) dan berapa banyak yang digunakan.
Melihat Penggunaan CPU
Menggunakan Alat Pemantau Sistem
Tab Sumber Daya
dari alat Pemantau Sistem memungkinkan Anda untuk melihat penggunaan CPU saat ini pada sistem.
Untuk memulai alat Pemantau Sistemr, pilih gnome-system-monitor pada shell prompt. Kemudian klik tab Sumber Daya
untuk melihat penggunaan CPU sistem.
Di bagian Riwayat CPU
, alat Pemantau Sistem menampilkan representasi grafis dari riwayat penggunaan CPU dan menunjukkan persentase berapa banyak CPU yang saat ini digunakan.
Melihat Perangkat Blok dan Sistem Berkas
Menggunakan Perintah lsblk
Perintah lsblk memungkinkan Anda untuk menampilkan daftar perangkat blok yang tersedia. Untuk melakukannya, ketik hal berikut ini pada prompt shell:
lsblk
Untuk setiap perangkat blok yang tercantum, perintah lsblk menampilkan nama perangkat (NAME
), nomor perangkat mayor dan minor (MAJ:MIN
), jika perangkat dapat dilepas (RM
), berapa ukurannya (SIZE
), jika perangkat hanya baca (RO
), jenis apa itu (TYPE
), dan di mana perangkat dikait (MOUNTPOINT
). Misalnya:
~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 20G 0 disk |-vda1 252:1 0 500M 0 part /boot `-vda2 252:2 0 19.5G 0 part |-vg_fedora-lv_swap (dm-0) 253:0 0 1.5G 0 lvm [SWAP] `-vg_fedora-lv_root (dm-1) 253:1 0 18G 0 lvm /
Secara baku, lsblk mencantumkan perangkat blok dalam format mirip pohon. Untuk menampilkan informasi sebagai daftar biasa, tambahkan opsi baris perintah -l
:
lsblk -l
Misalnya:
~]$ lsblk -l NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 20G 0 disk vda1 252:1 0 500M 0 part /boot vda2 252:2 0 19.5G 0 part vg_fedora-lv_swap (dm-0) 253:0 0 1.5G 0 lvm [SWAP] vg_fedora-lv_root (dm-1) 253:1 0 18G 0 lvm /
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual lsblk(8).
Menggunakan Perintah blkid
Perintah blkid memungkinkan Anda untuk menampilkan informasi tentang perangkat blok yang tersedia. Untuk melakukannya, ketik yang berikut ini di prompt shell sebagai root
:
blkid
Untuk setiap perangkat blok yang terdaftar, perintah blkid menampilkan atribut yang tersedia seperti universally unique identifier (UUID
), jenis sistem berkas (TYPE
), atau label volume (LABEL
). Misalnya:
~]# blkid /dev/vda1: UUID="4ea24c68-ab10-47d4-8a6b-b8d3a002acba" TYPE="ext4" /dev/vda2: UUID="iJ9YwJ-leFf-A1zb-VVaK-H9t1-raLW-HoqlUG" TYPE="LVM2_member" /dev/mapper/vg_fedora-lv_swap: UUID="d6d755bc-3e3e-4e8f-9bb5-a5e7f4d86ffd" TYPE="swap" /dev/mapper/vg_fedora-lv_root: LABEL="_Fedora-17-x86_6" UUID="77ba9149-751a-48e0-974f-ad94911734b9" TYPE="ext4"
Secara baku, perintah lsblk mencantumkan semua perangkat blok yang tersedia. Untuk menampilkan informasi tentang perangkat tertentu saja, tentukan nama perangkat pada baris perintah:
blkid device_name
Misalnya, untuk menampilkan informasi tentang /dev/vda1
, ketik:
~]# blkid /dev/vda1 /dev/vda1: UUID="4ea24c68-ab10-47d4-8a6b-b8d3a002acba" TYPE="ext4"
Anda juga dapat menggunakan perintah di atas dengan opsi baris perintah -p
dan -o udev
untuk mendapatkan informasi yang lebih rinci. Perhatikan bahwa hak istimewa root
diperlukan untuk menjalankan perintah ini:
blkid -po udev device_name
Sebagai contoh:
~]# blkid -po udev /dev/vda1 ID_FS_UUID=4ea24c68-ab10-47d4-8a6b-b8d3a002acba ID_FS_UUID_ENC=4ea24c68-ab10-47d4-8a6b-b8d3a002acba ID_FS_VERSION=1.0 ID_FS_TYPE=ext4 ID_FS_USAGE=filesystem ID_PART_ENTRY_SCHEME=dos ID_PART_ENTRY_TYPE=0x83 ID_PART_ENTRY_FLAGS=0x80 ID_PART_ENTRY_NUMBER=1 ID_PART_ENTRY_OFFSET=2048 ID_PART_ENTRY_SIZE=1024000 ID_PART_ENTRY_DISK=252:0
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual blkid(8).
Menggunakan Perintah partx
Perintah partx memungkinkan Anda untuk menampilkan daftar partisi disk. Untuk mencantumkan tabel partisi disk tertentu, sebagai root
, jalankan perintah ini dengan opsi -s
diikuti dengan nama perangkat:
partx -s device_name
Misalnya, untuk melihat daftar partisi pada /dev/vda
, ketik:
~]# partx -s /dev/vda NR START END SECTORS SIZE NAME UUID 1 2048 1026047 1024000 500M 2 1026048 41943039 40916992 19.5G
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual partx(8).
Menggunakan Perintah findmnt
Perintah findmnt memungkinkan Anda untuk menampilkan daftar sistem berkas yang saat ini dikait. Untuk melakukannya, ketik hal berikut ini pada prompt shell:
findmnt
Untuk setiap sistem berkas yang tercantum, perintah findmnt menampilkan titik kait target (TARGET
), perangkat sumber (SUMBER
), jenis sistem berkas (FSTYPE
), dan opsi kait yang relevan (OPTIONS
). Misalnya:
~]$ findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/mapper/vg_fedora-lv_root ext4 rw,relatime,seclabel,data=o |-/proc proc proc rw,nosuid,nodev,noexec,rela | `-/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=23,pgrp=1,ti |-/sys sysfs sysfs rw,nosuid,nodev,noexec,rela | |-/sys/kernel/security securityfs security rw,nosuid,nodev,noexec,rela | |-/sys/fs/selinux selinuxfs selinuxf rw,relatime | |-/sys/fs/cgroup tmpfs tmpfs rw,nosuid,nodev,noexec,secl | | |-/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/net_cls cgroup cgroup rw,nosuid,nodev,noexec,rela | | |-/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,rela | | `-/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,rela | |-/sys/kernel/debug debugfs debugfs rw,relatime | `-/sys/kernel/config configfs configfs rw,relatime [output truncated]
Secara baku, findmnt mencantumkan sistem berkas dalam format mirip pohon. Untuk menampilkan informasi sebagai daftar biasa, tambahkan opsi baris perintah -l
:
findmnt -l
Misalnya:
~]$ findmnt -l TARGET SOURCE FSTYPE OPTIONS /proc proc proc rw,nosuid,nodev,noexec,relatime /sys sysfs sysfs rw,nosuid,nodev,noexec,relatime,s /dev devtmpfs devtmpfs rw,nosuid,seclabel,size=370080k,n /dev/pts devpts devpts rw,nosuid,noexec,relatime,seclabe /dev/shm tmpfs tmpfs rw,nosuid,nodev,seclabel /run tmpfs tmpfs rw,nosuid,nodev,seclabel,mode=755 / /dev/mapper/vg_fedora-lv_root ext4 rw,relatime,seclabel,data=ordered /sys/kernel/security securityfs security rw,nosuid,nodev,noexec,relatime /sys/fs/selinux selinuxfs selinuxf rw,relatime /sys/fs/cgroup tmpfs tmpfs rw,nosuid,nodev,noexec,seclabel,m /sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,r [output truncated]
Anda juga dapat memilih untuk membuat daftar hanya sistem berkas dari jenis tertentu. Untuk melakukannya, tambahkan opsi baris perintah -t
diikuti dengan jenis sistem berkas:
findmnt -t
type
Misalnya, untuk semua daftar sistem berkas ext4
, ketik:
~]$ findmnt -t ext4 TARGET SOURCE FSTYPE OPTIONS / /dev/mapper/vg_fedora-lv_root ext4 rw,relatime,seclabel,data=ordered /boot /dev/vda1 ext4 rw,relatime,seclabel,data=ordered
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual findmnt(8).
Menggunakan Perintah df
Perintah df memungkinkan Anda untuk menampilkan laporan terperinci tentang penggunaan ruang disk sistem. Untuk melakukannya, ketik hal berikut ini pada prompt shell:
df
Untuk setiap sistem berkas yang terdaftar, perintah df menampilkan namanya (Filesystem
), ukuran (1K-blocks
atau Size
), berapa banyak ruang yang digunakan (Used
), berapa banyak ruang yang masih tersedia (Available
), persentase penggunaan ruang (Use%
), dan di mana sistem berkas dikait (Mounted on
). Misalnya:
~]$ df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 18877356 4605476 14082844 25% / devtmpfs 370080 0 370080 0% /dev tmpfs 380976 256 380720 1% /dev/shm tmpfs 380976 3048 377928 1% /run /dev/mapper/vg_fedora-lv_root 18877356 4605476 14082844 25% / tmpfs 380976 0 380976 0% /sys/fs/cgroup tmpfs 380976 0 380976 0% /media /dev/vda1 508745 85018 398127 18% /boot
Secara baku, perintah df menunjukkan ukuran partisi dalam blok 1 kilobyte dan banyaknya ruang disk terpakai dan tersedia dalam kilobyte. Untuk melihat informasi dalam megabyte dan gigabyte, berikan opsi baris perintah -h
, yang menyebabkan df menampilkan nilai dalam format yang dapat dibaca manusia:
df -h
Misalnya:
~]$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 19G 4.4G 14G 25% / devtmpfs 362M 0 362M 0% /dev tmpfs 373M 256K 372M 1% /dev/shm tmpfs 373M 3.0M 370M 1% /run /dev/mapper/vg_fedora-lv_root 19G 4.4G 14G 25% / tmpfs 373M 0 373M 0% /sys/fs/cgroup tmpfs 373M 0 373M 0% /media /dev/vda1 497M 84M 389M 18% /boot
Perhatikan bahwa entri /dev/shm
mewakili sistem berkas memori virtual sistem, /sys/fs/cgroup
adalah sistem berkas cgroup, dan /run
berisi informasi tentang sistem yang berjalan.
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual df(1).
Menggunakan Perintah du
Perintah du memungkinkan Anda untuk menampilkan banyaknya ruang yang digunakan oleh berkas dalam direktori. Untuk menampilkan penggunaan disk untuk masing-masing subdirektori di direktori kerja saat ini, jalankan perintah tanpa opsi baris perintah tambahan:
du
Sebagai contoh:
~]$ du
8 ./.gconf/apps/gnome-terminal/profiles/Default
12 ./.gconf/apps/gnome-terminal/profiles
16 ./.gconf/apps/gnome-terminal
[output truncated]
460 ./.gimp-2.6
68828 .
Secara baku, perintah du menampilkan penggunaan disk dalam kilobyte. Untuk melihat informasi dalam megabyte dan gigabyte, berikan opsi baris perintah -h
, yang menyebabkan utilitas menampilkan nilai dalam format yang dapat dibaca manusia:
du -h
Misalnya:
~]$ du -h
8.0K ./.gconf/apps/gnome-terminal/profiles/Default
12K ./.gconf/apps/gnome-terminal/profiles
16K ./.gconf/apps/gnome-terminal
[output truncated]
460K ./.gimp-2.6
68M .
Di akhir daftar, perintah du selalu menunjukkan total keseluruhan untuk direktori saat ini. Untuk hanya menampilkan informasi ini, berikan opsi baris perintah -s
:
du -sh
Sebagai contoh:
~]$ du -sh
68M .
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual du(1).
Menggunakan Alat Pemantau Sistem
Tab Sistem Berkas
dari alat Pemantau Sistem memungkinkan Anda untuk melihat sistem berkas dan penggunaan ruang disk di antarmuka pengguna grafis.
Untuk memulai alat Pemantau Sistemr, pilih gnome-system-monitor pada shell prompt.Kemudian klik tab Sistem Berkas
untuk melihat daftar sistem berkas.
Untuk setiap sistem berkas yang tercantum, alat Pemantau Sistem menampilkan perangkat sumber (Device
), titik kait target (Directory
), dan jenis sistem berkas (Type
), serta ukurannya (Total
) dan berapa banyak ruang yang bebas (Free
), tersedia (Available
), dan digunakan (Used
).
Melihat Informasi Perangkat Keras
Menggunakan Perintah lspci
Perintah lspci mencantumkan semua perangkat PCI yang ada dalam sistem:
lspci
Sebagai contoh:
~]$ lspci 00:00.0 Host bridge: Intel Corporation 82X38/X48 Express DRAM Controller 00:01.0 PCI bridge: Intel Corporation 82X38/X48 Express Host-Primary PCI Express Bridge 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) 00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02) 00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02) [output truncated]
Anda juga dapat menggunakan opsi baris perintah -v
untuk menampilkan keluaran yang lebih rinci, atau -vv
untuk keluaran yang sangat rinci:
lspci-v
|-vv
Misalnya, untuk menentukan produsen, model, dan ukuran memori kartu video sistem, ketik:
~]$ lspci -v
[output truncated]
01:00.0 VGA compatible controller: nVidia Corporation G84 [Quadro FX 370] (rev a1) (prog-if 00 [VGA controller])
Subsystem: nVidia Corporation Device 0491
Physical Slot: 2
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f2000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f0000000 (64-bit, non-prefetchable) [size=32M]
I/O ports at 1100 [size=128]
Expansion ROM at <unassigned> [disabled]
Capabilities: <access denied>
Kernel driver in use: nouveau
Kernel modules: nouveau, nvidiafb
[keluarang terpotong]
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual lspci(8).
Menggunakan Perintah lsusb
Perintah lsusb memungkinkan Anda untuk menampilkan informasi tentang bus USB dan perangkat yang tersambung padanya. Untuk mencantumkan semua perangkat USB yang ada di sistem, ketik hal berikut ini di prompt shell:
lsusb
Ini menampilkan daftar perangkat sederhana, misalnya:
~]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[output truncated]
Bus 001 Device 002: ID 0bda:0151 Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader)
Bus 008 Device 002: ID 03f0:2c24 Hewlett-Packard Logitech M-UAL-96 Mouse
Bus 008 Device 003: ID 04b3:3025 IBM Corp.
Anda juga dapat menggunakan opsi baris perintah -v
untuk menampilkan keluaran yang lebih rinci:
lsusb -v
Misalnya:
~]$ lsusb -v
[output truncated]
Bus 008 Device 002: ID 03f0:2c24 Hewlett-Packard Logitech M-UAL-96 Mouse
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x03f0 Hewlett-Packard
idProduct 0x2c24 Logitech M-UAL-96 Mouse
bcdDevice 31.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
[output truncated]
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual lsusb(8).
Menggunakan Perintah lspcmcia
Perintah lspcmcia memungkinkan Anda untuk membuat daftar semua perangkat PCMCIA yang ada dalam sistem. Untuk melakukannya, ketik hal berikut ini pada prompt shell:
lspcmcia
Sebagai contoh:
~]$ lspcmcia Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:15:00.0)
Anda juga dapat menggunakan opsi baris perintah -v
untuk menampilkan informasi yang lebih rinci, atau -vv
untuk meningkatkan level rincian lebih jauh:
lspcmcia-v
|-vv
Misalnya:
~]$ lspcmcia -v Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:15:00.0) Configuration: state: on ready: unknown
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual pccardctl(8).
Menggunakan Perintah lscpu
Perintah lscpu memungkinkan Anda untuk mencantumkan informasi tentang CPU yang ada dalam sistem, termasuk cacah CPU, arsitekturnya, vendor, keluarga, model, singgahan CPU, dll. Untuk melakukannya, ketik hal berikut ini pada prompt shell:
lscpu
Sebagai contoh:
~]$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 23 Stepping: 7 CPU MHz: 1998.000 BogoMIPS: 4999.98 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 3072K NUMA node0 CPU(s): 0-3
Untuk daftar lengkap opsi baris perintah yang tersedia, lihat halaman manual lscpu(1).
Memantau Kinerja dengan Net-SNMP
29 mencakup rangkaian perangkat lunak Net-SNMP, yang mencakup agen Simple Network Management Protocol (SNMP) yang fleksibel dan dapat diperluas. Agen ini dan utilitas terkait dapat digunakan untuk menyediakan data kinerja dari sejumlah besar sistem ke berbagai alat yang mendukung polling atas protokol SNMP.
Bagian ini memberikan informasi tentang konfigurasi agen Net-SNMP untuk memberikan data kinerja dengan aman melalui jaringan, mengambil data menggunakan protokol SNMP, dan memperluas agen SNMP untuk memberikan metrik kinerja khusus.
Memasang Net-SNMP
Keluarga perangkat lunak Net-SNMP tersedia sebagai satu set paket RPM dalam distribusi perangkat lunak Fedora. Paket Net-SNMP yang tersedia merangkum masing-masing paket beserta isinya.
Paket | Menyediakan |
---|---|
net-snmp |
Daemon dan dokumentasi Agen SNMP. Paket ini diperlukan untuk mengekspor data kinerja. |
net-snmp-libs |
Pustaka |
net-snmp-utils |
Klien SNMP seperti snmpget dan snmpwalk. Paket ini diperlukan untuk mengkueri data kinerja sistem melalui SNMP. |
net-snmp-perl |
Utilitas mib2c dan modul |
net-snmp-python |
Pustaka klien SNMP untuk Python. |
Untuk memasang salah satu paket ini, gunakan perintah dnf dalam bentuk berikut:
dnf install
package…
Misalnya, untuk memasang Daemon Agen SNMP dan klien SNMP yang digunakan di bagian ini, ketik yang berikut ini di prompt shell:
~]# dnf install net-snmp net-snmp-libs net-snmp-utils
Perhatikan bahwa Anda harus memiliki hak istimewa superuser (yaitu, Anda harus masuk sebagai root
) untuk menjalankan perintah ini. Untuk informasi lebih lanjut tentang cara memasang paket baru di Fedora, lihat Memasang Paket.
Menjalankan Daemon Net-SNMP
Paket net-snmp berisi snmpd
, Daemon Agen SNMP. Bagian ini memberikan informasi tentang cara memulai, menghentikan, dan memulai ulang layanan snmpd
, dan menunjukkan cara mengaktifkan atau menonaktifkannya di unit target multi-user
. Untuk informasi lebih lanjut tentang konsep unit target dan cara mengelola layanan sistem di Fedora secara umum, lihat Layanan dan Daemon.
Memulai Layanan
Untuk menjalankan layanan snmpd
di sesi saat ini, ketik yang berikut ini di prompt shell sebagai root
:
systemctlstart
snmpd.service
Untuk mengonfigurasi layanan agar dapat dimulai secara otomatis pada waktu boot, gunakan perintah berikut:
systemctlenable
snmpd.service
Ini akan memungkinkan layanan di unit target multi-user
.
Menghentikan Layanan
Untuk menghentikan layanan snmpd
yang sedang berjalan, ketik yang berikut ini di prompt shell sebagai root
:
systemctlstop
snmpd.service
Untuk menonaktifkan memulai layanan pada waktu boot, gunakan perintah berikut:
systemctldisable
snmpd.service
Ini akan menonaktifkan layanan di unit target multi-user
.
Memulai Ulang Layanan
Untuk memulai ulang layanan snmpd
yang sedang berjalan, ketik hal berikut ini di prompt shell:
systemctlrestart
snmpd.service
Ini akan menghentikan layanan dan memulainya lagi secara berurutan. Untuk hanya memuat ulang konfigurasi tanpa menghentikan layanan, jalankan perintah berikut sebagai gantinya:
systemctlreload
snmpd.service
Ini akan menyebabkan layanan snmpd
yang berjalan memuat ulang konfigurasi.
Mengonfigurasi Net-SNMP
Untuk mengubah konfigurasi Daemon Agen Net-SNMP, sunting berkas konfigurasi /etc/snmp/snmpd.conf
. Berkas baku snmpd.conf
yang dikirim dengan 29 banyak dikomentari dan berfungsi sebagai titik awal yang baik untuk konfigurasi agen.
Bagian ini berfokus pada dua tugas umum: mengatur informasi sistem dan mengonfigurasi autentikasi. Untuk informasi selengkapnya tentang direktif konfigurasi yang tersedia, lihat halaman manual snmpd.conf(5). Selain itu, ada utilitas dalam paket net-snmp bernama snmpconf yang dapat digunakan untuk menghasilkan konfigurasi agen yang valid secara interaktif.
Perhatikan bahwa paket net-snmp-utils harus diinstal untuk menggunakan utilitas snmpwalk yang dijelaskan di bagian ini.
Menerapkan perubahan
Agar setiap perubahan pada berkas konfigurasi berlaku, paksa layanan systemctl |
Mengatur Informasi Sistem
Net-SNMP menyediakan sebagian informasi dasar sistem melalui pohon system
. Misalnya, perintah snmpwalk berikut menunjukkan pohon system
dengan konfigurasi agen default.
~]# snmpwalk -v2c -c public localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (99554) 0:16:35.54 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
Secara baku, objek sysName
diatur ke nama host. Objek sysLocation
dan sysContact
dapat dikonfigurasi dalam berkas /etc/snmp/snmpd.conf
dengan mengubah nilai arahan syslocation
dan syscontact
, misalnya:
syslocation Data Center, Baris 3, Rak 2 syscontact Admin UNIX <admin@example.com>
Setelah membuat perubahan pada berkas konfigurasi, muat ulang konfigurasi dan uji dengan menjalankan perintah snmpwalk lagi:
~]# systemct reload snmpd.service ~]# snmpwalk -v2c -c public localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158357) 0:26:23.57 SNMPv2-MIB::sysContact.0 = STRING: UNIX Admin <admin@example.com> SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 3, Rack 2
Mengonfigurasi Autentikasi
Daemon Agen Net-SNMP mendukung ketiga versi protokol SNMP. Dua versi pertama (1 dan 2c) menyediakan otentikasi sederhana menggunakan community string. String ini adalah rahasia bersama antara agen dan utilitas klien apa pun. Namun string dilewatkan dalam teks polos melalui jaringan dan tidak dianggap aman. Versi 3 dari protokol SNMP mendukung otentikasi pengguna dan enkripsi pesan menggunakan berbagai protokol. Agen Net-SNMP juga mendukung tunneling melalui SSH, otentikasi TLS dengan sertifikat X.509, dan otentikasi Kerberos.
Untuk mengonfigurasi komunitas SNMP versi 2c, gunakan direktif rocommunity
atau rwcommunity
dalam berkas konfigurasi /etc/snmp/snmpd.conf
. Format direktif adalah sebagai berikut:
directive community source OID
… where community is the community string to use, source is an IP address or subnet, and OID is the SNMP tree to provide access to. For example, the following directive provides read-only access to the system
tree to a client using the community string "redhat" on the local machine:
rocommunity redhat 127.0.0.1 .1.3.6.1.2.1.1
Untuk menguji konfigurasi, gunakan perintah snmpwalk dengan opsi -v
dan -c
.
~]# snmpwalk -v2c -c redhat localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158357) 0:26:23.57 SNMPv2-MIB::sysContact.0 = STRING: UNIX Admin <admin@example.com> SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 3, Rack 2
To configure an SNMP version 3 user, use the net-snmp-create-v3-user command. This command adds entries to the /var/lib/net-snmp/snmpd.conf
and /etc/snmp/snmpd.conf
files which create the user and grant access to the user. Note that the net-snmp-create-v3-user command may only be run when the agent is not running. The following example creates the "sysadmin" user with the password "redhatsnmp":
~]# systemctl stop snmpd.service ~]# net-snmp-create-v3-user Enter a SNMPv3 user name to create: admin Enter authentication pass-phrase: redhatsnmp Enter encryption pass-phrase: [press return to reuse the authentication pass-phrase] menambahkan baris berikut ke /var/lib/net-snmp/snmpd.conf: createUser admin MD5 "redhatsnmp" DES menambahkan baris berikut ke /etc/snmp/snmpd.conf: rwuser admin ~]# systemctl start snmpd.service
Arahan rwuser
(atau rouser
ketika opsi baris perintah -ro
diberikan) yang net-snmp-create-v3-user tambahkan ke /etc/snmp/snmpd.conf
memiliki format yang mirip dengan arahan rwcommunity
dan rocommunity
:
directive usernoauth
|auth
|priv
OID
… di mana user adalah nama pengguna dan OID adalah pohon SNMP yang akan diakses. Secara baku, Daemon Agen Net-SNMP hanya mengizinkan permintaan yang diautentikasi (opsi auth
). Opsi noauth
memungkinkan Anda untuk mengizinkan permintaan yang tidak diautentikasi, dan opsi priv
memberlakukan penggunaan enkripsi. Opsi authpriv
menentukan bahwa permintaan harus diautentikasi dan balasan harus dienkripsi.
For example, the following line grants the user "admin" read-write access to the entire tree:
rwuser admin authpriv .1
Untuk menguji konfigurasi, buat direktori .snmp
di direktori beranda pengguna Anda dan berkas konfigurasi bernama snmp.conf
di direktori itu (~/.snmp/snmp.conf
) dengan baris berikut:
defVersion 3 defSecurityLevel authPriv defSecurityName admin defPassphrase redhatsnmp
Perintah snmpwalk sekarang akan menggunakan pengaturan otentikasi ini saat mengkueri agen:
~]$ snmpwalk -v3 localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64 [output truncated]
Mengambil Data Kinerja melalui SNMP
Agen Net-SNMP di Fedora menyediakan berbagai informasi kinerja melalui protokol SNMP. Selain itu, agen dapat ditanyai tentang daftar paket RPM yang diinstal pada sistem, daftar proses yang sedang berjalan pada sistem, atau konfigurasi jaringan sistem.
Bagian ini memberikan gambaran umum tentang OID yang terkait dengan penalaan kinerja yang tersedia melalui SNMP. Ini mengasumsikan bahwa paket net-snmp-utils sudah terpasang dan bahwa pengguna diberikan akses ke pohon SNMP seperti yang dijelaskan dalam Mengonfigurasi Autentikasi.
Konfigurasi Perangkat Keras
Host Resources MIB
yang disertakan dengan Net-SNMP menyajikan informasi tentang konfigurasi perangkat keras dan perangkat lunak host saat ini ke utilitas klien. OID yang Tersedia merangkum berbagai OID yang tersedia di bawah MIB tersebut.
OID | Deskripsi |
---|---|
|
Berisi informasi sistem umum seperti waktu menyala, cacah pengguna, dan cacah proses yang berjalan. |
|
Berisi data tentang memori dan penggunaan sistem berkas. |
|
Berisi daftar semua prosesor, perangkat jaringan, dan sistem berkas. |
|
Berisi daftar semua proses yang sedang berjalan. |
|
Berisi statistik memori dan CPU pada tabel proses dari HOST-RESOURCES-MIB::hrSWRun. |
|
Berisi daftar basis data RPM. |
Ada juga sejumlah tabel SNMP yang tersedia di HOST Resources MIB yang dapat digunakan untuk mengambil ringkasan informasi yang tersedia. Contoh berikut menampilkan HOST-RESOURCES-MIB::hrFSTable
:
~]$ snmptable -Cb localhost HOST-RESOURCES-MIB::hrFSTable
SNMP table: HOST-RESOURCES-MIB::hrFSTable
Index MountPoint RemoteMountPoint Type
Access Bootable StorageIndex LastFullBackupDate LastPartialBackupDate
1 "/" "" HOST-RESOURCES-TYPES::hrFSLinuxExt2
readWrite true 31 0-1-1,0:0:0.0 0-1-1,0:0:0.0
5 "/dev/shm" "" HOST-RESOURCES-TYPES::hrFSOther
readWrite false 35 0-1-1,0:0:0.0 0-1-1,0:0:0.0
6 "/boot" "" HOST-RESOURCES-TYPES::hrFSLinuxExt2
readWrite false 36 0-1-1,0:0:0.0 0-1-1,0:0:0.0
Untuk informasi selengkapnya tentang HOST-RESOURCES-MIB
, lihat berkas /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
.
Informasi CPU dan Memori
Sebagian besar data kinerja sistem tersedia di UCD SNMP MIB
. OID SystemStats
menyediakan sejumlah pencacah seputar penggunaan prosesor:
~]$ snmpwalk localhost UCD-SNMP-MIB::systemStats
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 0 blocks/s
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 0 blocks/s
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 29 interrupts/s
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 18 switches/s
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 99
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 2278
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 1395
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 6826
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 3383736
UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 7629
UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 434
UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 266770
UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 427302
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 743442
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 718557
UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 128
UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 0
UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 0
Secara khusus, OID ssCpuRawUser
, ssCpuRawSystem
, ssCpuRawWait
, dan ssCpuRawIdle
menyediakan pencacah yang membantu saat menentukan apakah sistem menghabiskan sebagian besar waktu prosesornya di ruang kernel, ruang pengguna, atau I/O. ssRawSwapIn
dan ssRawSwapOut
dapat membantu saat menentukan apakah sistem mengalami kehabisan memori.
Informasi memori lebih lanjut tersedia di bawah UCD-SNMP-MIB::memory
OID, yang menyediakan data serupa dengan perintah free:
~]$ snmpwalk localhost UCD-SNMP-MIB::memory
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1023992 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 1023992 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 1021588 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 634260 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 1658252 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 30760 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 216200 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
Rata-rata beban juga tersedia di UCD SNMP MIB
. Tabel SNMP UCD-SNMP-MIB::laTable
memiliki daftar rata-rata beban 1, 5, dan 15 menit:
~]$ snmptable localhost UCD-SNMP-MIB::laTable
SNMP table: UCD-SNMP-MIB::laTable
laIndex laNames laLoad laConfig laLoadInt laLoadFloat laErrorFlag laErrMessage
1 Load-1 0.00 12.00 0 0.000000 noError
2 Load-5 0.00 12.00 0 0.000000 noError
3 Load-15 0.00 12.00 0 0.000000 noError
Informasi Disk dan Sistem Berkas
Host Resources MIB
memberikan informasi tentang ukuran dan penggunaan sistem berkas. Setiap sistem berkas (dan juga setiap pool memori) memiliki entri di tabel HOST-RESOURCES-MIB::hrStorageTable
:
~]$ snmptable -Cb localhost HOST-RESOURCES-MIB::hrStorageTable
SNMP table: HOST-RESOURCES-MIB::hrStorageTable
Index Type Descr
AllocationUnits Size Used AllocationFailures
1 HOST-RESOURCES-TYPES::hrStorageRam Physical memory
1024 Bytes 1021588 388064 ?
3 HOST-RESOURCES-TYPES::hrStorageVirtualMemory Virtual memory
1024 Bytes 2045580 388064 ?
6 HOST-RESOURCES-TYPES::hrStorageOther Memory buffers
1024 Bytes 1021588 31048 ?
7 HOST-RESOURCES-TYPES::hrStorageOther Cached memory
1024 Bytes 216604 216604 ?
10 HOST-RESOURCES-TYPES::hrStorageVirtualMemory Swap space
1024 Bytes 1023992 0 ?
31 HOST-RESOURCES-TYPES::hrStorageFixedDisk /
4096 Bytes 2277614 250391 ?
35 HOST-RESOURCES-TYPES::hrStorageFixedDisk /dev/shm
4096 Bytes 127698 0 ?
36 HOST-RESOURCES-TYPES::hrStorageFixedDisk /boot
1024 Bytes 198337 26694 ?
OID di bawah HOST-RESOURCES-MIB::hrStorageSize
dan HOST-RESOURCES-MIB::hrStorageUsed
dapat digunakan untuk menghitung kapasitas yang tersisa dari setiap sistem berkas yang dipasang.
Data I/O tersedia baik di UCD-SNMP-MIB::systemStats
(ssIORawSent.0
dan ssIORawRecieved.0
) dan di UCD-DISKIO-MIB::d iskIOTable
. Yang terakhir ini menyediakan data yang jauh lebih terperinci. Di bawah tabel ini adalah OID untuk diskIONReadX
dan diskIONWrittenX
, yang menyediakan pencacah untuk jumlah byte yang dibaca dan ditulis ke perangkat blok yang dimaksud sejak sistem boot:
~]$ snmptable -Cb localhost UCD-DISKIO-MIB::diskIOTable
SNMP table: UCD-DISKIO-MIB::diskIOTable
Index Device NRead NWritten Reads Writes LA1 LA5 LA15 NReadX NWrittenX
...
25 sda 216886272 139109376 16409 4894 ? ? ? 216886272 139109376
26 sda1 2455552 5120 613 2 ? ? ? 2455552 5120
27 sda2 1486848 0 332 0 ? ? ? 1486848 0
28 sda3 212321280 139104256 15312 4871 ? ? ? 212321280 139104256
Informasi Jaringan
Informasi tentang perangkat jaringan disediakan oleh Antarmuka MIB. IF-MIB::ifTable
menyediakan tabel SNMP dengan entri untuk setiap antarmuka pada sistem, konfigurasi antarmuka, dan berbagai pencacah paket untuk antarmuka. Contoh berikut menunjukkan beberapa kolom pertama ifTable
pada sistem dengan dua antarmuka jaringan fisik:
~]$ snmptable -Cb localhost IF-MIB::ifTable
SNMP table: IF-MIB::ifTable
Index Descr Type Mtu Speed PhysAddress AdminStatus
1 lo softwareLoopback 16436 10000000 up
2 eth0 ethernetCsmacd 1500 0 52:54:0:c7:69:58 up
3 eth1 ethernetCsmacd 1500 0 52:54:0:a7:a3:24 down
Lalu lintas jaringan tersedia di bawah OIDs IF-MIB::ifOutOctets
dan IF-MIB::ifInOctets
. Kueri SNMP berikut akan mengambil lalu lintas jaringan untuk setiap antarmuka pada sistem ini:
~]$ snmpwalk localhost IF-MIB::ifDescr IF-MIB::ifDescr.1 = STRING: lo IF-MIB::ifDescr.2 = STRING: eth0 IF-MIB::ifDescr.3 = STRING: eth1 ~]$ snmpwalk localhost IF-MIB::ifOutOctets IF-MIB::ifOutOctets.1 = Counter32: 10060699 IF-MIB::ifOutOctets.2 = Counter32: 650 IF-MIB::ifOutOctets.3 = Counter32: 0 ~]$ snmpwalk localhost IF-MIB::ifInOctets IF-MIB::ifInOctets.1 = Counter32: 10060699 IF-MIB::ifInOctets.2 = Counter32: 78650 IF-MIB::ifInOctets.3 = Counter32: 0
Memperluas Net-SNMP
Agen Net-SNMP dapat diperluas untuk menyediakan metrik aplikasi selain metrik sistem mentah. Ini memungkinkan perencanaan kapasitas serta pemecahan masalah kinerja. Misalnya, mungkin akan membantu untuk mengetahui bahwa sistem surel memiliki rata-rata beban 5 menit sebesar 15 saat sedang diuji, tetapi lebih membantu untuk mengetahui bahwa sistem surel memiliki rata-rata beban sebesar 15 saat memroses 80.000 pesan per detik. Ketika metrik aplikasi tersedia melalui antarmuka yang sama dengan metrik sistem, ini juga memungkinkan visualisasi dampak skenario beban yang berbeda pada kinerja sistem (misalnya, setiap tambahan 10.000 pesan meningkatkan rata-rata beban secara linier hingga 100.000).
Sejumlah aplikasi yang dikirimkan dengan Fedora memperluas Agen Net-SNMP untuk memberikan metrik aplikasi melalui SNMP. Ada beberapa cara untuk memperluas agen untuk aplikasi khusus juga. Bagian ini menjelaskan memperluas agen dengan skrip shell dan plug-in Perl. Ini mengasumsikan bahwa paket net-snmp-utils dan net-snmp-perl sudah terpasang, dan bahwa pengguna diberikan akses ke pohon SNMP seperti yang dijelaskan dalam Mengonfigurasi Autentikasi.
Memperluas Net-SNMP dengan Skrip Shell
Agen Net-SNMP menyediakan ekstensi MIB (NET-SNMP-EXTEND-MIB
) yang dapat digunakan untuk mengkueri sebarang skrip shell. Untuk menentukan skrip shell yang akan dijalankan, gunakan direktif extend
di berkas /etc/snmp/snmpd.conf
. Setelah didefinisikan, Agen akan memberikan kode keluar dan keluaran apa pun dari perintah atas SNMP. Contoh di bawah ini menunjukkan mekanisme ini dengan skrip yang menentukan cacah proses httpd
dalam tabel proses.
Menggunakan arahan proc
Agen Net-SNMP juga menyediakan mekanisme bawaan untuk memeriksa tabel proses melalui arahan |
Kode keluar dari skrip shell berikut adalah cacah proses httpd yang berjalan pada sistem pada titik waktu tertentu:
#!/bin/sh NUMPIDS=`pgrep httpd | wc -l` exit $NUMPIDS
Untuk membuat skrip ini tersedia melalui SNMP, salin skrip ke lokasi di path sistem, atur bit executable, dan tambahkan direktif extend
ke berkas /etc/snmp/snmpd.conf
. Format direktif extend
adalah sebagai berikut:
extend
name prog args
… di mana name adalah string identifikasi untuk ekstensi, prog adalah program yang akan dijalankan, dan args adalah argumen untuk memberikan program. Misalnya, jika skrip shell di atas disalin ke /usr/local/bin/check_apache.sh
, direktif berikut akan menambahkan skrip ke pohon SNMP:
extend httpd_pids /bin/sh /usr/local/bin/check_apache.sh
Skrip kemudian dapat dikueri di NET-SNMP-EXTEND-MIB::nsExtendObjects
:
~]$ snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendObjects NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 1 NET-SNMP-EXTEND-MIB::nsExtendCommand."httpd_pids" = STRING: /bin/sh NET-SNMP-EXTEND-MIB::nsExtendArgs."httpd_pids" = STRING: /usr/local/bin/check_apache.sh NET-SNMP-EXTEND-MIB::nsExtendInput."httpd_pids" = STRING: NET-SNMP-EXTEND-MIB::nsExtendCacheTime."httpd_pids" = INTEGER: 5 NET-SNMP-EXTEND-MIB::nsExtendExecType."httpd_pids" = INTEGER: exec(1) NET-SNMP-EXTEND-MIB::nsExtendRunType."httpd_pids" = INTEGER: run-on-read(1) NET-SNMP-EXTEND-MIB::nsExtendStorage."httpd_pids" = INTEGER: permanent(4) NET-SNMP-EXTEND-MIB::nsExtendStatus."httpd_pids" = INTEGER: active(1) NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."httpd_pids" = STRING: NET-SNMP-EXTEND-MIB::nsExtendOutputFull."httpd_pids" = STRING: NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."httpd_pids" = INTEGER: 1 NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids" = INTEGER: 8 NET-SNMP-EXTEND-MIB::nsExtendOutLine."httpd_pids".1 = STRING:
Note that the exit code ("8" in this example) is provided as an INTEGER type and any output is provided as a STRING type. To expose multiple metrics as integers, supply different arguments to the script using the extend
directive. For example, the following shell script can be used to determine the number of processes matching an arbitrary string, and will also output a text string giving the number of processes:
#!/bin/sh PATTERN=$1 NUMPIDS=`pgrep $PATTERN | wc -l` echo "There are $NUMPIDS $PATTERN processes." exit $NUMPIDS
Arahan /etc/snmp/snmpd.conf
berikut akan memberikan cacah PID httpd
serta cacah PID snmpd
berikut ketika skrip di atas disalin ke /usr/local/bin/check_proc.sh
:
extend httpd_pids /bin/sh /usr/local/bin/check_proc.sh httpd extend snmpd_pids /bin/sh /usr/local/bin/check_proc.sh snmpd
Contoh berikut menunjukkan keluaran snmpwalk atas OID nsExtendObjects
:
~]$ snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendObjects NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 2 NET-SNMP-EXTEND-MIB::nsExtendCommand."httpd_pids" = STRING: /bin/sh NET-SNMP-EXTEND-MIB::nsExtendCommand."snmpd_pids" = STRING: /bin/sh NET-SNMP-EXTEND-MIB::nsExtendArgs."httpd_pids" = STRING: /usr/local/bin/check_proc.sh httpd NET-SNMP-EXTEND-MIB::nsExtendArgs."snmpd_pids" = STRING: /usr/local/bin/check_proc.sh snmpd NET-SNMP-EXTEND-MIB::nsExtendInput."httpd_pids" = STRING: NET-SNMP-EXTEND-MIB::nsExtendInput."snmpd_pids" = STRING: ... NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids" = INTEGER: 8 NET-SNMP-EXTEND-MIB::nsExtendResult."snmpd_pids" = INTEGER: 1 NET-SNMP-EXTEND-MIB::nsExtendOutLine."httpd_pids".1 = STRING: There are 8 httpd processes. NET-SNMP-EXTEND-MIB::nsExtendOutLine."snmpd_pids".1 = STRING: There are 1 snmpd processes.
Kode keluar integer terbatas
Kode keluar integer terbatas pada kisaran 0-255. Untuk nilai yang mungkin melebihi 256, gunakan keluaran standar skrip (yang akan diketik sebagai string) atau metode yang berbeda untuk memperluas agen. |
Contoh terakhir ini menunjukkan kueri untuk memori bebas sistem dan cacah proses httpd
. Kueri ini dapat digunakan selama uji kinerja untuk menentukan dampak cacah proses pada tekanan memori:
~]$ snmpget localhost \ `NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids"` \ UCD-SNMP-MIB::memAvailReal.0 NET-SNMP-EXTEND-MIB::nsExtendResult."httpd_pids" = INTEGER: 8 UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 799664 kB
Memperluas Net-SNMP dengan Perl
Mengeksekusi skrip shell menggunakan direktif extend
adalah metode yang cukup terbatas untuk mengekspos metrik aplikasi ubahan melalui SNMP. Agen Net-SNMP juga menyediakan antarmuka Perl tertanam untuk mengekspos objek ubahan. Paket net-snmp-perl menyediakan modul Perl NetSNMP::agent
yang digunakan untuk menulis plug-in Perl tertanam di Fedora.
Modul Perl NetSNMP::agent
menyediakan objek agen
yang digunakan untuk menangani permintaan untuk bagian dari pohon OID agen. Konstruktor objek agent
memiliki opsi untuk menjalankan agen sebagai sub-agen snmpd
atau agen mandiri. Tidak ada argumen yang diperlukan untuk membuat agen tertanam:
use NetSNMP::agent (:all
);
my $agent = new NetSNMP::agent();
Objek agent
memiliki metode register
yang digunakan untuk mendaftarkan fungsi callback dengan OID tertentu. Fungsi register
mengambil nama, OID, dan pointer ke fungsi callback. Contoh berikut akan mendaftarkan fungsi callback bernama hello_handler
dengan Agen SNMP yang akan menangani permintaan di bawah OID .1.3.6.1.1.4.1.8072.9999.9999
:
$agent->register("hello_world", ".1.3.6.1.4.1.8072.9999.9999", \&hello_handler);
Mendapatkan akar OID
OID |
The handler function will be called with four parameters, HANDLER
, REGISTRATION_INFO
, REQUEST_INFO
, and REQUESTS
. The REQUESTS
parameter contains a list of requests in the current call and should be iterated over and populated with data. The request
objects in the list have get and set methods which allow for manipulating the OID
and value
of the request. For example, the following call will set the value of a request object to the string "hello world":
$request->setValue(ASN_OCTET_STR, "hello world");
Fungsi handler harus merespon dua jenis permintaan SNMP: permintaan GET dan permintaan GETNEXT. Jenis permintaan ditentukan dengan memanggil metode getMode
pada objek request_info
yang diteruskan sebagai parameter ketiga ke fungsi handler. Jika permintaan adalah permintaan GET, pemanggil akan mengharapkan penangan untuk mengatur value
dari objek request
, tergantung pada OID permintaan. Jika permintaan adalah permintaan GETNEXT, pemanggil juga akan mengharapkan penangan untuk mengatur OID permintaan ke OID berikutnya yang tersedia di pohon. Ini diilustrasikan dalam contoh kode berikut:
my $request; my $string_value = "hello world"; my $integer_value = "8675309"; for($request = $requests; $request; $request = $request->next()) { my $oid = $request->getOID(); if ($request_info->getMode() == MODE_GET) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setValue(ASN_OCTET_STR, $string_value); } elsif ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.1")) { $request->setValue(ASN_INTEGER, $integer_value); } } elsif ($request_info->getMode() == MODE_GETNEXT) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.1"); $request->setValue(ASN_INTEGER, $integer_value); } elsif ($oid < new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.0"); $request->setValue(ASN_OCTET_STR, $string_value); } } }
When getMode
returns MODE_GET
, the handler analyzes the value of the getOID
call on the request
object. The value
of the request
is set to either string_value
if the OID ends in ".1.0", or set to integer_value
if the OID ends in ".1.1". If the getMode
returns MODE_GETNEXT
, the handler determines whether the OID of the request is ".1.0", and then sets the OID and value for ".1.1". If the request is higher on the tree than ".1.0", the OID and value for ".1.0" is set. This in effect returns the "next" value in the tree so that a program like snmpwalk can traverse the tree without prior knowledge of the structure.
Jenis variabel diatur menggunakan konstanta dari NetSNMP::ASN
. Lihat perldoc untuk NetSNMP::ASN
untuk daftar lengkap konstanta yang tersedia.
Seluruh kode untuk contoh Plug-in Perl ini adalah sebagai berikut:
#!/usr/bin/perl use NetSNMP::agent (`:all`); use NetSNMP::ASN qw(ASN_OCTET_STR ASN_INTEGER); sub hello_handler { my ($handler, $registration_info, $request_info, $requests) = @_; my $request; my $string_value = "hello world"; my $integer_value = "8675309"; for($request = $requests; $request; $request = $request->next()) { my $oid = $request->getOID(); if ($request_info->getMode() == MODE_GET) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setValue(ASN_OCTET_STR, $string_value); } elsif ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.1")) { $request->setValue(ASN_INTEGER, $integer_value); } } elsif ($request_info->getMode() == MODE_GETNEXT) { if ($oid == new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.1"); $request->setValue(ASN_INTEGER, $integer_value); } elsif ($oid < new NetSNMP::OID(".1.3.6.1.4.1.8072.9999.9999.1.0")) { $request->setOID(".1.3.6.1.4.1.8072.9999.9999.1.0"); $request->setValue(ASN_OCTET_STR, $string_value); } } } } my $agent = new NetSNMP::agent(); $agent->register("hello_world", ".1.3.6.1.4.1.8072.9999.9999", \&hello_handler);
Untuk menguji plug-in, salin program di atas ke /usr/share/snmp/hello_world.pl
dan tambahkan baris berikut ke berkas konfigurasi /etc/snmp/snmpd.conf
:
perl do "/usr/share/snmp/hello_world.pl"
Daemon Agen SNMP perlu dimulai ulang untuk memuat plug-in Perl yang baru. Setelah dimulai ulang, snmpwalk akan mengembalikan data baru:
~]$ snmpwalk localhost NET-SNMP-MIB::netSnmpPlaypen
NET-SNMP-MIB::netSnmpPlaypen.1.0 = STRING: "hello world"
NET-SNMP-MIB::netSnmpPlaypen.1.1 = INTEGER: 8675309
snmpget juga harus digunakan untuk menjalankan mode handler lainnya:
~]$ snmpget localhost \ NET-SNMP-MIB::netSnmpPlaypen.1.0 \ NET-SNMP-MIB::netSnmpPlaypen.1.1 NET-SNMP-MIB::netSnmpPlaypen.1.0 = STRING: "hello world" NET-SNMP-MIB::netSnmpPlaypen.1.1 = INTEGER: 8675309
Sumber Daya Tambahan
Untuk mempelajari lebih lanjut tentang mengumpulkan informasi sistem, lihat sumber daya berikut.
Dokumentasi Terpasang
-
ps(1) — Halaman manual untuk perintah ps.
-
top(1) — Halaman manual untuk perintah top.
-
free(1) — Halaman manual untuk perintah free.
-
df(1) — Halaman manual untuk perintah df.
-
du(1) — Halaman manual untuk perintah du.
-
lspci(8) — Halaman manual untuk perintah lspci.
-
snmpd(8) — Halaman manual untuk layanan
snmpd
. -
snmpd.conf(5) — Halaman manual untuk berkas
/etc/snmp/snmpd.conf
yang berisi dokumentasi lengkap arahan konfigurasi yang tersedia.
Want to help? Learn how to contribute to Fedora Docs ›