ABDURROZAK
HOME ABOUT ME MICROSITE KONTAK PERSEMBAHAN HELP
ABDURROZAK.MY.ID // DEBIAN LINUX SERVER FUNDAMENTAL

LOG &MONITORING

Volume 10 dari seri Debian Linux Server Fundamental. Panduan komprehensif monitoring dan analisis sistem Linux. Setiap command dijelaskan detail dengan syntax, parameter, contoh penggunaan, dan output. Dari system log hingga analisis masalah server.

VOLUME10 / 17
SUB-BAB8
BACA75 MENIT
MONITORING100%
ABDUR ROZAK, S.Kom. Web Developer & System Administrator - abdurrozak.my.id
VOLUME 10 / 17

MONITORING DAN ANALISIS SISTEM

Panduan lengkap Log & Monitoring di Debian Linux. 8 sub-bab mencakup system log, journalctl, log service, monitoring CPU, monitoring RAM, monitoring disk, df dan du, hingga analisis masalah server. Setiap command disertai penjelasan detail dan contoh praktis.
SUB-BAB8 LEVELMonitoring WAKTU75 MENIT
01
SUB-BAB 01 SYSTEM LOG

SYSTEM LOG

Apa Itu System Log?

System log adalah file yang mencatat semua aktivitas sistem, termasuk pesan dari kernel, service, dan aplikasi. Log sangat penting untuk troubleshooting, auditing, dan monitoring sistem.

Lokasi Log Files

bash
# Lokasi utama log files admin@server:~$ ls -la /var/log/ total 2345 drwxr-xr-x 12 root root 4096 Sep 7 10:30 . drwxr-xr-x 14 root root 4096 Sep 1 10:00 .. -rw-r--r-- 1 root root 12345 Sep 7 10:30 auth.log -rw-r--r-- 1 root root 23456 Sep 7 10:30 syslog -rw-r--r-- 1 root root 34567 Sep 7 10:30 kern.log -rw-r--r-- 1 root root 45678 Sep 7 10:30 daemon.log -rw-r--r-- 1 root root 56789 Sep 7 10:30 messages drwxr-xr-x 2 root root 4096 Sep 7 10:30 apt/ drwxr-xr-x 2 root root 4096 Sep 7 10:30 nginx/ drwxr-xr-x 2 root root 4096 Sep 7 10:30 ssh/ # File log penting: # /var/log/syslog - Log sistem umum # /var/log/auth.log - Log autentikasi (login, sudo, dll) # /var/log/kern.log - Log kernel # /var/log/daemon.log - Log daemon/service # /var/log/messages - Log pesan umum # /var/log/apt/ - Log APT package manager # /var/log/nginx/ - Log Nginx web server # /var/log/ssh/ - Log SSH

Melihat Log Files

bash
# Lihat isi log file admin@server:~$ cat /var/log/syslog # Lihat 100 baris terakhir admin@server:~$ tail -n 100 /var/log/syslog # Lihat log secara real-time admin@server:~$ tail -f /var/log/syslog # Cari pattern di log admin@server:~$ grep "error" /var/log/syslog # Cari pattern dengan context admin@server:~$ grep -C 5 "error" /var/log/syslog # -C 5 = 5 baris sebelum dan sesudah match # Cari multiple patterns admin@server:~$ grep -E "error|warning|critical" /var/log/syslog # Lihat log dengan less (bisa scroll) admin@server:~$ less /var/log/syslog # Tekan / untuk search, q untuk quit # Lihat log dengan more admin@server:~$ more /var/log/syslog # Lihat log dengan head (10 baris pertama) admin@server:~$ head /var/log/syslog # Lihat log dengan head (20 baris pertama) admin@server:~$ head -n 20 /var/log/syslog

Log Rotation

