Apa hal pertama yang Anda periksa ketika server unix yang belum tersentuh mulai mengamuk?


10

Jadi Anda memiliki server unix yang tertata rapi dan ini super cepat dan bekerja membengkak dan semuanya hebat selama berbulan-bulan, dan tiba-tiba semua jenis kesalahan aneh mulai muncul untuk berbagai layanan yang berbeda dan tak satu pun dari mereka masuk akal sendiri , apalagi bersama.

Apa hal-hal murah yang harus Anda periksa segera setelah Anda mendapatkan sesi ssh ke mesin?

Saya secara khusus tertarik pada cerita trauma yang menyoroti perintah yang tidak jelas dan situasi yang jarang, tapi saya kira yang jelas berbeda dari orang ke orang, jadi kita bisa mendaftar semuanya dengan bebas.

Jawaban:


19

First Order: Apakah responsif?

Jika Anda tidak dapat masuk, ada masalah yang lebih besar terjadi. Ini umumnya datang dalam dua rasa: kegagalan perangkat keras, dan kegagalan perangkat lunak. Keduanya berpotensi menimbulkan bencana. Untuk mencegah kesalahan DFA, periksa kesehatan perangkat keras secara umum terlebih dahulu - pandangan sederhana biasanya sudah cukup.

Orde Kedua: Apakah struktur dasar sistem dalam kondisi kesehatan dan ketertiban yang baik?

Periksa "Triad Emas" sistem:

  • Cukup waktu CPU gratis untuk diproses
  • Ruang disk yang cukup bebas untuk penyimpanan
  • Memori yang cukup gratis untuk beban kerja

Dalam beberapa dekade terakhir, triad ini telah berkembang menjadi "quad" yang mencakup komunikasi (jaringan):

  • Konektivitas fungsional, responsif, dan memiliki kapasitas

Urutan Ketiga: Apa keparahan masalah ini?

Program atau layanan apa yang terpengaruh? Dalam mengurangi tingkat keparahan, apakah sistemik (sistem-lebar), berkerumun (sekelompok program), atau terisolasi (program tertentu)? Cluster program biasanya naik karena layanan dasar tertentu telah gagal atau tidak responsif. Masalah sistemik kadang-kadang terkait dengan ini (pikirkan konflik DNS atau IP) tetapi mengetahui ke mana harus mencari biasanya adalah kuncinya.

Urutan Keempat: Apakah alat diagnostik menyediakan data berguna yang relevan dengan masalah ini? Sekarang Anda memiliki info tentang kesehatan sistem (urutan kedua) dan bagian mana yang mengalami masalah (urutan ketiga) ini akan membuatnya mudah untuk mempersempit di mana masalahnya.

Pesan kesalahan atau file log harus menjadi titik jalan umum dalam perjalanan ini.

Masalah CPU:

  • loadav
  • teratas
  • strace

Masalah ruang disk / IO:

  • df
  • du
  • lsof
  • iostat
  • vmstat

Masalah memori:

  • Gratis

Masalah konektivitas:

  • ping
  • rute (dan arp dan rarp dan teman)
  • iptables, ipchains, ipfw (untuk orang-orang BSD di luar sana)
  • traceroute atau mtr
  • host, nslookup, atau gali
  • netstat

Keluhan yang paling umum (yang saya dengar):

Email tidak mengirimkan dengan cukup cepat (lebih dari satu menit dari kirim ke penerimaan oleh penerima) atau, email menolak upaya saya untuk mengirim. Ini biasanya turun ke tingkat limiter di Postfix yang menendang selama badai spam, yang berdampak pada kemampuan untuk menerima pengiriman internal.

Contoh kehidupan nyata:

Namun, ini tidak selalu terjadi. Suatu kali, masalah tetap ada terlepas dari restart layanan; jadi setelah 3 menit sudah waktunya untuk mulai melihat-lihat. CPU sibuk tetapi di bawah 100%, namun bebannya telah melonjak hingga 15 pada kotak hanya 2 core, dan mengancam akan naik lebih tinggi. Perintah teratas mengungkapkan bahwa sistem surat berada di overdrive, bersama dengan pemindai surat, tetapi tidak ada proses anak amavis untuk dilihat. Itulah petunjuknya - perintah antrian email (mailq) menunjukkan sekitar 150+ pesan yang tidak terkirim, lebih dari 80% di antaranya adalah spam, dalam 20 menit terakhir. Penyesuaian cepat untuk menurunkan pembatas tingkat (yang mengurangi tingkat masuknya badai spam) sambil meningkatkan jumlah proses pemindai email anak (untuk membantu memproses backlog), diikuti oleh layanan restart, menyelesaikan masalah dan sistem mampu untuk menyelesaikan pengiriman dalam waktu singkat.

