0Pricing
Linux Server Deployment & SSH Mastery · บทเรียน

การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์

ขยายการตรวจสอบให้ไกลกว่าการดูแลเซิร์ฟเวอร์เดียว ส่งเมตริกและบันทึกไปยังระบบส่วนกลาง สร้างแดชบอร์ด และกำหนดค่าการแจ้งเตือน เพื่อให้ทราบปัญหาก่อนผู้ใช้

การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์ เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องรวมศูนย์

การเข้าสู่ระบบแต่ละเซิร์ฟเวอร์ด้วย top และ journalctl ใช้ได้กับเครื่องเดียว แต่ไม่สามารถขยายรองรับเซิร์ฟเวอร์จำนวนมากได้ และคุณจะเห็นปัญหาก็ต่อเมื่อบังเอิญเข้าไปตรวจสอบ

การตรวจสอบแบบรวมศูนย์ จะรวบรวมเมทริกและบันทึกจากเซิร์ฟเวอร์ทั้งหมดไว้ในที่เดียว พร้อมแดชบอร์ดและการแจ้งเตือนอัตโนมัติ

เมทริกเทียบกับบันทึก

ข้อมูลสองประเภทเป็นพื้นฐานของการสังเกตการณ์ระบบ:

  • เมทริก — ข้อมูลอนุกรมเวลาที่เป็นตัวเลข เช่น CPU %, หน่วยความจำ และอัตราคำขอ
  • บันทึก — เหตุการณ์ข้อความแต่ละรายการ เช่น ข้อผิดพลาดและรายการเข้าถึง

โดยทั่วไปคุณจะรวบรวมทั้งสองประเภท โดยใช้เครื่องมือที่ปรับให้เหมาะกับแต่ละประเภทแตกต่างกัน

รูปแบบการทำงานของ Prometheus

Prometheus เป็นระบบเมทริกยอดนิยม โดยจะดึงเมทริกด้วยการอ่านปลายทาง HTTP ที่แต่ละเซิร์ฟเวอร์เปิดเผย

คุณเรียกใช้ตัวส่งออกบนแต่ละเซิร์ฟเวอร์ เช่น node_exporter สำหรับเมทริกของโฮสต์ ตัวส่งออกนี้จะเผยแพร่ข้อมูลที่ Prometheus อ่านได้

# On each monitored server:
sudo apt install prometheus-node-exporter
curl http://localhost:9100/metrics | head

การกำหนดค่าเป้าหมายสำหรับการอ่านข้อมูล

คุณระบุสิ่งที่ Prometheus ต้องอ่านผ่านไฟล์การตั้งค่า งานแต่ละงานจะแสดงรายการเป้าหมาย (host:port ของตัวส่งออก)

ส่วนย่อยนี้อ่านข้อมูลจาก node_exporter บนเซิร์ฟเวอร์สองเครื่อง

scrape_configs:
  - job_name: 'nodes'
    static_configs:
      - targets: ['web1:9100', 'web2:9100']

การสืบค้นเมทริกด้วย PromQL

Prometheus มีภาษาสืบค้นของตนเองชื่อ PromQL คุณสามารถคำนวณอัตรา ค่าเฉลี่ย และข้อมูลอื่น ๆ จากเซิร์ฟเวอร์ทั้งหมดของคุณได้

นิพจน์นี้ประมาณการใช้งาน CPU ต่อเซิร์ฟเวอร์

100 - (avg by (instance) (rate(node_cpu_seconds_total{mode='idle'}[5m])) * 100)

การแสดงภาพด้วย Grafana

Grafana เชื่อมต่อกับ Prometheus (และแหล่งข้อมูลอื่น ๆ อีกมากมาย) เพื่อสร้างแดชบอร์ด คุณเพิ่ม Prometheus เป็นแหล่งข้อมูล แล้วสร้างแผงจากคำสืบค้น PromQL

แดชบอร์ดสำเร็จรูปสำหรับ node_exporter ช่วยให้คุณได้กราฟ CPU หน่วยความจำ ดิสก์ และเครือข่ายภายในไม่กี่นาที