bash
# Log rotation dikonfigurasi di /etc/logrotate.conf admin@server:~$ cat /etc/logrotate.conf # Konfigurasi log rotation per service admin@server:~$ ls /etc/logrotate.d/ apt dpkg nginx ssh syslog # Lihat konfigurasi log rotation untuk syslog admin@server:~$ cat /etc/logrotate.d/syslog /var/log/syslog { rotate 7 daily missingok notifempty delaycompress compress postrotate /usr/lib/rsyslog/rsyslog-rotate endscript } # Jalankan log rotation manual admin@server:~$ sudo logrotate /etc/logrotate.conf # Jalankan log rotation untuk service tertentu admin@server:~$ sudo logrotate /etc/logrotate.d/syslog
TIPS: Log rotation penting untuk mencegah log file menjadi terlalu besar. Default konfigurasi biasanya sudah cukup baik, tapi bisa disesuaikan sesuai kebutuhan.
KOMPETENSI SUB-BAB 01
  • Memahami lokasi log files
  • Mampu melihat log dengan cat, tail, head, less, more
  • Mampu mencari pattern di log dengan grep
  • Memahami konsep log rotation
02
SUB-BAB 02 JOURNALCTL

journalctl

Apa Itu journalctl?

journalctl adalah command untuk query dan menampilkan log dari systemd journal. systemd journal menyimpan log dalam format binary yang terstruktur, lebih efisien dan mudah untuk di-query dibanding log file tradisional.

Basic journalctl Commands

bash
# Lihat semua log admin@server:~$ journalctl # Lihat log dengan pager (less) admin@server:~$ journalctl --no-pager # Lihat 100 log terakhir admin@server:~$ journalctl -n 100 # Lihat log secara real-time (follow) admin@server:~$ journalctl -f # Lihat log sejak boot terakhir admin@server:~$ journalctl -b # Lihat log sejak boot tertentu admin@server:~$ journalctl -b -1 # -1 = boot sebelumnya, -2 = 2 boot sebelumnya, dst # Lihat log sejak waktu tertentu admin@server:~$ journalctl --since "2026-09-07 10:00:00" # Lihat log hingga waktu tertentu admin@server:~$ journalctl --until "2026-09-07 11:00:00" # Lihat log dalam range waktu admin@server:~$ journalctl --since "2026-09-07 10:00:00" --until "2026-09-07 11:00:00" # Lihat log sejak 1 jam yang lalu admin@server:~$ journalctl --since "1 hour ago" # Lihat log sejak hari ini admin@server:~$ journalctl --since today # Lihat log sejak kemarin admin@server:~$ journalctl --since yesterday

Filter journalctl

bash
# Lihat log untuk service tertentu admin@server:~$ journalctl -u ssh # Lihat log untuk multiple services admin@server:~$ journalctl -u ssh -u nginx # Lihat log untuk unit tertentu admin@server:~$ journalctl -u ssh.service # Lihat log dengan priority tertentu admin@server:~$ journalctl -p err # Priority: emerg, alert, crit, err, warning, notice, info, debug # Lihat log dengan priority tertentu atau lebih tinggi admin@server:~$ journalctl -p err..emerg # Lihat log untuk kernel admin@server:~$ journalctl -k # -k = kernel log (sama dengan journalctl -u kernel) # Lihat log untuk user tertentu admin@server:~$ journalctl _UID=1000 # Lihat log dengan pattern tertentu admin@server:~$ journalctl | grep "error" # Lihat log dengan multiple patterns admin@server:~$ journalctl | grep -E "error|warning|critical" # Lihat log dengan output format tertentu admin@server:~$ journalctl -o short # Output format: short, short-iso, short-precise, short-monotonic, verbose, json, json-pretty, json-sse, json-seq, cat, with-unit

Manage Journal

bash
# Lihat ukuran journal admin@server:~$ journalctl --disk-usage Archived and active journals take up 123.4M in the file system. # Hapus journal lama (keep 1 week) admin@server:~$ sudo journalctl --vacuum-time=1week # Hapus journal lama (keep 500MB) admin@server:~$ sudo journalctl --vacuum-size=500M # Hapus journal lama (keep 2 files) admin@server:~$ sudo journalctl --vacuum-files=2 # Flush journal ke disk admin@server:~$ sudo journalctl --flush # Rotate journal admin@server:~$ sudo journalctl --rotate # Lihat konfigurasi journal admin@server:~$ cat /etc/systemd/journald.conf
TIPS: Gunakan journalctl -f untuk monitoring real-time saat troubleshooting. Gunakan journalctl -u service-name untuk melihat log service tertentu.
KOMPETENSI SUB-BAB 02
  • Mampu menggunakan journalctl untuk melihat log
  • Mampu filter log berdasarkan waktu, service, priority
  • Mampu manage journal (vacuum, flush, rotate)
  • Memahami output format journalctl
