อะไรคือสิ่งแรกที่คุณตรวจสอบเมื่อเซิร์ฟเวอร์ unix ที่ไม่มีใครแตะต้องเริ่มบ้าดีเดือด


10

ดังนั้นคุณมีเซิร์ฟเวอร์ unix ที่ติดตั้งอย่างเรียบร้อยและมันเร็วสุด ๆ และใช้งานได้ดีและทุกอย่างยอดเยี่ยมเป็นเวลาหลายเดือนและทันใดนั้นข้อผิดพลาดแปลก ๆ ทุกชนิดก็เริ่มปรากฏขึ้นเพื่อบริการที่หลากหลาย น้อยกว่ากันมาก

อะไรคือสิ่งที่ถูกที่คุณควรตรวจสอบทันทีที่คุณได้รับเซสชั่น ssh ของคุณไปยังเครื่อง?

ฉันสนใจเรื่องการบาดเจ็บเป็นพิเศษที่เน้นคำสั่งที่ไม่ชัดเจนและสถานการณ์ที่หายาก แต่ฉันเดาว่าสิ่งที่เห็นได้ชัดนั้นแตกต่างกันไปในแต่ละบุคคลดังนั้นเราจึงสามารถเขียนรายการทั้งหมดได้อย่างอิสระ

คำตอบ:


19

คำสั่งแรก: มันตอบสนองหรือไม่

หากคุณไม่สามารถเข้าสู่ระบบได้จะมีปัญหาใหญ่กว่าเดิม โดยทั่วไปแล้วจะมีสองรสชาติ ได้แก่ ความล้มเหลวของฮาร์ดแวร์และความล้มเหลวของซอฟต์แวร์ ทั้งสองอย่างนี้อาจเป็นหายนะ เพื่อป้องกันข้อผิดพลาด DFA ให้ตรวจสอบสภาพฮาร์ดแวร์โดยทั่วไปก่อน - โดยทั่วไปการเหลือบมองอย่างง่ายจะเพียงพอ

คำสั่งที่สอง: โครงสร้างพื้นฐานของระบบมีสุขภาพที่ดีและเป็นระเบียบหรือไม่?

ตรวจสอบระบบ "Golden Triad" ของระบบ:

  • เวลา CPU ที่เพียงพอนั้นเพียงพอสำหรับการประมวลผล
  • มีพื้นที่ว่างในดิสก์เพียงพอสำหรับการจัดเก็บ
  • หน่วยความจำเพียงพอสำหรับภาระงานฟรี

ในช่วงไม่กี่ทศวรรษที่ผ่านมากลุ่มที่สามได้ขยายไปสู่ ​​"รูปสี่เหลี่ยม" ซึ่งรวมถึงการสื่อสาร (เครือข่าย):

  • การเชื่อมต่อใช้งานได้ตอบสนองและมีความจุ

คำสั่งที่สาม: ความรุนแรงของปัญหาคืออะไร

โปรแกรมหรือบริการใดบ้างที่ได้รับผลกระทบ ในการลดลำดับความรุนแรงมันเป็นระบบ (ทั้งระบบ), คลัสเตอร์ (กลุ่มของโปรแกรม) หรือแยก (โปรแกรมเฉพาะ) หรือไม่? กลุ่มของโปรแกรมมักจะสะดุดเนื่องจากบริการพื้นฐานที่เฉพาะเจาะจงล้มเหลวหรือไม่ตอบสนอง บางครั้งปัญหาเกี่ยวกับระบบจะเกี่ยวข้องกับสิ่งนี้ (คิดว่า DNS หรือ IP ขัดแย้งกัน) แต่การรู้ว่าจะมองที่ไหนเป็นกุญแจสำคัญ

คำสั่งที่สี่: เครื่องมือวินิจฉัยให้ข้อมูลที่เป็นประโยชน์เกี่ยวข้องกับปัญหาหรือไม่ ตอนนี้คุณมีข้อมูลเกี่ยวกับความสมบูรณ์ของระบบ (ลำดับที่สอง) และส่วนใดของปัญหาที่พบ (ลำดับที่สาม) สิ่งนี้จะทำให้ง่ายต่อการแคบลงว่าปัญหาอยู่ที่ใด

ข้อความผิดพลาดหรือไฟล์บันทึกควรเป็นจุดอ้างอิงทั่วไปในการเดินทางครั้งนี้

ปัญหา CPU:

  • loadav
  • ด้านบน
  • strace

ปัญหาเนื้อที่ดิสก์ / IO:

  • DF
  • ดู่
  • lsof
  • iostat
  • vmstat

ปัญหาหน่วยความจำ:

  • ฟรี