sudo apt install grafana
sudo systemctl enable --now grafana-server
# Open http://server:3000 and add Prometheus as a data source

การรวมศูนย์บันทึก

สำหรับบันทึก ให้ส่งบันทึกจากแต่ละเซิร์ฟเวอร์ไปยังที่จัดเก็บส่วนกลาง ชุดเครื่องมือที่ใช้กันทั่วไปคือ Loki ร่วมกับ Promtail ซึ่งทำงานร่วมกับ Grafana

Promtail ทำงานบนแต่ละเซิร์ฟเวอร์และส่งต่อไฟล์บันทึกกับเจอร์นัลไปยัง Loki

# promtail tails the journal and ships to Loki
clients:
  - url: http://loki:3100/loki/api/v1/push
scrape_configs:
  - job_name: journal
    journal:
      max_age: 12h

การกำหนดกฎการแจ้งเตือน

การแจ้งเตือนจะเปลี่ยนเมทริกให้เป็นการดำเนินการ กฎการแจ้งเตือนของ Prometheus จะทำงานเมื่อนิพจน์เป็นจริงต่อเนื่องตามระยะเวลาที่กำหนด

กฎนี้จะแจ้งเตือนเมื่อโหนดหยุดทำงานเป็นเวลาสองนาที

groups:
  - name: node
    rules:
      - alert: NodeDown
        expr: up == 0
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: 'Instance {{ $labels.instance }} is down'

การกำหนดเส้นทางการแจ้งเตือน

Alertmanager รับการแจ้งเตือนที่ทำงานแล้วและส่งต่อไปยังปลายทางที่เหมาะสม เช่น อีเมล Slack, PagerDuty และอื่น ๆ นอกจากนี้ยังรวมการแจ้งเตือนซ้ำและปิดเสียงการแจ้งเตือนได้

คุณจับคู่การแจ้งเตือนกับผู้รับตามป้ายกำกับ เช่น severity

route:
  receiver: 'team-slack'
receivers:
  - name: 'team-slack'
    slack_configs:
      - channel: '#alerts'

การหลีกเลี่ยงความล้าจากการแจ้งเตือน

การแจ้งเตือนที่มากเกินไปก็แย่พอ ๆ กับการไม่มีเลย เพราะผู้คนจะเริ่มเพิกเฉยต่อการแจ้งเตือน แนวทางการแจ้งเตือนที่ดีควร:

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

แนวทางปฏิบัติที่ดี

สร้างระบบสังเกตการณ์ที่ใช้งานได้ยาวนาน:

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการตรวจสอบแบบรวมศูนย์ของคุณ

ทบทวน

ขณะนี้คุณสามารถตรวจสอบเซิร์ฟเวอร์ทั้งกลุ่มจากศูนย์กลางได้แล้ว:

  • เมทริก ผ่าน Prometheus ที่อ่านข้อมูลจาก node_exporter และสืบค้นด้วย PromQL
  • แดชบอร์ด ใน Grafana
  • บันทึก ที่ส่งไปยัง Loki ผ่าน Promtail
  • การแจ้งเตือน ด้วยกฎของ Prometheus และส่งต่อโดย Alertmanager

วิธีนี้ต่อยอดทักษะการจัดการบันทึกของเซิร์ฟเวอร์เดียวไปสู่การสังเกตการณ์ระบบทั้งกลุ่มเชิงรุก

คำถามที่พบบ่อย

บทเรียน “การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์”

ขยายการตรวจสอบให้ไกลกว่าการดูแลเซิร์ฟเวอร์เดียว ส่งเมตริกและบันทึกไปยังระบบส่วนกลาง สร้างแดชบอร์ด และกำหนดค่าการแจ้งเตือน เพื่อให้ทราบปัญหาก่อนผู้ใช้ คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เครื่องมือเฝ้าติดตามระบบ
  2. ทำความเข้าใจบันทึกระบบ
  3. การหมุนเวียนและจัดเก็บบันทึก
  4. การตรวจสอบและการแจ้งเตือนแบบรวมศูนย์
← กลับไปที่ Linux Server Deployment & SSH Mastery