03
SUB-BAB 03 LOG SERVICE

LOG SERVICE

Melihat Log Service

bash
# Lihat log service dengan journalctl admin@server:~$ journalctl -u ssh # Lihat log service dengan journalctl (real-time) admin@server:~$ journalctl -u ssh -f # Lihat log service dengan journalctl (since boot) admin@server:~$ journalctl -u ssh -b # Lihat log service dengan journalctl (since time) admin@server:~$ journalctl -u ssh --since "2026-09-07 10:00:00" # Lihat log service dengan journalctl (priority) admin@server:~$ journalctl -u ssh -p err # Lihat log service dari file log tradisional admin@server:~$ tail -f /var/log/auth.log # Untuk SSH admin@server:~$ tail -f /var/log/nginx/access.log # Untuk Nginx access log admin@server:~$ tail -f /var/log/nginx/error.log # Untuk Nginx error log admin@server:~$ tail -f /var/log/syslog # Untuk system log umum

Filter Log Service

bash
# Cari error di log service admin@server:~$ journalctl -u ssh | grep -i error # Cari failed di log service admin@server:~$ journalctl -u ssh | grep -i failed # Cari multiple patterns admin@server:~$ journalctl -u ssh | grep -E "error|failed|critical" # Lihat log service dengan context admin@server:~$ journalctl -u ssh | grep -C 5 "error" # Lihat log service dengan output format tertentu admin@server:~$ journalctl -u ssh -o short-iso # Lihat log service dengan output verbose admin@server:~$ journalctl -u ssh -o verbose

List Service Logs

bash
# Lihat semua service yang punya log admin@server:~$ journalctl --field=_SYSTEMD_UNIT | sort -u # Lihat semua service yang aktif admin@server:~$ systemctl list-units --type=service --state=active # Lihat semua service yang failed admin@server:~$ systemctl list-units --type=service --state=failed # Lihat status service tertentu admin@server:~$ systemctl status ssh # Lihat status service tertentu (no pager) admin@server:~$ systemctl status ssh --no-pager
TIPS: Gunakan journalctl -u service-name -f untuk monitoring real-time service. Gunakan journalctl -u service-name -p err untuk melihat hanya error.
KOMPETENSI SUB-BAB 03
  • Mampu melihat log service dengan journalctl
  • Mampu filter log service berdasarkan pattern
  • Mampu list service yang punya log
  • Mampu melihat status service
04
SUB-BAB 04 CPU

MONITORING CPU

top - Process Monitor

bash
# Jalankan top admin@server:~$ top top - 10:30:15 up 5 days, 3:15, 1 user, load average: 0.08, 0.03, 0.01 Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.3 us, 1.0 sy, 0.0 ni, 96.5 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 1987.2 total, 1456.8 free, 220.4 used, 310.0 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1650.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 admin 20 0 72340 5640 4560 S 0.3 0.3 0:00.45 sshd 1235 admin 20 0 21568 3456 2800 S 0.0 0.2 0:00.12 bash 1236 admin 20 0 38120 3200 2800 R 0.3 0.2 0:00.08 top # Command dalam top: # q - quit # h - help # k - kill process # r - renice process # M - sort by memory # P - sort by CPU # T - sort by time # u - filter by user # H - toggle threads # 1 - toggle CPU cores # top dengan update interval admin@server:~$ top -d 5 # top untuk user tertentu admin@server:~$ top -u admin # top dengan PID tertentu admin@server:~$ top -p 1234 # top batch mode admin@server:~$ top -b -n 1

htop - Enhanced Process Monitor

bash
# Install htop admin@server:~$ sudo apt install htop # Jalankan htop admin@server:~$ htop # Command dalam htop: # F1/h - help # F2/S - setup # F3// - search # F4/\ - filter # F5/t - tree view # F6 - sort by # F9/k - kill # F10/q - quit # I - invert sort # M - sort by memory # P - sort by CPU # T - sort by time # H - toggle threads # u - filter by user # htop dengan user tertentu admin@server:~$ htop -u admin # htop dengan delay admin@server:~$ htop -d 5 # htop tanpa header admin@server:~$ htop --no-header

