15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
10.10.2024

File Log cPanel & WHM: Referensi Teknis Lengkap untuk Administrator Server

cPanel & WHM mempertahankan arsitektur logging komprehensif berlapis-lapis yang mencatat setiap peristiwa penting di seluruh layanan web, pengiriman email, autentikasi, database, dan operasi sistem. Setiap file log memiliki lokasi, format, dan tujuan diagnostik yang berbeda — mengetahui log mana yang harus dikonsultasikan dan cara menguraikannya secara efisien adalah perbedaan antara perbaikan lima menit dan investigasi pemadaman berjam-jam.

Panduan ini mencakup setiap file log kritis dalam lingkungan produksi cPanel & WHM, termasuk jalur file, format log, kasus penggunaan diagnostik di dunia nyata, dan teknik baris perintah yang benar-benar digunakan oleh sysadmin berpengalaman.

Mengapa File Log cPanel & WHM Membutuhkan Perhatian Anda

File log bukan sekadar jejak audit — file log adalah instrumen diagnostik utama untuk setiap stack hosting berbasis Linux. Dalam lingkungan cPanel khususnya, permukaan logging mencakup Apache/LiteSpeed, Exim, MySQL/MariaDB, PHP-FPM, ProFTPd, Pure-FTPd, cPHulk, dan lapisan aplikasi cPanel/WHM itu sendiri.

Administrator yang memperlakukan log secara reaktif — hanya memeriksanya setelah terjadi kegagalan — secara konsisten melewatkan sinyal peringatan dini: kelelahan memori bertahap, kampanye brute-force inkremental, akumulasi kueri lambat, dan kegagalan pengiriman terkait sertifikat. Analisis log proaktif menangkap pola-pola ini sebelum menjadi insiden.

Tiga tujuan operasional inti mendorong analisis log dalam lingkungan cPanel:

  • Diagnosis akar penyebab: Menghubungkan timestamp di seluruh log Apache, PHP, dan MySQL untuk menentukan titik kegagalan tepat dalam rantai permintaan.
  • Pembuatan baseline kinerja: Mengidentifikasi kueri lambat, respons HTTP berlatensi tinggi, dan proses yang boros sumber daya sebelum memenuhi kapasitas server.
  • Forensik keamanan: Merekonstruksi timeline serangan dari log autentikasi SSH, catatan cPHulk, dan log penolakan Exim untuk menentukan cakupan dan langkah remediasi.

File Log Apache

Apache adalah server web default dalam lingkungan cPanel, meskipun LiteSpeed semakin umum digunakan sebagai pengganti langsung. Keduanya menulis log dalam format yang kompatibel ke jalur konvensional yang sama.

Log Error Apache

Lokasi: /usr/local/apache/logs/error_log

Ini adalah log yang paling sering dikonsultasikan dalam sesi pemecahan masalah cPanel mana pun. Log ini menangkap setiap error yang dihasilkan Apache: error fatal PHP (ketika PHP berjalan sebagai modul), kegagalan sintaks .htaccess, ketidakcocokan aturan mod_rewrite, penolakan izin, kegagalan handshake SSL, dan error proxy upstream.

Detail penting yang banyak panduan lewatkan: log error per-domain juga ada dan sering kali lebih langsung berguna daripada log error global. Log tersebut berlokasi di:

/home/username/logs/domain.com-ssl_error_log
/home/username/logs/domain.com-error_log

Log per-VirtualHost ini mengisolasi error ke satu akun, secara dramatis mengurangi kebisingan saat Anda mendiagnosis satu situs tertentu di server bersama.

Pola diagnostik umum — loop rewrite .htaccess:

grep "RewriteRule" /usr/local/apache/logs/error_log | tail -50

Pola diagnostik umum — error fatal PHP per domain:

grep "PHP Fatal" /home/username/logs/domain.com-error_log | tail -30

Log Akses Apache

Lokasi: /usr/local/apache/logs/access_log

Log akses global mencatat setiap permintaan HTTP/HTTPS dalam Combined Log Format secara default:

IP - username [timestamp] "METHOD /path HTTP/version" status_code bytes_sent "referer" "user_agent"

Log akses per-domain disimpan di /home/username/logs/domain.com-access_log dan merupakan sumber yang tepat untuk analisis lalu lintas pada akun individual.

Kasus penggunaan praktis:

  • Mengidentifikasi kampanye DDoS atau scraping berdasarkan frekuensi IP:
awk '{print $1}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rn | head -20
  • Menemukan semua error seri 500 dalam satu jam terakhir (memerlukan timestamp log yang terbaru):
grep " 5[0-9][0-9] " /usr/local/apache/logs/access_log | tail -200
  • Mendeteksi pemindai kerentanan berdasarkan string user-agent:
grep -i "sqlmap|nikto|masscan|nmap" /usr/local/apache/logs/access_log

Kasus tepi: Pada server dengan piped logging diaktifkan di WHM, log akses mungkin kosong atau minimal karena log sedang disalurkan langsung ke daemon pemrosesan log. Periksa WHM > Apache Configuration > Global Configuration untuk direktif CustomLog jika Anda menemukan log akses yang tidak terduga kosong.

Log SSL/TLS Apache

Lokasi: /usr/local/apache/logs/ssl_error_log

Log ini menangkap kegagalan negosiasi TLS, error validasi sertifikat, dan ketidakcocokan cipher suite. Log ini sangat penting saat men-debug masalah konektivitas HTTPS yang tidak muncul di log error utama. Periksa di sini terlebih dahulu ketika pengguna melaporkan peringatan SSL browser atau ketika pembaruan sertifikat otomatis melalui AutoSSL gagal secara diam-diam.

Log Aplikasi cPanel dan WHM

Log Akses cPanel

Lokasi: /usr/local/cpanel/logs/access_log

Mencatat setiap permintaan HTTP yang dibuat ke antarmuka cPanel (port 2082/2083). Setiap entri mencakup nama pengguna yang diautentikasi, tindakan yang dilakukan, dan IP asal. Log ini adalah sumber utama untuk mengaudit apa yang dilakukan pengguna tertentu di dalam akun cPanel mereka.

Temukan semua tindakan yang dilakukan oleh pengguna tertentu:

grep "username" /usr/local/cpanel/logs/access_log | grep -v "GET /favicon"

Log Error cPanel

Lokasi: /usr/local/cpanel/logs/error_log

Menangkap error internal dari lapisan aplikasi cPanel — panggilan API yang gagal, plugin cPanel yang rusak, error skrip Perl di backend cPanel, dan kegagalan rendering template. Jika antarmuka cPanel menampilkan error 500 atau fitur tertentu rusak, ini adalah log pertama yang harus diperiksa.

Log Login WHM

Lokasi: /usr/local/cpanel/logs/login_log

Mencatat semua peristiwa autentikasi WHM — login berhasil, percobaan gagal, tantangan autentikasi dua faktor, dan penggunaan token API. Log ini sangat penting untuk mendeteksi akses administratif yang tidak sah.

Temukan semua percobaan login WHM yang gagal:

grep "FAILED" /usr/local/cpanel/logs/login_log | awk '{print $NF}' | sort | uniq -c | sort -rn

Log Perlindungan Brute Force cPHulk

Lokasi: /usr/local/cpanel/logs/cphulkd.log

Ini adalah log yang sebagian besar panduan lewatkan sepenuhnya, namun merupakan salah satu yang paling penting secara operasional. cPHulk adalah daemon perlindungan brute-force bawaan cPanel. Daemon ini memantau percobaan login SSH, FTP, cPanel, dan WHM serta secara otomatis memblokir IP yang melebihi batas ambang.

Ketika administrator yang sah terkunci dari WHM atau SSH, jawabannya hampir selalu ada di log ini. Anda juga dapat mengkueri database cPHulk secara langsung:

mysql -u root cphulkd -e "SELECT ip, user, type, timestamp FROM brutes ORDER BY timestamp DESC LIMIT 20;"

Untuk membuka blokir IP tertentu dari baris perintah:

/usr/local/cpanel/bin/cphulk_pam_ctl --unblock=192.168.1.1

Log Pembaruan dan Instalasi cPanel

Lokasi: /var/cpanel/updatelogs/

Setiap proses pembaruan cPanel menghasilkan file log bertanda waktu di direktori ini. Ketika peningkatan cPanel merusak layanan atau fitur menghilang setelah pembaruan, direktori ini berisi output lengkap dari proses pembaruan, termasuk error yang terjadi selama instalasi paket atau migrasi konfigurasi.

ls -lt /var/cpanel/updatelogs/ | head -5

File Log Email