Penyebab masalahnya adalah bahwa proses orang tua amavis telah mati karena mati, dan proses anak akhirnya semua berjalan dengan sendirinya (mereka berhenti sendiri setelah begitu banyak pemindaian untuk mencegah kebocoran memori). Jadi ada proses SMTP dalam postfix yang mencoba menghubungi ... udara tipis ... untuk melakukan pemindaian spam / virus yang diperlukan. Distro yang saya gunakan memiliki paket-paket usang yang tidak akan pernah diperbarui; karena penginstalannya akan diganti dalam satu tahun atau lebih, saya secara manual "mengesampingkan" penginstalan ke versi terbaru, yang mencakup beberapa perbaikan bug. Saya tidak punya masalah yang sama sejak itu.


5

biasanya "siapa" diikuti oleh "terakhir"

tumpukan masalah pada mesin yang telah saya kelola berkali-kali karena definisi yang sangat longgar tentang "tidak tersentuh" ​​- sering kali seseorang telah melakukan sesuatu :)


4

Baiklah, saya akan mulai.

Yang ini menggigit saya sekali, saya menghabiskan berjam-jam mencoba ribuan hal yang berbeda, menonaktifkan layanan di sana-sini, me-reboot, dll. Apa masalahnya? Benar-benar kehabisan ruang disk.

Jadi, inilah hal pertama yang saya ketik saat men-debug server yang tiba-tiba bermasalah:

df -h

Saya tidak pernah melupakannya sekarang. Itu hanya menyelamatkan saya dari banyak usaha yang sia-sia. Kupikir aku akan berbagi.



1

Jika Anda bisa, saya akan selalu mencoba mematikan semua NIC kecuali manajemen.


1

Memeriksa dmesg untuk setiap kesalahan - Saya biasanya memulai dengan dmesg | tail, karena kemungkinan masih ada yang salah dan server masih mencoba melakukan apa saja yang menyebabkan kesalahan.


0

Hal pertama yang saya periksa adalah 'top' (apakah ada proses aneh; proses yang memakan memori atau waktu CPU.)

Jika tidak ada yang muncul di sana, saya akan memeriksa 'siapa' untuk melihat apakah ada orang lain di komputer saya karena suatu alasan.

Mungkin filesystem diturunkan; periksa dengan panggilan ke 'cat / etc / mtab' dan kemudian 'fstab' untuk memastikan semuanya akan muncul saat boot.

Periksa waktu kerja untuk memastikan # pengguna pada kotak masuk akal (seharusnya hanya Anda) dan kemudian membaca var / log / auth.log untuk melihat apakah ada yang salah di sana.

Ini semua adalah tangkapan. Bergantung pada kesalahan yang dilempar kotak Anda, Anda mungkin perlu memeriksa proses spesifik yang menyebabkan masalah.


0

top df -h dan SELALU periksa / var / log untuk memastikan bahwa partisi belum terisi. Itu telah menyebabkan saya benar-benar meleleh beberapa kali.


0

df -ha

untuk memeriksa apakah harddisk penuh dan seseorang belum menerima peringatan

htop atau atas

untuk memeriksa memori dan penggunaan cpu tidak terlalu tinggi.

Atau jika kotak tidak merespons saya masuk ke klien vm-ware dan periksa cpu / ram dari sana.


0

Menjalankan sesuatu seperti (at) sar pada host hampir wajib. Kegunaan untuk mendapatkan snapshot historis dari CPU, jaringan, memori dan disk I / O (antara lain) tidak dapat dikecilkan.

Sudah berkali-kali saya bisa mendiagnosis kesalahan dengan memeriksa apa yang dilakukan tuan rumah dalam 24 jam terakhir, dan melihat ketika semuanya mulai serba salah.


0

Di linux, saya biasanya memeriksa dmesg dan / var / log / messages atau / var / log / syslog. dmesg akan menunjukkan apakah itu kesalahan perangkat keras yang tiba-tiba; cukup banyak masalah lain akan muncul di log sistem.


0

Saya kira hal pertama yang saya lakukan adalah pemeriksaan ruang disk (seperti yang telah disebutkan orang lain). Jika pemeriksaan sederhana tidak mengungkapkan masalah "umum" maka saya akan menyelidiki lebih lanjut.

Satu hal yang saya suka lakukan adalah menangkap snapshot dari sistem. Saya bisa melihat ini nanti untuk mencari apa pun yang menarik perhatian saya.

lsof > /tmp/lsof.tmp &
ps auxfw > /tmp/ps.tmp &
netstat -anp > /tmp/netstat.tmp &

Dari sana pemecahan masalah 101 tetapi saya merasa sedikit lebih cepat untuk menangkap log yang disimpan dan jika kondisinya bersih saat saya masuk saya memiliki sesuatu untuk melanjutkan atau mencari perubahan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.