mpstat - CPU Statistics

bash
# Install sysstat admin@server:~$ sudo apt install sysstat # Lihat CPU statistics admin@server:~$ mpstat Linux 6.1.0-18-amd64 (server) 09/07/2026 _x86_64_ (4 CPU) 10:30:15 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 10:30:15 all 2.30 0.00 1.00 0.20 0.00 0.00 0.00 0.00 0.00 96.50 # Lihat CPU statistics per CPU admin@server:~$ mpstat -P ALL # Lihat CPU statistics dengan interval admin@server:~$ mpstat 1 5 # Update setiap 1 detik, 5 kali # Lihat CPU statistics per CPU dengan interval admin@server:~$ mpstat -P ALL 1 5

sar - System Activity Reporter

bash
# Lihat CPU usage admin@server:~$ sar -u 1 5 Linux 6.1.0-18-amd64 (server) 09/07/2026 _x86_64_ (4 CPU) 10:30:15 CPU %user %nice %system %iowait %steal %idle 10:30:16 all 2.30 0.00 1.00 0.20 0.00 96.50 10:30:17 all 1.50 0.00 0.75 0.10 0.00 97.75 # Lihat CPU usage per CPU admin@server:~$ sar -P ALL 1 5 # Lihat memory usage admin@server:~$ sar -r 1 5 # Lihat swap usage admin@server:~$ sar -S 1 5 # Lihat disk I/O admin@server:~$ sar -d 1 5 # Lihat network statistics admin@server:~$ sar -n DEV 1 5 # Lihat semua statistics admin@server:~$ sar -A 1 5
TIPS: Gunakan htop untuk monitoring interaktif. Gunakan sar untuk monitoring historis. Gunakan mpstat untuk CPU statistics detail.
KOMPETENSI SUB-BAB 04
  • Mampu monitor CPU dengan top
  • Mampu monitor CPU dengan htop
  • Mampu monitor CPU dengan mpstat
  • Mampu monitor CPU dengan sar
05
SUB-BAB 05 RAM

MONITORING RAM

free - Memory Usage

bash
# Lihat memory usage admin@server:~$ free total used free shared buff/cache available Mem: 1987 220 1456 34 310 1650 Swap: 2048 0 2048 # Lihat memory usage dalam human-readable format admin@server:~$ free -h total used free shared buff/cache available Mem: 1.9Gi 220Mi 1.4Gi 34Mi 310Mi 1.6Gi Swap: 2.0Gi 0B 2.0Gi # Lihat memory usage dalam megabytes admin@server:~$ free -m total used free shared buff/cache available Mem: 1987 220 1456 34 310 1650 Swap: 2048 0 2048 # Lihat memory usage dalam gigabytes admin@server:~$ free -g total used free shared buff/cache available Mem: 1 0 1 0 0 1 Swap: 2 0 2 # Lihat memory usage dengan interval admin@server:~$ free -h -s 5 # Update setiap 5 detik # Lihat memory usage dengan count admin@server:~$ free -h -c 5 # Tampilkan 5 kali

vmstat - Virtual Memory Statistics

bash
# Lihat virtual memory statistics admin@server:~$ vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 1490176 34560 310000 0 0 10 20 100 200 2 1 97 0 0 # Lihat virtual memory statistics dengan interval admin@server:~$ vmstat 1 5 # Update setiap 1 detik, 5 kali # Lihat virtual memory statistics dengan delay admin@server:~$ vmstat -s 2034688 K total memory 220400 K used memory 310000 K active memory 1490176 K inactive memory 345600 K free memory 34560 K buffer memory 310000 K swap cache 2097148 K total swap 0 K used swap 2097148 K free swap # Lihat virtual memory statistics dengan timestamp admin@server:~$ vmstat -t 1 5

sar - System Activity Reporter