Email secara konsisten merupakan subsistem yang paling kompleks untuk dipecahkan masalahnya di cPanel. Exim, MTA default cPanel, menghasilkan tiga aliran log terpisah, masing-masing melayani tujuan diagnostik yang berbeda.

Log Utama Exim

Lokasi: /var/log/exim_mainlog

Ini adalah log transaksi email utama. Setiap pesan yang diproses Exim — masuk atau keluar — menghasilkan entri di sini yang mencakup penerimaan, keputusan perutean, percobaan pengiriman, dan disposisi akhir (terkirim, ditangguhkan, atau dikembalikan).

Anatomi entri log:

2024-01-15 14:23:01 1rPqXY-0003aB-Kc <= sender@example.com H=mail.example.com [203.0.113.10] P=esmtps S=4821 id=<abc123@example.com>
2024-01-15 14:23:02 1rPqXY-0003aB-Kc => recipient@domain.com R=virtual_user_delivery T=virtual_userdelivery_pipe
2024-01-15 14:23:02 1rPqXY-0003aB-Kc Completed

ID pesan (1rPqXY-0003aB-Kc) adalah kunci untuk melacak satu pesan melalui seluruh log:

grep "1rPqXY-0003aB-Kc" /var/log/exim_mainlog

Lacak semua email keluar dari akun tertentu (penting untuk investigasi spam):

grep "U=username" /var/log/exim_mainlog | grep "<=" | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

Kasus tepi di dunia nyata: Ketika instalasi WordPress yang dikompromikan mengirim spam, log utama Exim akan menampilkan pengguna pengirim sebagai nobody (pengguna proses Apache) daripada nama pengguna akun cPanel. Filter untuk ini secara khusus:

grep "U=nobody" /var/log/exim_mainlog | grep "<=" | tail -50

Log Penolakan Exim

Lokasi: /var/log/exim_rejectlog

Mencatat semua pesan yang ditolak Exim untuk diterima pada tahap koneksi SMTP — sebelum bahkan diantrekan. Penolakan terjadi karena hit daftar hitam RBL, kegagalan SPF/DKIM/DMARC, string HELO tidak valid, penolakan relay, atau pembatasan laju.

Log ini sangat penting untuk dua skenario: mendiagnosis mengapa email masuk yang sah ditolak, dan mengaudit efektivitas aturan pemfilteran spam Anda.

Temukan alasan penolakan yang paling umum:

grep "rejected" /var/log/exim_rejectlog | grep -oP "(?<=: ).*" | sort | uniq -c | sort -rn | head -10

Log Panik Exim

Lokasi: /var/log/exim_paniclog

Log panik menangkap error fatal Exim — kegagalan parse file konfigurasi, ketidakmampuan untuk mengikat ke port 25, kegagalan koneksi database, dan error library TLS. Jika file ini tidak kosong, Exim telah mengalami kegagalan kritis. Dalam banyak kasus, log panik yang tidak kosong berarti antrian email telah berhenti diproses sepenuhnya.

# Check if the panic log has content — a non-zero exit means there are critical errors
[ -s /var/log/exim_paniclog ] && echo "CRITICAL: Exim panic log has entries" && tail -20 /var/log/exim_paniclog

Log Dovecot

Lokasi: /var/log/dovecot.log (dan /var/log/dovecot-info.log untuk peristiwa informasional)

Dovecot menangani koneksi IMAP dan POP3 dalam lingkungan cPanel. Kegagalan autentikasi, batas koneksi, masalah penguncian kotak surat, dan peristiwa penegakan kuota semuanya muncul di sini. Ketika pengguna tidak dapat terhubung ke klien email mereka, log Dovecot adalah tempat yang tepat untuk dilihat — bukan Exim.

grep "auth failed" /var/log/dovecot.log | awk '{print $NF}' | sort | uniq -c | sort -rn | head -10

File Log Database

Log Error MySQL/MariaDB

Lokasi: /var/lib/mysql/$(hostname).err

Log ini mencatat peristiwa startup dan shutdown MySQL/MariaDB, operasi pemulihan InnoDB, error replikasi, peringatan korupsi tabel, dan kueri apa pun yang menyebabkan error tingkat server. Ini adalah sumber definitif untuk mendiagnosis crash database dan restart yang tidak terduga.

Ambil jalur aktual secara dinamis:

mysql -u root -e "SHOW VARIABLES LIKE 'log_error';"

Periksa korupsi InnoDB atau peristiwa pemulihan crash:

grep -i "crash|corrupt|recovery|innodb" /var/lib/mysql/$(hostname).err | tail -30

Log Kueri Lambat MySQL

Lokasi: /var/lib/mysql/slowquery.log (ketika diaktifkan)

Log kueri lambat dinonaktifkan secara default di sebagian besar instalasi cPanel. Mengaktifkannya adalah salah satu tindakan penyetelan kinerja bernilai tertinggi yang dapat Anda lakukan pada server yang berat database.

Aktifkan log kueri lambat saat runtime (tidak perlu restart):

mysql -u root -e "SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; SET GLOBAL slow_query_log_file = '/var/lib/mysql/slowquery.log';"

Setelah diaktifkan, gunakan mysqldumpslow untuk mengagregasi dan mengurutkan pelanggar terburuk:

mysqldumpslow -s t -t 10 /var/lib/mysql/slowquery.log

Ini menghasilkan 10 kueri teratas berdasarkan total waktu eksekusi — titik awal yang paling dapat ditindaklanjuti untuk optimasi kueri.

Nuansa kritis: long_query_time sebesar 1 detik adalah ambang awal yang wajar untuk sebagian besar aplikasi, tetapi situs dengan lalu lintas tinggi harus mempertimbangkan 0,5 detik atau bahkan 0,25 detik untuk menangkap kueri yang secara individual cepat tetapi secara kumulatif mahal di bawah beban.

Log Kueri Umum MySQL

Lokasi: Dapat dikonfigurasi, biasanya /var/lib/mysql/general.log

Log kueri umum mencatat setiap pernyataan SQL yang dikirim ke server. Jangan aktifkan ini di produksi tanpa alasan diagnostik yang spesifik dan terbatas waktu. Pada server yang sibuk, log ini dapat tumbuh gigabyte per jam dan akan menyebabkan degradasi kinerja itu sendiri. Aktifkan sebentar, reproduksi masalah, lalu nonaktifkan segera.

mysql -u root -e "SET GLOBAL general_log = 'ON'; SET GLOBAL general_log_file = '/var/lib/mysql/general.log';"
# ... reproduce the issue ...
mysql -u root -e "SET GLOBAL general_log = 'OFF';"

File Log Sistem

Log Pesan Sistem

Lokasi: /var/log/messages

Log pesan kernel dan daemon sistem. Error perangkat keras (kegagalan I/O disk, error ECC memori), peristiwa OOM (Out of Memory) killer, perubahan status antarmuka jaringan, dan peristiwa pemuatan modul kernel semuanya muncul di sini. Ini adalah log pertama yang diperiksa ketika server tidak responsif atau reboot secara tidak terduga.

Periksa peristiwa OOM killer (server yang diam-diam mematikan proses karena kelelahan memori):

grep -i "oom|killed process|out of memory" /var/log/messages | tail -20

Periksa error I/O disk yang mungkin mengindikasikan kegagalan drive:

grep -i "I/O error|blk_update_request|ata.*error" /var/log/messages | tail -20

Log Autentikasi Aman

Lokasi: /var/log/secure

Mencatat semua peristiwa autentikasi berbasis PAM: login SSH (berhasil dan gagal), eksekusi perintah sudo, percobaan su, dan autentikasi yang diprakarsai cron. Ini adalah log utama untuk forensik keamanan SSH.

Identifikasi IP penyerang teratas berdasarkan jumlah login SSH yang gagal:

grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -20

Audit semua perintah sudo yang dieksekusi di server:

grep "sudo:" /var/log/secure | grep "COMMAND" | tail -50

Kasus tepi di dunia nyata: Pada server dengan UseDNS yes di sshd_config, entri login yang gagal mungkin menampilkan nama host alih-alih alamat IP, yang merusak pola awk ekstraksi IP di atas. Verifikasi pengaturan sshd_config Anda dan sesuaikan indeks field yang sesuai.

Buffer Ring Kernel

Lokasi: Hanya runtime — diakses melalui dmesg

Buffer ring kernel bukan file persisten tetapi sangat penting untuk mendiagnosis peristiwa tingkat perangkat keras yang terjadi pada atau segera setelah boot, sebelum syslog diinisialisasi. Pada sistem berbasis systemd (CentOS 7+, CloudLinux 7+), log kernel persisten tersedia melalui:

journalctl -k --since "1 hour ago"

File Log FTP

Log ProFTPd