ปัญหาการเชื่อมต่อ:

  • ปิง
  • เส้นทาง (และ arp และ rarp และเพื่อน ๆ )
  • iptables, ipchains, ipfw (สำหรับผู้ BSD เหล่านั้น)
  • traceroute หรือ mtr
  • โฮสต์, nslookup หรือขุด
  • netstat

คำร้องเรียนที่พบบ่อยที่สุด (ที่ฉันได้ยิน):

อีเมลไม่ได้ส่งเร็วพอ (มากกว่าหนึ่งนาทีจากการส่งถึงผู้รับ) หรืออีเมลปฏิเสธการพยายามส่งของฉัน ซึ่งมักจะเกิดขึ้นกับตัว จำกัด อัตราใน Postfix ที่เริ่มขึ้นในระหว่างที่มีพายุสแปมซึ่งส่งผลกระทบต่อความสามารถในการรับการจัดส่งภายใน

ตัวอย่างชีวิตจริง:

อย่างไรก็ตามนี่ไม่ใช่กรณีเสมอไป ครั้งหนึ่งปัญหายังคงอยู่โดยไม่คำนึงถึงการรีสตาร์ทบริการ ดังนั้นหลังจาก 3 นาทีก็ถึงเวลาที่จะเริ่มมองไปรอบ ๆ CPU ไม่ว่าง แต่ต่ำกว่า 100% แต่โหลดเพิ่มขึ้นถึง 15 ในกล่องที่มีเพียง 2 คอร์และกำลังขู่ว่าจะสูงขึ้น คำสั่งด้านบนเปิดเผยว่าระบบอีเมลนั้นอยู่ในพิกัดพิกัดเกินพิกัดพร้อมกับเครื่องสแกนจดหมาย แต่ไม่มีกระบวนการลูก amavis ที่จะเห็น นั่นคือเบาะแส - คำสั่ง mail queue (mailq) แสดงข้อความที่ไม่ได้ส่ง 150+ ข้อความมากกว่า 80% เป็นสแปมใน 20 นาทีสุดท้าย การปรับอย่างรวดเร็วเพื่อลดตัว จำกัด อัตรา (ซึ่งช่วยลดอัตราการบริโภคของสแปมพายุ) ในขณะที่เพิ่มจำนวนกระบวนการสแกนอีเมลเด็ก (เพื่อช่วยในการประมวลผลงานค้าง) ตามด้วยการเริ่มบริการใหม่แก้ไขปัญหาและระบบสามารถ เพื่อให้การส่งมอบเสร็จสมบูรณ์ในเวลาอันสั้น

สาเหตุของปัญหาคือกระบวนการพ่อแม่ amavis ล้มลงตายและในที่สุดกระบวนการลูกก็วิ่งไปตามเส้นทางของพวกเขา (ในที่สุดพวกเขาก็จบลงด้วยตนเองหลังจากการสแกนจำนวนมากเพื่อป้องกันการรั่วไหลของหน่วยความจำ) ดังนั้นจึงมีกระบวนการ SMTP ใน postfix พยายามติดต่อ ... thin air ... เพื่อทำการสแกนสแปม / ไวรัสที่จำเป็น ดิสทริบิวชั่นที่ฉันใช้มีแพ็คเกจที่ล้าสมัยซึ่งจะไม่มีการอัพเดท เนื่องจากการติดตั้งนั้นจะถูกแทนที่ในหนึ่งปีหรือมากกว่านั้นฉัน "overrode" การติดตั้งเป็นเวอร์ชั่นล่าสุดด้วยตนเองซึ่งรวมถึงการแก้ไขข้อบกพร่องต่าง ๆ ฉันไม่ได้มีปัญหาเดียวกันตั้งแต่


5

มักจะ "ใคร" ตามด้วย "สุดท้าย"

ปัญหามากมายบนเครื่องที่ฉันจัดการตลอดเวลานั้นเป็นเพราะคำจำกัดความที่ "แตะต้อง" ที่หลวมมาก - บ่อยครั้งที่มีคนทำอะไรบางอย่าง :)


4

ฉันจะเริ่ม

ครั้งนี้ฉันครั้งเดียวฉันใช้เวลาหลายพันชั่วโมงในการลองสิ่งต่าง ๆ หลายพันอย่างการปิดใช้งานบริการที่นี่และที่นั่นการรีบูตเครื่องเป็นต้นปัญหาคืออะไร ออกจากพื้นที่ดิสก์โดยสิ้นเชิง

ดังนั้นนี่คือสิ่งแรกที่ฉันพิมพ์เมื่อทำการดีบั๊กเซิร์ฟเวอร์ที่มีปัญหาโดยฉับพลัน:

df -h