bash
# Lihat memory usage admin@server:~$ sar -r 1 5 Linux 6.1.0-18-amd64 (server) 09/07/2026 _x86_64_ (4 CPU) 10:30:15 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit 10:30:16 1490176 1650400 544512 26.83 34560 310000 456789 22.45 # Lihat swap usage admin@server:~$ sar -S 1 5 Linux 6.1.0-18-amd64 (server) 09/07/2026 _x86_64_ (4 CPU) 10:30:15 kbswpfree kbswpused %swpused kbswpcad %swpcad 10:30:16 2097148 0 0.00 0 0.00 # Lihat memory usage dengan interval admin@server:~$ sar -r 1 5
TIPS: Gunakan free -h untuk quick check memory usage. Gunakan vmstat untuk detail virtual memory statistics. Gunakan sar -r untuk historical memory usage.
KOMPETENSI SUB-BAB 05
  • Mampu monitor RAM dengan free
  • Mampu monitor RAM dengan vmstat
  • Mampu monitor RAM dengan sar
  • Memahami perbedaan free, vmstat, dan sar
06
SUB-BAB 06 DISK

MONITORING DISK

lsblk - List Block Devices

bash
# Lihat block devices admin@server:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 48.5G 0 part / └─sda3 8:3 0 1G 0 part [SWAP] sr0 11:0 1 1024M 0 rom # Lihat block devices dengan detail admin@server:~$ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 vfat FAT32 ABCD-1234 506M 1% /boot/efi ├─sda2 ext4 1.0 12345678-1234-1234-1234-123456789012 43G 15% / └─sda3 swap 1 87654321-4321-4321-4321-210987654321 [SWAP] sr0 # Lihat block devices dengan output format tertentu admin@server:~$ lsblk -o NAME,SIZE,TYPE,MOUNTPOINT # Lihat block devices dengan tree view admin@server:~$ lsblk -t # Lihat block devices dengan bytes admin@server:~$ lsblk -b # Lihat block devices dengan bytes dan detail admin@server:~$ lsblk -b -f

fdisk - Disk Partitioner

bash
# Lihat disk partitions admin@server:~$ sudo fdisk -l Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 12345678-1234-1234-1234-123456789012 Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 102760447 101709824 48.5G Linux filesystem /dev/sda3 102760448 104857566 2097119 1G Linux swap # Lihat disk partitions untuk disk tertentu admin@server:~$ sudo fdisk -l /dev/sda

parted - Partition Editor

bash
# Lihat disk partitions admin@server:~$ sudo parted -l Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot, esp 2 538MB 52.6GB 52.1GB ext4 3 52.6GB 53.7GB 1074MB linux-swap(v1) swap # Lihat disk partitions untuk disk tertentu admin@server:~$ sudo parted /dev/sda print

hdparm - Hard Disk Parameters

bash
# Lihat hard disk parameters admin@server:~$ sudo hdparm -I /dev/sda /dev/sda: ATA device, with non-removable media Model Number: VBOX HARDDISK Serial Number: VB12345678-12345678 Firmware Revision: 1.0 Transport: Serial, ATA8-AST, SATA Rev 2.6 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 104857600 device size with M = 1024*1024: 51200 MBytes device size with M = 1000*1000: 53687 MBytes (53 GB) # Lihat hard disk performance admin@server:~$ sudo hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 1536 MB in 3.01 seconds = 510.30 MB/sec
TIPS: Gunakan lsblk untuk quick check disk layout. Gunakan fdisk -l untuk detail partition table. Gunakan parted untuk partition management. Gunakan hdparm untuk disk information dan performance test.
KOMPETENSI SUB-BAB 06
  • Mampu monitor disk dengan lsblk
  • Mampu monitor disk dengan fdisk
  • Mampu monitor disk dengan parted
  • Mampu monitor disk dengan hdparm
07
SUB-BAB 07 DF & DU

df dan du

df - Disk Free