Lokasi: /var/log/proftpd/proftpd.log

ProFTPd adalah daemon FTP default dalam lingkungan cPanel. Log ini mencatat semua peristiwa sesi FTP: percobaan autentikasi, traversal direktori, unggahan file, unduhan, dan pemutusan koneksi.

Temukan semua percobaan login FTP yang gagal:

grep "USER|PASS" /var/log/proftpd/proftpd.log | grep -i "failed|incorrect" | tail -30

Identifikasi unggahan file besar (potensi staging malware):

grep "STOR" /var/log/proftpd/proftpd.log | awk '{print $NF, $0}' | sort -rn | head -20

Log Pure-FTPd

Lokasi: /var/log/pureftpd.log

Log Pure-FTPd ditulis ke syslog secara default pada beberapa konfigurasi, yang berarti entri mungkin muncul di /var/log/messages daripada file khusus. Verifikasi tujuan logging aktif:

grep "VerboseLog|AltLog" /etc/pure-ftpd.conf

Log PHP dan Tingkat Aplikasi

Log Error PHP

Error PHP dalam lingkungan cPanel dapat dicatat di beberapa lokasi tergantung pada handler PHP yang digunakan:

Handler PHPLokasi Log Error
DSO (mod_php)Log error Apache (`/usr/local/apache/logs/error_log`)
CGI / suPHPLog error per-akun (`/home/user/logs/`)
PHP-FPM`/opt/cpanel/ea-phpXX/root/usr/var/log/php-fpm/error.log`
LSAPILog error per-domain di direktori `logs/` akun

Jalur log pool PHP-FPM mencakup nomor versi PHP. Untuk PHP 8.2 yang dikelola oleh EasyApache 4:

tail -f /opt/cpanel/ea-php82/root/usr/var/log/php-fpm/error.log

Logging error PHP per-akun dapat diaktifkan dengan menambahkan berikut ini ke php.ini atau .htaccess akun:

log_errors = On
error_log = /home/username/logs/php_errors.log

Log Layanan dan Keamanan Khusus cPanel

Log Service Manager cPanel

Lokasi: /usr/local/cpanel/logs/safeapacherestart_log

Mencatat setiap peristiwa restart Apache yang dipicu oleh service manager cPanel, termasuk alasan restart dan apakah berhasil. Berguna untuk menghubungkan downtime Apache dengan perubahan konfigurasi.

Log Backup cPanel

Lokasi: /usr/local/cpanel/logs/cpbackup/

Setiap proses backup menghasilkan file log per-akun di direktori ini. Ketika backup gagal secara diam-diam, direktori ini berisi error spesifik — apakah itu masalah ruang disk, kegagalan dump database, atau masalah izin.

ls -lt /usr/local/cpanel/logs/cpbackup/ | head -10
grep -i "error|fail" /usr/local/cpanel/logs/cpbackup/username.log

Log AutoSSL cPanel

Lokasi: /var/cpanel/logs/autossl/

AutoSSL adalah sistem penyediaan sertifikat Let’s Encrypt / Sectigo otomatis cPanel. Ketika pembaruan sertifikat SSL gagal, alasan terperinci — kegagalan DCV, pembatasan laju, ketidakcocokan validasi domain — dicatat di sini. Log ini sangat penting untuk mendiagnosis masalah kedaluwarsa sertifikat HTTPS sebelum menyebabkan peringatan browser.

ls -lt /var/cpanel/logs/autossl/ | head -5
tail -100 /var/cpanel/logs/autossl/$(ls -t /var/cpanel/logs/autossl/ | head -1)

Jika Anda mengelola sertifikat SSL di beberapa domain atau membutuhkan sertifikat di luar yang disediakan AutoSSL, Sertifikat SSL dari penyedia khusus menawarkan validasi diperpanjang dan opsi wildcard yang tidak dimiliki Let’s Encrypt.

Referensi Perbandingan File Log

