Documentation for a newer release is available. View Latest

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).

Tabel 1. Perintah top interaktif
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 Applications  Alat Sistem  Pemantau Sistem dari menu Aktivitas, atau ketik gnome-system-monitor pada shell prompt. Kemudian klik tab Proses untuk melihat daftar proses yang sedang berjalan.

The Processes tab of the System Monitor application.
Gambar 1. System Monitor — Processes

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 Applications  Alat Sistem  Pemantau Sistem dari menu Aktivitas, atau ketik gnome-system-monitor pada shell prompt. Kemudian klik tab Sumber Daya untuk melihat penggunaan memori sistem.

Tab Sumber Daya dari aplikasi Pemantau Sistem.
Gambar 2. Pemantau Sistem — Sumber Daya

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 Applications  Alat Sistem  Pemantau Sistem dari menu Aktivitas, atau ketik gnome-system-monitor pada shell prompt. Kemudian klik tab Sumber Daya untuk melihat penggunaan CPU sistem.

Tab Sumber Daya dari aplikasi Pemantau Sistem.
Gambar 3. Pemantau Sistem — Sumber Daya

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 Applications  Alat Sistem  Pemantau Sistem dari menu Aktivitas, atau ketik gnome-system-monitor pada shell prompt.Kemudian klik tab Sistem Berkas untuk melihat daftar sistem berkas.

Tab Sistem Berkas dari aplikasi Pemantau Sistem.
Gambar 4. Pemantau Sistem — 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

Fedora Rawhide 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.

Tabel 2. Paket Net-SNMP yang tersedia
Paket Menyediakan

net-snmp

Daemon dan dokumentasi Agen SNMP. Paket ini diperlukan untuk mengekspor data kinerja.

net-snmp-libs

Pustaka netsnmp dan management information bases yang dibundel (MIB). Paket ini diperlukan untuk mengekspor data kinerja.

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 NetSNMP Perl.

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:

systemctl start snmpd.service

Untuk mengonfigurasi layanan agar dapat dimulai secara otomatis pada waktu boot, gunakan perintah berikut:

systemctl enable 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:

systemctl stop snmpd.service

Untuk menonaktifkan memulai layanan pada waktu boot, gunakan perintah berikut:

systemctl disable 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:

systemctl restart snmpd.service

Ini akan menghentikan layanan dan memulainya lagi secara berurutan. Untuk hanya memuat ulang konfigurasi tanpa menghentikan layanan, jalankan perintah berikut sebagai gantinya:

systemctl reload 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 Fedora Rawhide 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 snmpd untuk membaca ulang konfigurasi dengan menjalankan perintah berikut sebagai root:

systemctl reload snmpd.service

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.

Mengonfigurasi Komunitas SNMP Versi 2c

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
Mengonfigurasi Pengguna SNMP Versi 3

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 user noauth|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.

This section provides an overview of OIDs related to performance tuning available over SNMP. It assumes that the net-snmp-utils package is installed and that the user is granted access to the SNMP tree as described in Configuring Authentication.

Konfigurasi Perangkat Keras

The Host Resources MIB included with Net-SNMP presents information about the current hardware and software configuration of a host to a client utility. Available OIDs summarizes the different OIDs available under that MIB.

Tabel 3. OIDs yang Tersedia
OID Description

HOST-RESOURCES-MIB::hrSystem

Contains general system information such as uptime, number of users, and number of running processes.

HOST-RESOURCES-MIB::hrStorage

Contains data on memory and file system usage.

HOST-RESOURCES-MIB::hrDevices

Contains a listing of all processors, network devices, and file systems.

HOST-RESOURCES-MIB::hrSWRun

Contains a listing of all running processes.

HOST-RESOURCES-MIB::hrSWRunPerf

Contains memory and CPU statistics on the process table from HOST-RESOURCES-MIB::hrSWRun.

HOST-RESOURCES-MIB::hrSWInstalled

Contains a listing of the RPM database.

There are also a number of SNMP tables available in the Host Resources MIB which can be used to retrieve a summary of the available information. The following example displays 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

For more information about HOST-RESOURCES-MIB, see the /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt file.

Informasi CPU dan Memori

Most system performance data is available in the UCD SNMP MIB. The systemStats OID provides a number of counters around processor usage:

~]$ 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

In particular, the ssCpuRawUser, ssCpuRawSystem, ssCpuRawWait, and ssCpuRawIdle OIDs provide counters which are helpful when determining whether a system is spending most of its processor time in kernel space, user space, or I/O. ssRawSwapIn and ssRawSwapOut can be helpful when determining whether a system is suffering from memory exhaustion.

More memory information is available under the UCD-SNMP-MIB::memory OID, which provides similar data to the free command:

~]$ 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:

Load averages are also available in the UCD SNMP MIB. The SNMP table UCD-SNMP-MIB::laTable has a listing of the 1, 5, and 15 minute load averages:

~]$ 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

The Host Resources MIB provides information on file system size and usage. Each file system (and also each memory pool) has an entry in the HOST-RESOURCES-MIB::hrStorageTable table:

~]$ 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                  ?

The OIDs under HOST-RESOURCES-MIB::hrStorageSize and HOST-RESOURCES-MIB::hrStorageUsed can be used to calculate the remaining capacity of each mounted file system.

I/O data is available both in UCD-SNMP-MIB::systemStats (ssIORawSent.0 and ssIORawRecieved.0) and in UCD-DISKIO-MIB::diskIOTable. The latter provides much more granular data. Under this table are OIDs for diskIONReadX and diskIONWrittenX, which provide counters for the number of bytes read from and written to the block device in question since the system 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

Information on network devices is provided by the Interfaces MIB. IF-MIB::ifTable provides an SNMP table with an entry for each interface on the system, the configuration of the interface, and various packet counters for the interface. The following example shows the first few columns of ifTable on a system with two physical network interfaces:

~]$ 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

Network traffic is available under the OIDs IF-MIB::ifOutOctets and IF-MIB::ifInOctets. The following SNMP queries will retrieve network traffic for each of the interfaces on this system:

~]$ 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

Extending Net-SNMP

The Net-SNMP Agent can be extended to provide application metrics in addition to raw system metrics. This allows for capacity planning as well as performance issue troubleshooting. For example, it may be helpful to know that an email system had a 5-minute load average of 15 while being tested, but it is more helpful to know that the email system has a load average of 15 while processing 80,000 messages a second. When application metrics are available via the same interface as the system metrics, this also allows for the visualization of the impact of different load scenarios on system performance (for example, each additional 10,000 messages increases the load average linearly until 100,000).

A number of the applications that ship with Fedora extend the Net-SNMP Agent to provide application metrics over SNMP. There are several ways to extend the agent for custom applications as well. This section describes extending the agent with shell scripts and Perl plug-ins. It assumes that the net-snmp-utils and net-snmp-perl packages are installed, and that the user is granted access to the SNMP tree as described in Configuring Authentication.

Extending Net-SNMP with Shell Scripts

The Net-SNMP Agent provides an extension MIB (NET-SNMP-EXTEND-MIB) that can be used to query arbitrary shell scripts. To specify the shell script to run, use the extend directive in the /etc/snmp/snmpd.conf file. Once defined, the Agent will provide the exit code and any output of the command over SNMP. The example below demonstrates this mechanism with a script which determines the number of httpd processes in the process table.

Menggunakan arahan proc

The Net-SNMP Agent also provides a built-in mechanism for checking the process table via the proc directive. See the snmpd.conf(5) manual page for more information.

The exit code of the following shell script is the number of httpd processes running on the system at a given point in time:

#!/bin/sh

NUMPIDS=`pgrep httpd | wc -l`

exit $NUMPIDS

To make this script available over SNMP, copy the script to a location on the system path, set the executable bit, and add an extend directive to the /etc/snmp/snmpd.conf file. The format of the extend directive is the following:

extend name prog args

… where name is an identifying string for the extension, prog is the program to run, and args are the arguments to give the program. For instance, if the above shell script is copied to /usr/local/bin/check_apache.sh, the following directive will add the script to the SNMP tree:

extend httpd_pids /bin/sh /usr/local/bin/check_apache.sh

The script can then be queried at 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

The following /etc/snmp/snmpd.conf directives will give both the number of httpd PIDs as well as the number of snmpd PIDs when the above script is copied to /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

The following example shows the output of an snmpwalk of the nsExtendObjects OID:

~]$ 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.
Integer exit codes are limited

Integer exit codes are limited to a range of 0–255. For values that are likely to exceed 256, either use the standard output of the script (which will be typed as a string) or a different method of extending the agent.

This last example shows a query for the free memory of the system and the number of httpd processes. This query could be used during a performance test to determine the impact of the number of processes on memory pressure:

~]$ 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

Extending Net-SNMP with Perl

Executing shell scripts using the extend directive is a fairly limited method for exposing custom application metrics over SNMP. The Net-SNMP Agent also provides an embedded Perl interface for exposing custom objects. The net-snmp-perl package provides the NetSNMP::agent Perl module that is used to write embedded Perl plug-ins on Fedora.

The NetSNMP::agent Perl module provides an agent object which is used to handle requests for a part of the agent’s OID tree. The agent object’s constructor has options for running the agent as a sub-agent of snmpd or a standalone agent. No arguments are necessary to create an embedded agent:

use NetSNMP::agent (:all);

my $agent = new NetSNMP::agent();

The agent object has a register method which is used to register a callback function with a particular OID. The register function takes a name, OID, and pointer to the callback function. The following example will register a callback function named hello_handler with the SNMP Agent which will handle requests under the OID .1.3.6.1.4.1.8072.9999.9999:

$agent->register("hello_world", ".1.3.6.1.4.1.8072.9999.9999",
                 \&hello_handler);
Obtaining a root OID

The OID .1.3.6.1.4.1.8072.9999.9999 (NET-SNMP-MIB::netSnmpPlaypen) is typically used for demonstration purposes only. If your organization does not already have a root OID, you can obtain one by contacting your Name Registration Authority (ANSI in the United States).

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");

The handler function should respond to two types of SNMP requests: the GET request and the GETNEXT request. The type of request is determined by calling the getMode method on the request_info object passed as the third parameter to the handler function. If the request is a GET request, the caller will expect the handler to set the value of the request object, depending on the OID of the request. If the request is a GETNEXT request, the caller will also expect the handler to set the OID of the request to the next available OID in the tree. This is illustrated in the following code example:

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.

The type of the variable is set using constants from NetSNMP::ASN. See the perldoc for NetSNMP::ASN for a full list of available constants.

The entire code listing for this example Perl plug-in is as follows:

#!/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);

To test the plug-in, copy the above program to /usr/share/snmp/hello_world.pl and add the following line to the /etc/snmp/snmpd.conf configuration file:

perl do "/usr/share/snmp/hello_world.pl"

The SNMP Agent Daemon will need to be restarted to load the new Perl plug-in. Once it has been restarted, an snmpwalk should return the new data:

~]$ snmpwalk localhost NET-SNMP-MIB::netSnmpPlaypen
NET-SNMP-MIB::netSnmpPlaypen.1.0 = STRING: "hello world"
NET-SNMP-MIB::netSnmpPlaypen.1.1 = INTEGER: 8675309

The snmpget should also be used to exercise the other mode of the handler:

~]$ 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

To learn more about gathering system information, refer to the following resources.

Dokumentasi Yang 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.