bash
# Lihat disk space usage admin@server:~$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 51475068 7890124 40938764 17% / /dev/sda1 523248 5678 517570 2% /boot/efi # Lihat disk space usage dalam human-readable format admin@server:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 49G 7.5G 39G 17% / /dev/sda1 511M 5.5M 506M 2% /boot/efi # Lihat disk space usage dalam human-readable format (all filesystems) admin@server:~$ df -ha Filesystem Size Used Avail Use% Mounted on sysfs 0 0 0 - /sys proc 0 0 0 - /proc udev 985M 0 985M 0% /dev devtmpfs 985M 0 985M 0% /dev devpts 0 0 0 - /dev/pts /dev/sda2 49G 7.5G 39G 17% / /dev/sda1 511M 5.5M 506M 2% /boot/efi # Lihat disk space usage untuk filesystem tertentu admin@server:~$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda2 49G 7.5G 39G 17% / # Lihat disk space usage dengan inode admin@server:~$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 3276800 234567 3042233 8% / /dev/sda1 0 0 0 - /boot/efi # Lihat disk space usage dengan type admin@server:~$ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda2 ext4 51475068 7890124 40938764 17% / /dev/sda1 vfat 523248 5678 517570 2% /boot/efi # Lihat disk space usage dengan output format tertentu admin@server:~$ df -h --output=source,size,used,avail,pcent,target

du - Disk Usage

bash
# Lihat disk usage untuk directory admin@server:~$ du /var/log 4 /var/log/apt 4 /var/log/nginx 1234 /var/log # Lihat disk usage dalam human-readable format admin@server:~$ du -h /var/log 4.0K /var/log/apt 4.0K /var/log/nginx 1.2M /var/log # Lihat disk usage dengan summary admin@server:~$ du -sh /var/log 1.2M /var/log # Lihat disk usage dengan summary untuk multiple directories admin@server:~$ du -sh /var/log /var/cache /var/lib 1.2M /var/log 234M /var/cache 567M /var/lib # Lihat disk usage dengan max depth admin@server:~$ du -h --max-depth=1 /var 4.0K /var/opt 1.2M /var/log 234M /var/cache 567M /var/lib 123M /var/spool 923M /var # Lihat disk usage dengan max depth 2 admin@server:~$ du -h --max-depth=2 /var # Lihat disk usage dengan human-readable dan max depth admin@server:~$ du -h --max-depth=1 /var | sort -hr 923M /var 567M /var/lib 234M /var/cache 123M /var/spool 1.2M /var/log 4.0K /var/opt # Lihat disk usage dengan bytes admin@server:~$ du -b /var/log # Lihat disk usage dengan apparent size admin@server:~$ du --apparent-size -h /var/log # Lihat disk usage dengan total admin@server:~$ du -sh /var/log /var/cache /var/lib --total 1.2M /var/log 234M /var/cache 567M /var/lib 802M total # Lihat disk usage dengan exclude pattern admin@server:~$ du -h --max-depth=1 --exclude="cache" /var # Lihat 10 directory terbesar admin@server:~$ du -h --max-depth=1 /var | sort -hr | head -n 10

Perbedaan df dan du