File LogJalurLayananKasus Penggunaan Utama
Log Error Apache`/usr/local/apache/logs/error_log`Apache/LiteSpeedError PHP, kegagalan `.htaccess`, error 500
Log Akses Apache`/usr/local/apache/logs/access_log`Apache/LiteSpeedAnalisis lalu lintas, deteksi DDoS, audit 4xx/5xx
Log Akses cPanel`/usr/local/cpanel/logs/access_log`UI cPanelAudit tindakan pengguna, akses tidak sah
Log Login WHM`/usr/local/cpanel/logs/login_log`WHMPeristiwa autentikasi admin, penggunaan token API
Log cPHulk`/usr/local/cpanel/logs/cphulkd.log`cPHulkDeteksi brute-force, audit blokir IP
Log Utama Exim`/var/log/exim_mainlog`Exim MTAPelacakan pengiriman email, investigasi spam
Log Penolakan Exim`/var/log/exim_rejectlog`Exim MTAAnalisis penolakan masuk, kegagalan SPF/DKIM
Log Panik Exim`/var/log/exim_paniclog`Exim MTAKegagalan MTA kritis, penghentian antrian
Log Dovecot`/var/log/dovecot.log`DovecotKegagalan autentikasi IMAP/POP3, masalah kotak surat
Log Error MySQL`/var/lib/mysql/hostname.err`MySQL/MariaDBCrash DB, pemulihan InnoDB, korupsi
Log Kueri Lambat MySQL`/var/lib/mysql/slowquery.log`MySQL/MariaDBKinerja kueri, identifikasi bottleneck
Pesan Sistem`/var/log/messages`Kernel/syslogPeristiwa OOM, error perangkat keras, crash layanan
Log Autentikasi Aman`/var/log/secure`PAM/SSHBrute-force SSH, audit sudo, forensik autentikasi
Log ProFTPd`/var/log/proftpd/proftpd.log`ProFTPdAudit sesi FTP, akses tidak sah
Log AutoSSL`/var/cpanel/logs/autossl/`AutoSSLKegagalan pembaruan sertifikat, error DCV
Log PHP-FPM`/opt/cpanel/ea-phpXX/root/usr/var/log/php-fpm/error.log`PHP-FPMError process manager PHP, kegagalan pool

Teknik Analisis Log Baris Perintah

Perintah Penting untuk Analisis Real-Time dan Historis

Ikuti log secara real time (alur kerja sysadmin yang paling umum):

tail -f /var/log/exim_mainlog

Ikuti beberapa log secara bersamaan menggunakan multitail (instal melalui yum install multitail):

multitail /usr/local/apache/logs/error_log /var/log/exim_mainlog

Ekstrak dan hitung nilai unik dari field tertentu:

awk '{print $1}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rn | head -20

Cari di seluruh arsip log terkompresi yang dirotasi:

zgrep "keyword" /var/log/exim_mainlog.*.gz

Filter entri log dalam jendela waktu tertentu:

awk '/15/Jan/2024:14:00/,/15/Jan/2024:15:00/' /usr/local/apache/logs/access_log

Hitung distribusi kode status HTTP:

awk '{print $9}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rn

Rotasi Log di cPanel

cPanel menggunakan logrotate untuk mengelola ukuran file log. Konfigurasi rotasi untuk log yang dikelola cPanel ada di /etc/logrotate.d/. Log Apache dirotasi oleh mekanisme splitlogs cPanel sendiri, yang juga membagi log akses global menjadi file per-domain.

Periksa konfigurasi logrotate saat ini untuk layanan tertentu:

cat /etc/logrotate.d/syslog

Picu rotasi log secara manual untuk pengujian:

logrotate -f /etc/logrotate.d/syslog

Jebakan kritis: Jika rotasi log salah dikonfigurasi atau ruang disk habis, file log dapat tumbuh hingga memenuhi seluruh partisi, menyebabkan semua layanan gagal secara bersamaan. Pantau penggunaan disk pada partisi yang berisi /var/log dan /usr/local/apache/logs sebagai praktik operasional standar.

Manajemen Log Terpusat dan Peringatan

Untuk lingkungan produksi — khususnya pada VPS Hosting atau Server Dedicated — mengandalkan inspeksi log manual tidak memadai pada skala besar. Implementasikan salah satu pendekatan berikut:

Agregasi log dengan penerusan rsyslog: Konfigurasikan /etc/rsyslog.conf untuk meneruskan log ke server syslog terpusat atau platform SIEM. Ini mempertahankan log bahkan jika server itu sendiri dikompromikan.

ELK Stack (Elasticsearch, Logstash, Kibana): Ingest log cPanel melalui agen Filebeat, parse dengan pipeline Logstash, dan visualisasikan pola di Kibana. Pendekatan ini memungkinkan pencarian teks lengkap di seluruh riwayat log berbulan-bulan dalam hitungan detik.