ฉันไม่เคยลืมเลย มันช่วยให้ฉันสูญเสียความพยายามมากมาย คิดว่าฉันจะแบ่งปัน



1

หากคุณสามารถฉันจะลองปิด NICs ทั้งหมดที่อยู่ในแถบการจัดการ


1

การตรวจสอบข้อผิดพลาด dmesg - ฉันมักจะเริ่มต้นด้วยdmesg | tailเพราะมีโอกาสที่สิ่งต่าง ๆ จะยังคงผิดพลาดและเซิร์ฟเวอร์ยังคงพยายามทำสิ่งที่ทำให้เกิดข้อผิดพลาด


0

สิ่งแรกที่ฉันตรวจสอบคือ 'ด้านบน' (มีกระบวนการที่แปลกประหลาดอะไรบ้างที่หน่วยความจำหมูหรือเวลาซีพียู)

หากไม่มีสิ่งใดปรากฏขึ้นที่นั่นฉันจะตรวจสอบ 'ใคร' เพื่อดูว่ามีใครบางคนอยู่ในเครื่องของฉันด้วยเหตุผลบางอย่าง

บางทีระบบไฟล์อาจถูกถอดออก ตรวจสอบกับการเรียกร้องให้ 'cat / etc / mtab' และ 'fstab' เพื่อให้แน่ใจว่าทุกอย่างจะเกิดขึ้นทันทีที่บูต

ตรวจสอบสถานะการออนไลน์เพื่อให้แน่ใจว่าจำนวนผู้ใช้ในช่องนั้นสมเหตุสมผล (ควรเป็นคุณเท่านั้น) จากนั้นอ่านผ่าน var / log / auth.log เพื่อดูว่ามีอะไรผิดปกติหรือไม่

สิ่งเหล่านี้เป็นสิ่งที่จับได้ คุณอาจต้องตรวจสอบกระบวนการเฉพาะที่ทำให้เกิดปัญหาทั้งนี้ขึ้นอยู่กับข้อผิดพลาดที่กล่องของคุณโยน


0

ด้านบน df -h และตรวจสอบเสมอ / var / log เพื่อให้แน่ใจว่าพาร์ทิชันยังไม่เต็ม นั่นทำให้ฉันละลายลงไปสองสามครั้ง


0

df -ha

เพื่อตรวจสอบว่าฮาร์ดไดรฟ์เต็มหรือไม่และบางคนไม่ได้รับคำเตือน

htop หรือด้านบน

เพื่อตรวจสอบการใช้หน่วยความจำและ cpu ไม่สูงผิดปกติ

อีกทางเลือกหนึ่งถ้ากล่องไม่ตอบสนองฉันไปที่ไคลเอ็นต์ vm-ware และตรวจสอบ cpu / ram จากที่นั่น


0

การเรียกใช้บางสิ่งเช่น(at) sarบนโฮสต์นั้นเกือบจะเป็นข้อบังคับ ประโยชน์ของความสามารถในการรับสแนปชอตทางประวัติศาสตร์ของ CPU เครือข่ายหน่วยความจำและดิสก์ I / O (รวมถึงอื่น ๆ ) นั้นไม่สามารถอธิบายได้

มีหลายครั้งที่ฉันสามารถวินิจฉัยความผิดพลาดได้โดยตรวจสอบสิ่งที่โฮสต์ทำใน 24 ชั่วโมงที่ผ่านมาและดูว่าเมื่อใดที่สิ่งต่าง ๆ เริ่มผิดเพี้ยน


0

บน linux ฉันมักจะตรวจสอบ dmesg และ / var / log / messages หรือ / var / log / syslog dmesg จะระบุว่าเป็นความผิดพลาดของฮาร์ดแวร์อย่างฉับพลันหรือไม่ มีปัญหาอื่น ๆ อีกมากที่จะปรากฏในบันทึกของระบบ


0

ฉันคิดว่าสิ่งแรกที่ฉันทำคือการตรวจสอบพื้นที่ว่างในดิสก์ หากการตรวจสอบอย่างง่ายไม่เปิดเผยปัญหา "ทั่วไป" ฉันจะตรวจสอบต่อไป

สิ่งหนึ่งที่ฉันชอบทำคือจับภาพของระบบ ฉันสามารถ grep เหล่านี้ในภายหลังเพื่อค้นหาสิ่งที่สะดุดตาของฉัน

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

จากที่นั่นคือการแก้ไขปัญหา 101 แต่ฉันพบว่ามันเร็วกว่าเล็กน้อยในการ grep บันทึกที่บันทึกไว้และหากเงื่อนไขล้างในขณะที่ฉันเข้าสู่ระบบฉันมีบางสิ่งที่จะดำเนินการต่อหรือค้นหาการเปลี่ยนแปลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.