COMMANDFUNGSIUSE CASE
dfLihat disk space usage per filesystemCek space available per mount point
duLihat disk usage per directory/fileCek directory mana yang paling besar
TIPS: Gunakan df -h untuk cek space available per filesystem. Gunakan du -sh /* untuk cek directory mana yang paling besar. Gunakan du -sh /* | sort -hr | head untuk melihat top 10 directory terbesar.
KOMPETENSI SUB-BAB 07
  • Mampu monitor disk space dengan df
  • Mampu monitor directory usage dengan du
  • Memahami perbedaan df dan du
  • Mampu mencari directory terbesar dengan du
08
SUB-BAB 08 ANALISIS

ANALISIS MASALAH SERVER

Masalah Umum dan Solusi

MASALAHGEJALASOLUSI
CPU tinggi Load average > jumlah CPU Gunakan top atau htop untuk identifikasi process, kill atau optimize process
Memory penuh Available memory rendah, swap digunakan Gunakan free -h untuk cek, kill process yang boros memory, atau tambah RAM
Disk penuh df menunjukkan Use% 100% Gunakan du -sh /* | sort -hr untuk cari directory besar, hapus file tidak perlu
Service tidak start systemctl status menunjukkan failed Cek log dengan journalctl -u service-name, perbaiki error
Network lambat Ping tinggi, throughput rendah Cek dengan ping, traceroute, cek bandwidth dengan iftop
Service crash Service restart terus-menerus Cek log dengan journalctl -u service-name -f, cek resource usage
Disk I/O tinggi iowait tinggi di top Gunakan iostat untuk identifikasi disk, optimize atau ganti disk
Swap tinggi Swap usage tinggi Tambah RAM atau optimize aplikasi yang boros memory

Tools untuk Analisis

bash
# CPU analysis admin@server:~$ top admin@server:~$ htop admin@server:~$ mpstat -P ALL 1 5 admin@server:~$ sar -u 1 5 # Memory analysis admin@server:~$ free -h admin@server:~$ vmstat 1 5 admin@server:~$ sar -r 1 5 # Disk analysis admin@server:~$ df -h admin@server:~$ du -sh /* | sort -hr | head admin@server:~$ iostat -x 1 5 # Network analysis admin@server:~$ ping google.com admin@server:~$ traceroute google.com admin@server:~$ iftop admin@server:~$ nethogs # Process analysis admin@server:~$ ps aux | sort -nrk 3 | head # Sort by CPU usage admin@server:~$ ps aux | sort -nrk 4 | head # Sort by memory usage # Log analysis admin@server:~$ journalctl -p err admin@server:~$ journalctl -u ssh -p err admin@server:~$ tail -f /var/log/syslog # Service status admin@server:~$ systemctl list-units --state=failed admin@server:~$ systemctl status service-name

Workflow Analisis Masalah

1
IDENTIFIKASI MASALAH

Langkah 1: Identifikasi gejala masalah

Langkah 2: Cek resource usage (CPU, memory, disk, network)

Langkah 3: Cek log untuk error

Langkah 4: Identifikasi root cause

Langkah 5: Apply solusi

Langkah 6: Verifikasi solusi bekerja

2
CONTOH KASUS: CPU TINGGI
bash
# 1. Cek CPU usage admin@server:~$ top Load average: 4.50, 3.20, 2.10 # Load average > jumlah CPU (4 CPU) # 2. Identifikasi process yang boros CPU admin@server:~$ ps aux | sort -nrk 3 | head -5 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1234 85.0 2.3 123456 23456 ? R 10:00 10:00 process-name # 3. Cek detail process admin@server:~$ ps -p 1234 -f # 4. Kill process jika perlu admin@server:~$ sudo kill 1234 # 5. Verifikasi CPU usage turun admin@server:~$ top
3
CONTOH KASUS: DISK PENUH
bash
# 1. Cek disk usage admin@server:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 49G 49G 0 100% / # 2. Cari directory terbesar admin@server:~$ du -sh /* | sort -hr | head -10 49G /var 23G /var/log 15G /var/cache # 3. Cari file besar di /var/log admin@server:~$ sudo find /var/log -type f -size +100M /var/log/syslog.1 /var/log/kern.log.1 # 4. Hapus atau compress file besar admin@server:~$ sudo rm /var/log/syslog.1 admin@server:~$ sudo gzip /var/log/syslog.1 # 5. Verifikasi disk space admin@server:~$ df -h
TIPS: Selalu identifikasi root cause sebelum apply solusi. Jangan langsung hapus file tanpa tahu apa isinya. Gunakan du untuk cari directory besar, find untuk cari file besar.
KOMPETENSI SUB-BAB 08
  • Mampu identifikasi masalah umum server
  • Mampu gunakan tools untuk analisis
  • Mampu ikuti workflow analisis masalah
  • Mampu apply solusi untuk masalah umum
VOLUME 10 SELESAI

SELAMAT!

Kamu telah menyelesaikan Volume 10 - Log & Monitoring. Dari system log, journalctl, log service, monitoring CPU, monitoring RAM, monitoring disk, df dan du, hingga analisis masalah server. Kamu sekarang menguasai Log & Monitoring di Debian Linux. Di Volume 11, kita akan dalami Security & Hardening. Sampai jumpa!
SUB-BAB8 LEVELMonitoring NEXTSecurity & Hardening
ABDURROZAK.MY.ID // TERHUBUNG

JARINGAN SOSIAL

Temukan saya di berbagai platform digital