Integrasi Fail2ban: Fail2ban membaca /var/log/secure dan /var/log/exim_mainlog dan secara otomatis membuat aturan iptables untuk memblokir IP penyerang. Ini beroperasi secara independen dari cPHulk dan menyediakan lapisan pertahanan tambahan.

GoAccess untuk analisis log Apache: GoAccess adalah penganalisis log berbasis terminal real-time yang menghasilkan laporan HTML dari log akses Apache tanpa memerlukan deployment ELK penuh:

goaccess /usr/local/apache/logs/access_log --log-format=COMBINED -o /var/www/html/report.html

Administrator yang mengelola beberapa akun cPanel atau setup reseller pada VPS dengan cPanel mendapat manfaat signifikan dari visibilitas log terpusat, karena log akun individual sebaliknya terisolasi di bawah setiap direktori home.

Korelasi Log Infrastruktur Email

Salah satu teknik diagnostik yang paling kurang dihargai dalam lingkungan cPanel adalah referensi silang log Exim dengan log Dovecot dan log autentikasi sistem untuk melacak siklus hidup lengkap insiden keamanan email.

Skenario: Pengguna melaporkan akun mereka mengirim spam yang tidak mereka tulis.

Langkah 1 — Identifikasi ID pesan Exim yang terkait dengan akun:

grep "U=username|from=<.*@userdomain.com>" /var/log/exim_mainlog | grep "<=" | head -20

Langkah 2 — Periksa apakah pengiriman berasal dari aplikasi web (PHP mail()) atau SMTP yang diautentikasi:

grep "1rPqXY-0003aB-Kc" /var/log/exim_mainlog | grep -E "P=esmtpa|P=local"

P=esmtpa mengindikasikan pengiriman SMTP yang diautentikasi. P=local atau P=pipe mengindikasikan skrip lokal (kemungkinan aplikasi web yang dikompromikan).

Langkah 3 — Jika P=esmtpa, temukan IP asal dari log autentikasi Dovecot atau Exim:

grep "username" /var/log/dovecot.log | grep "Login" | tail -20

Langkah 4 — Referensi silang IP tersebut terhadap /var/log/secure untuk aktivitas SSH dan terhadap log akses cPanel untuk login panel kontrol.

Teknik korelasi empat langkah ini secara definitif menjawab apakah kompromi tersebut adalah pencurian kredensial, aplikasi web yang rentan, atau akun SMTP yang di-brute-force — dan perbedaan tersebut sepenuhnya menentukan jalur remediasi.

Untuk organisasi yang menjalankan infrastruktur email mereka sendiri, lingkungan Email Hosting yang dikonfigurasi dengan benar dengan pemantauan log khusus menyediakan isolasi yang diperlukan untuk mencegah kerusakan reputasi email lintas akun.

Pertimbangan Log Terkait Domain dan DNS

Kegagalan resolusi DNS sering kali muncul sebagai error dalam log aplikasi daripada dalam log DNS khusus. Named (BIND), yang digunakan cPanel untuk DNS, mencatat ke /var/log/messages secara default.

Periksa error BIND:

grep "named" /var/log/messages | grep -i "error|failed|refused" | tail -20

Ketika masalah propagasi DNS memengaruhi domain yang baru didaftarkan atau ditransfer, menghubungkan log BIND dengan konfigurasi domain cPanel membantu mengisolasi apakah masalahnya adalah error file zona atau penundaan propagasi tingkat registrar. Jika Anda mengelola pendaftaran domain dan DNS melalui platform yang sama, Pendaftaran Domain dengan manajemen DNS terintegrasi menyederhanakan rantai diagnostik ini.

Matriks Keputusan Praktis: Log Mana yang Diperiksa Pertama

GejalaLog Pertama yang DiperiksaLog Sekunder
Website mengembalikan error 500`/home/user/logs/domain.com-error_log``/usr/local/apache/logs/error_log`
Email tidak terkirim keluar`/var/log/exim_mainlog``/var/log/exim_paniclog`
Email masuk ditolak`/var/log/exim_rejectlog``/var/log/messages` (DNS/BIND)
Pengguna tidak dapat terhubung melalui IMAP/POP3`/var/log/dovecot.log``/var/log/secure`
Kueri database lambat`/var/lib/mysql/slowquery.log``/var/lib/mysql/hostname.err`
Server reboot secara tidak terduga`/var/log/messages``journalctl -k`
Login SSH diblokir / terkunci`/usr/local/cpanel/logs/cphulkd.log``/var/log/secure`
Login WHM gagal`/usr/local/cpanel/logs/login_log``/usr/local/cpanel/logs/cphulkd.log`
Unggahan FTP gagal`/var/log/proftpd/proftpd.log``/var/log/secure`
Sertifikat SSL tidak diperbarui`/var/cpanel/logs/autossl/``/usr/local/apache/logs/ssl_error_log`
Dugaan spam berasal dari server`/var/log/exim_mainlog` (filter `U=nobody`)`/usr/local/apache/logs/error_log`
Fitur cPanel rusak atau menampilkan error`/usr/local/cpanel/logs/error_log``/usr/local/cpanel/logs/access_log`

Poin Teknis Utama

  • Selalu periksa log per-domain terlebih dahulu (/home/username/logs/) sebelum log Apache global — log tersebut berisi data yang sama dengan kebisingan yang jauh lebih sedikit.
  • /var/log/exim_paniclog yang tidak kosong adalah insiden P1 — Exim mungkin telah berhenti memproses antrian email sepenuhnya.
  • Log cPHulk di /usr/local/cpanel/logs/cphulkd.log adalah pemberhentian pertama yang tepat untuk skenario lockout mana pun, bukan /var/log/secure.
  • Aktifkan log kueri lambat MySQL (long_query_time = 1) pada server database produksi mana pun — kecerdasan kinerja yang diberikannya sepadan dengan overhead minimal.
  • Referensi silang field P= Exim dengan log autentikasi Dovecot untuk secara definitif menentukan apakah insiden spam berasal dari pencurian kredensial atau aplikasi web yang dikompromikan.
  • Miskonfigurasi rotasi log adalah mode kegagalan diam — partisi /var/log yang penuh akan menghentikan semua layanan secara bersamaan tanpa peringatan.
  • zgrep bekerja pada arsip .gz yang dirotasi — analisis log historis tidak memerlukan dekompresi file secara manual.
  • Penerusan log terpusat melalui rsyslog adalah postur keamanan minimum yang layak untuk server mana pun yang menangani data sensitif — log lokal dapat dihapus oleh penyerang yang mendapatkan akses root.

Pertanyaan yang Sering Diajukan

Di mana log error cPanel berada?

Log error aplikasi cPanel utama ada di /usr/local/cpanel/logs/error_log. Error server web Apache ada di /usr/local/apache/logs/error_log, dan error PHP per-akun ada di /home/username/logs/domain.com-error_log. Setiap layanan mempertahankan file log sendiri di jalur yang berbeda.

Bagaimana cara melacak pesan email tertentu melalui log Exim?

Setiap pesan yang diproses Exim menerima ID pesan unik yang terlihat di /var/log/exim_mainlog. Jalankan grep "MESSAGE_ID" /var/log/exim_mainlog untuk mengambil setiap entri log yang terkait dengan pesan tersebut, dari penerimaan hingga pengiriman akhir atau pengembalian.

Mengapa log panik Exim saya tidak kosong dan apa yang harus dilakukan?

/var/log/exim_paniclog yang tidak kosong mengindikasikan Exim telah mengalami error fatal — biasanya kegagalan parse konfigurasi, masalah library TLS, atau ketidakmampuan untuk mengikat ke port 25. Baca entri log panik, lalu periksa sintaks konfigurasi Exim dengan exim -bV dan verifikasi port 25 tidak diblokir oleh proses lain menggunakan ss -tlnp | grep :25.

Bagaimana cara menemukan skrip PHP mana yang mengirim spam melalui Apache?

Filter log utama Exim untuk pesan yang dikirim oleh pengguna Apache: grep "U=nobody" /var/log/exim_mainlog. Kemudian referensi silang timestamp dengan entri log akses Apache untuk mengidentifikasi URL yang memicu fungsi mail. Header X-PHP-Originating-Script (jika diaktifkan di php.ini) juga akan mengidentifikasi file skrip yang tepat.

Apa cara tercepat untuk memeriksa apakah server sedang diserang brute-force SSH?

Jalankan grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10 untuk melihat alamat IP penyerang teratas berdasarkan jumlah percobaan. Kemudian verifikasi apakah cPHulk telah memblokir mereka dengan memeriksa /usr/local/cpanel/logs/cphulkd.log atau mengkueri database cPHulk secara langsung.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai