การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน
รวบรวมตัวชี้วัดโหลด หน่วยความจำ และดิสก์ แล้วเรียกการแจ้งเตือนตามเกณฑ์จากสคริปต์ที่ตั้งเวลาไว้
การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดการตรวจสอบสถานะระบบจึงสำคัญ
เซิร์ฟเวอร์ระบบจริงอาจเสื่อมประสิทธิภาพลงโดยไม่มีสัญญาณให้เห็น CPU พุ่งสูง หน่วยความจำรั่ว และดิสก์เต็มล้วนทำให้บริการหยุดชะงักได้ — แต่จะเกิดปัญหาร้ายแรงก็ต่อเมื่อไม่มีใครสังเกตเห็นได้ทันเวลา สคริปต์ตรวจสอบสถานะระบบ จะทำให้กระบวนการตรวจสอบเป็นอัตโนมัติ โดยรวบรวมตัวชี้วัด เปรียบเทียบกับค่าเกณฑ์ และส่งการแจ้งเตือนก่อนที่ผู้ใช้จะได้รับผลกระทบ
- ตั้งเวลาให้ทำงานผ่าน
cronจึงทำงานทุกไม่กี่นาทีได้โดยไม่ต้องมีคนคอยดูแล - สร้างผลลัพธ์ที่สม่ำเสมอพร้อมเวลาประทับ เหมาะสำหรับการรวบรวมบันทึก
- ตรรกะที่อิงตามค่าเกณฑ์ช่วยให้การแจ้งเตือนมีความหมาย — ไม่ใช่ทุกความผิดปกติเล็กน้อยที่จะเรียกทีมเวรให้เข้ามาตรวจสอบ
ในบทเรียนนี้ คุณจะสร้างสคริปต์ตรวจสอบสถานะระดับใช้งานจริงตั้งแต่ต้น โดยเพิ่มความสามารถทีละชั้น ครอบคลุมค่าเฉลี่ยโหลด แรงกดดันด้านหน่วยความจำ และการใช้พื้นที่ดิสก์
การเก็บค่าเฉลี่ยโหลด
Linux แสดงค่าเฉลี่ยโหลดในช่วง 1 นาที 5 นาที และ 15 นาทีผ่าน /proc/loadavg และคำสั่ง uptime สำหรับการเขียนสคริปต์ /proc/loadavg เป็นแหล่งข้อมูลที่สะอาดที่สุด เพราะไม่มีปัญหาเรื่องภาษาหรือความแตกต่างในการแยกข้อมูลระหว่างดิสทริบิวชัน
โค้ดตัวอย่างด้านล่างอ่านค่าเฉลี่ยโหลดในช่วง 1 นาทีและเก็บไว้ในตัวแปรเพื่อเปรียบเทียบกับค่าเกณฑ์ cut จะแยกฟิลด์แรก ส่วน awk จะตัดส่วนทศนิยมออกเพื่อเปรียบเทียบเป็นจำนวนเต็ม โดยใช้ bc สำหรับการคำนวณจำนวนทศนิยม
#!/usr/bin/env bash
# Read 1-minute load average from /proc/loadavg
LOAD_RAW=$(cut -d' ' -f1 /proc/loadavg)
echo "Raw load average: $LOAD_RAW"
# Number of CPU cores — used to normalise load
CPU_CORES=$(nproc)
echo "CPU cores: $CPU_CORES"
# Compute load percentage (load / cores * 100) using bc
LOAD_PCT=$(echo "scale=2; $LOAD_RAW / $CPU_CORES * 100" | bc)
echo "Load %: $LOAD_PCT"การเปรียบเทียบกับค่าเกณฑ์แบบจำนวนทศนิยม
Bash ไม่สามารถเปรียบเทียบจำนวนทศนิยมได้โดยตรง — [ 1.5 -gt 1.2 ] จะทำให้เกิดข้อผิดพลาด วิธีที่ใช้กันทั่วไปมีสองแบบ:
bc— แสดงผลเป็น1(จริง) หรือ0(เท็จ) จากนิพจน์เปรียบเทียบawk— ประเมินเงื่อนไขแบบทศนิยมภายใน pipeline ได้
การใช้ bc ทำให้ตรรกะอ่านง่ายและทดสอบได้สะดวก รูปแบบ $(echo "$A > $B" | bc) จะคืนค่า 1 เมื่อเงื่อนไขเป็นจริง จากนั้นตรวจสอบด้วย [ ... -eq 1 ]
#!/usr/bin/env bash
LOAD_RAW=$(cut -d' ' -f1 /proc/loadavg)
CPU_CORES=$(nproc)
THRESHOLD=80 # alert when load % exceeds 80%
LOAD_PCT=$(echo "scale=2; $LOAD_RAW / $CPU_CORES * 100" | bc)
# bc returns 1 if the expression is true
if [ "$(echo "$LOAD_PCT > $THRESHOLD" | bc)" -eq 1 ]; then
echo "ALERT: Load is ${LOAD_PCT}% (threshold ${THRESHOLD}%)"
else
echo "OK: Load is ${LOAD_PCT}%"
fiการเก็บตัวชี้วัดหน่วยความจำ
/proc/meminfo เป็นแหล่งข้อมูลหลักสำหรับสถิติหน่วยความจำบน Linux ฟิลด์สำคัญมีดังนี้:
MemTotal— RAM ทางกายภาพทั้งหมด หน่วยเป็น kBMemAvailable— kB โดยประมาณที่พร้อมสำหรับการจัดสรรใหม่โดยไม่ต้องสลับหน่วยความจำ (ดีกว่าMemFree)
การใช้ awk ร่วมกับการจับคู่รูปแบบเป็นวิธีที่สะอาดที่สุดในการดึงค่าเหล่านี้ การนำ MemAvailable หารด้วย MemTotal แล้วลบออกจาก 100 จะได้ เปอร์เซ็นต์หน่วยความจำที่ใช้งานอยู่ ซึ่งใช้กำหนดค่าเกณฑ์การแจ้งเตือน
#!/usr/bin/env bash
# Extract memory figures from /proc/meminfo (values in kB)
MEM_TOTAL=$(awk '/^MemTotal:/ {print $2}' /proc/meminfo)
MEM_AVAIL=$(awk '/^MemAvailable:/ {print $2}' /proc/meminfo)
# Used memory percentage
MEM_USED_PCT=$(echo "scale=2; (1 - $MEM_AVAIL / $MEM_TOTAL) * 100" | bc)
echo "Total RAM : ${MEM_TOTAL} kB"
echo "Available : ${MEM_AVAIL} kB"
echo "Used : ${MEM_USED_PCT}%"การเก็บตัวชี้วัดการใช้ดิสก์
คำสั่ง df รายงานการใช้ระบบไฟล์ สำหรับการเขียนสคริปต์ แฟล็กสองรายการมีความสำคัญดังนี้:
-h— แสดงขนาดที่อ่านเข้าใจง่าย (ใช้สำหรับแสดงผลเท่านั้น หลีกเลี่ยงเมื่อนำไปคำนวณ)--output=pcent,target— คอลัมน์ที่แยกวิเคราะห์ด้วยเครื่องได้ (GNU coreutils)
การวนซ้ำผ่านระบบไฟล์ที่เมานต์ทั้งหมดช่วยให้สคริปต์ตรวจพบพาร์ติชันที่เต็มจนอยู่ในระดับวิกฤติได้ ไม่ใช่เพียง / เท่านั้น เครื่องหมาย % จะถูกลบด้วย tr -d '%' ก่อนเปรียบเทียบจำนวนเต็ม
#!/usr/bin/env bash
DISK_THRESHOLD=85
# Skip header line with tail -n +2
# --output=pcent,target gives "85% /var" style lines
df --output=pcent,target | tail -n +2 | while read -r USED_PCT MOUNT; do
# Remove the % sign for arithmetic
USED_INT=${USED_PCT//%/}
if [ "$USED_INT" -ge "$DISK_THRESHOLD" ]; then
echo "ALERT: Disk $MOUNT is ${USED_PCT} full"
else
echo "OK : Disk $MOUNT is ${USED_PCT} full"
fi
doneเอาต์พุตการแจ้งเตือนแบบมีโครงสร้างพร้อมเวลาประทับ
ข้อความแจ้งเตือนที่ไม่มีเวลาประทับแทบไม่มีประโยชน์ในไฟล์บันทึกหรือรายงานทางอีเมล คำนำหน้าที่สม่ำเสมอช่วยให้แยกวิเคราะห์บันทึกด้วย grep หรือตัวแทนส่งบันทึกได้ง่าย
กำหนด ฟังก์ชันแจ้งเตือน ขนาดเล็กไว้ด้านบนของสคริปต์ ฟังก์ชันนี้จะเติมเวลาประทับแบบ ISO-8601 ระดับความรุนแรง และชื่อการตรวจสอบไว้ด้านหน้า การแจ้งเตือนทั้งหมดจะเขียนทั้งไปยัง stdout และไฟล์บันทึกผ่าน tee
date -u +"%Y-%m-%dT%H:%M:%SZ"— เวลาประทับ UTC ที่ไม่ขึ้นกับภาษา- เขียน ALERT ไปยัง
stderrและเขียน OK ไปยังstdoutเพื่อแยกสัญญาณสำคัญออกจากข้อมูลรบกวนใน pipeline
#!/usr/bin/env bash
LOG_FILE="/var/log/healthcheck.log"
alert() {
local LEVEL="$1" # OK | WARN | ALERT
local CHECK="$2"
local MSG="$3"
local TS
TS=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
local LINE="[$TS] [$LEVEL] [$CHECK] $MSG"
if [ "$LEVEL" = "ALERT" ]; then
echo "$LINE" | tee -a "$LOG_FILE" >&2
else
echo "$LINE" | tee -a "$LOG_FILE"
fi
}
# Usage examples
alert "OK" "DISK" "/ is 42% full"
alert "ALERT" "DISK" "/var is 91% full"การส่งการแจ้งเตือนทางอีเมลด้วย mail และ sendmail
กลไกการแจ้งเตือนบนเซิร์ฟเวอร์ที่ง่ายที่สุดคืออีเมลผ่าน MTA ภายในเครื่อง (postfix, sendmail หรือ msmtp) คำสั่ง mail (จาก mailutils หรือ bsd-mailx) จะจัดทำและส่งข้อความได้ภายในบรรทัดเดียว
-s— บรรทัดหัวเรื่อง- ส่งเนื้อหาผ่าน
stdin - ในเซิร์ฟเวอร์ที่ไม่มี MTA ภายในเครื่อง ให้แทนที่
mailด้วยการเรียกcurlไปยัง API อีเมลธุรกรรม
ควบคุมการส่งด้วย ล็อกป้องกันการส่งซ้ำ เพื่อไม่ให้เงื่อนไขที่เกิดถี่เกินไปส่งอีเมลเข้าไปจนล้นกล่องจดหมาย
#!/usr/bin/env bash
ALERT_EMAIL="ops@example.com"
LOCK_DIR="/tmp/healthcheck_locks"
mkdir -p "$LOCK_DIR"
send_alert() {
local CHECK="$1"
local MSG="$2"
local LOCK="$LOCK_DIR/${CHECK}.lock"
# Only send if no lock exists (prevents repeated emails within the hour)
if [ ! -f "$LOCK" ]; then
echo "$MSG" | mail -s "[ALERT] $CHECK on $(hostname)" "$ALERT_EMAIL"
touch "$LOCK"
# Lock expires after 1 hour via cron or find+delete
echo "Alert sent for $CHECK"
else
echo "Alert suppressed for $CHECK (lock active)"
fi
}
send_alert "HIGH_LOAD" "Load average exceeded 80% on $(hostname) at $(date)"การประกอบสคริปต์ตรวจสอบสุขภาพฉบับสมบูรณ์
ตอนนี้ให้รวมการตรวจสอบทั้งสามอย่าง ได้แก่ โหลด หน่วยความจำ และดิสก์ เข้าด้วยกันเป็นสคริปต์เดียวที่มีโครงสร้างชัดเจน โดยกำหนดเกณฑ์ที่ปรับเปลี่ยนได้ไว้ด้านบน นี่คือรูปแบบที่ใช้ในการทำงานอัตโนมัติด้านการดูแลระบบในสภาพแวดล้อมจริง:
- ประกาศค่าคงที่ไว้ด้านบน เพื่อปรับค่าได้ง่ายโดยไม่ต้องแก้ตรรกะ
- แยกการตรวจสอบแต่ละอย่างไว้ในฟังก์ชัน เพื่อให้อ่านง่ายและทดสอบแบบหน่วยได้
- ให้ฟังก์ชัน
mainควบคุมการเรียกใช้ฟังก์ชันต่าง ๆ - ใช้รหัสออกเป็น
1หากมีการแจ้งเตือนใด ๆ เกิดขึ้น และเป็น0ในกรณีอื่น ทำให้สามารถนำสคริปต์ไปประกอบการทำงานร่วมกับเฟรมเวิร์กตรวจสอบอย่าง Nagios/Icinga ได้
#!/usr/bin/env bash
set -euo pipefail
# ── Thresholds ───────────────────────────────────────────
LOAD_THRESHOLD=80 # percent of CPU capacity
MEM_THRESHOLD=90 # percent used
DISK_THRESHOLD=85 # percent used
ALERT_EMAIL="ops@example.com"
LOG_FILE="/var/log/healthcheck.log"
ALERT_FIRED=0
# ── Helpers ──────────────────────────────────────────────
ts() { date -u +"%Y-%m-%dT%H:%M:%SZ"; }
log() { echo "[$(ts)] $*" | tee -a "$LOG_FILE"; }
alert() { log "ALERT: $*"; echo "$*" | mail -s "[ALERT] $(hostname)" "$ALERT_EMAIL" 2>/dev/null; ALERT_FIRED=1; }
# ── Checks ───────────────────────────────────────────────
check_load() {
local raw cores pct
raw=$(cut -d' ' -f1 /proc/loadavg)
cores=$(nproc)
pct=$(echo "scale=2; $raw / $cores * 100" | bc)
if [ "$(echo "$pct > $LOAD_THRESHOLD" | bc)" -eq 1 ]; then
alert "Load ${pct}% exceeds ${LOAD_THRESHOLD}%"
else
log "OK load=${pct}%"
fi
}
check_memory() {
local total avail pct
total=$(awk '/^MemTotal:/ {print $2}' /proc/meminfo)
avail=$(awk '/^MemAvailable:/{print $2}' /proc/meminfo)
pct=$(echo "scale=2; (1 - $avail / $total) * 100" | bc)
if [ "$(echo "$pct > $MEM_THRESHOLD" | bc)" -eq 1 ]; then
alert "Memory ${pct}% used (threshold ${MEM_THRESHOLD}%)"
else
log "OK memory=${pct}%"
fi
}
check_disk() {
df --output=pcent,target | tail -n +2 | while read -r used mnt; do
local pct_int=${used//%/}
if [ "$pct_int" -ge "$DISK_THRESHOLD" ]; then
alert "Disk $mnt at ${used}"
else
log "OK disk $mnt=${used}"
fi
done
}
main() {
log "=== Health check START ==="
check_load
check_memory
check_disk
log "=== Health check END (alerts=$ALERT_FIRED) ==="
exit "$ALERT_FIRED"
}
mainการตั้งเวลาทำงานด้วย Cron
สคริปต์ตรวจสอบสุขภาพจะมีประโยชน์ก็ต่อเมื่อทำงานโดยอัตโนมัติ cron เป็นตัวจัดตารางเวลามาตรฐานของ Unix ให้แก้ไข crontab ของทั้งระบบ หรือไฟล์เฉพาะใน /etc/cron.d/ เพื่อกำหนดเวลาทำงานของสคริปต์
- ทำงานทุก 5 นาที:
*/5 * * * * - ใช้ เส้นทางแบบสมบูรณ์ใน cron เสมอ เพราะ
$PATHในสภาพแวดล้อมของ cron มีค่าเพียงเล็กน้อย - เปลี่ยนเส้นทางเอาต์พุตเพื่อป้องกันไม่ให้ cron ส่งอีเมลทุกครั้งที่ทำงาน:
>> /var/log/healthcheck.log 2>&1 - ใส่
MAILTO=""ไว้ด้านบนของ crontab เพื่อปิดอีเมลที่ cron ส่งเอง
# /etc/cron.d/healthcheck
# Run the health check every 5 minutes as root
MAILTO=""
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/5 * * * * root /usr/local/sbin/healthcheck.sh >> /var/log/healthcheck.log 2>&1ป้องกันการแจ้งเตือนถี่เกินไปด้วยล็อกหน่วงเวลา
เมื่อค่าเกณฑ์ถูกละเมิดต่อเนื่อง สคริปต์แบบง่าย ๆ จะส่งการแจ้งเตือนทุก 5 นาที ทำให้มีอีเมลหลายสิบฉบับก่อนที่วิศวกรจะตอบสนองได้ ล็อกหน่วงเวลาจะระงับการแจ้งเตือนซ้ำภายในช่วงเวลาที่กำหนดได้
รูปแบบการทำงานคือ เขียนไฟล์ล็อกเมื่อเกิดการแจ้งเตือนครั้งแรก ข้ามการแจ้งเตือนครั้งถัดไปตราบใดที่ไฟล์ยังใหม่กว่าระยะเวลาหน่วง และใช้ find ร่วมกับ -mmin เพื่อตรวจสอบอายุไฟล์แบบเป็นอะตอมิกโดยไม่ต้องคำนวณวันที่
#!/usr/bin/env bash
LOCK_DIR="/tmp/hc_locks"
COOLDOWN_MIN=60 # suppress repeat alerts for 60 minutes
mkdir -p "$LOCK_DIR"
should_alert() {
local check="$1"
local lock="$LOCK_DIR/${check}.lock"
if [ ! -f "$lock" ]; then
# No lock — allow alert and create lock
touch "$lock"
return 0 # true: send alert
fi
# Lock exists — check if it is older than the cooldown
# find returns the filename only if it's OLDER than COOLDOWN_MIN
local expired
expired=$(find "$lock" -mmin +"$COOLDOWN_MIN" 2>/dev/null)
if [ -n "$expired" ]; then
touch "$lock" # refresh lock timestamp
return 0 # cooldown expired — allow alert
fi
return 1 # still within cooldown — suppress
}
# Usage
if should_alert "HIGH_LOAD"; then
echo "Sending load alert..."
# mail -s "..." ops@example.com <<< "Load too high"
else
echo "Load alert suppressed (cooldown active)"
fiการทดสอบและตรวจสอบความถูกต้องของสคริปต์ตรวจสอบสุขภาพ
ก่อนนำไปใช้งานจริง ให้ตรวจสอบสคริปต์สามวิธีดังนี้:
- ตรวจสอบไวยากรณ์:
bash -n healthcheck.shตรวจจับข้อผิดพลาดในการแยกวิเคราะห์โดยไม่เรียกใช้สคริปต์ - โหมดติดตามการทำงาน:
bash -x healthcheck.shแสดงทุกคำสั่งขณะทำงาน ซึ่งมีประโยชน์อย่างมากสำหรับการแก้ไขข้อบกพร่อง - แทนที่ค่าเกณฑ์: ลดค่าเกณฑ์ลงชั่วคราวให้เกือบเป็นศูนย์ เพื่อให้สคริปต์แจ้งเตือนบนเครื่องที่มีสุขภาพดี และยืนยันว่าเส้นทางการแจ้งเตือนทำงานตั้งแต่ต้นจนจบ
สำหรับเส้นทางการส่งอีเมล ให้เปลี่ยนเส้นทาง mail ไปยังไฟล์บันทึกระหว่างการทดสอบ โดยใช้แฟล็ก MOCK_MAIL:
#!/usr/bin/env bash
# Smoke-test the alert path without sending real email
MOCK_MAIL=true
ALERT_EMAIL="ops@example.com"
send_mail() {
local subject="$1"
local body="$2"
if [ "$MOCK_MAIL" = true ]; then
echo "[MOCK MAIL] To: $ALERT_EMAIL | Subject: $subject"
echo "[MOCK MAIL] Body: $body"
else
echo "$body" | mail -s "$subject" "$ALERT_EMAIL"
fi
}
# Override threshold to guarantee an alert fires
LOAD_THRESHOLD=0 # Any load will exceed 0%
LOAD_RAW=$(cut -d' ' -f1 /proc/loadavg)
CPU_CORES=$(nproc)
PCT=$(echo "scale=2; $LOAD_RAW / $CPU_CORES * 100" | bc)
if [ "$(echo "$PCT > $LOAD_THRESHOLD" | bc)" -eq 1 ]; then
send_mail "[ALERT] Load on $(hostname)" "Load is ${PCT}%"
fiตรวจสอบความรู้: กลยุทธ์การหน่วงเวลา
ลองพิจารณาสถานการณ์ต่อไปนี้ งาน cron สำหรับตรวจสอบสุขภาพของคุณทำงานทุก 5 นาที การใช้งานดิสก์ที่ /var เกิน 85% และคงอยู่เช่นนั้นเป็นเวลา 3 ชั่วโมง คุณต้องการให้วิศวกรเวรได้รับการแจ้งเตือน ชั่วโมงละครั้ง ไม่ใช่ทุก 5 นาที กลยุทธ์การใช้งานใดเหมาะสมที่สุด
สรุปบทเรียน: สคริปต์ตรวจสอบสุขภาพระบบ
ในบทเรียนนี้ คุณได้สร้างกระบวนการประมวลผลต่อเนื่องสำหรับตรวจสอบสุขภาพระบบและแจ้งเตือนที่พร้อมใช้งานจริงอย่างสมบูรณ์ หลักการสำคัญที่ควรนำไปใช้ต่อมีดังนี้:
- แหล่งข้อมูลหลัก: อ่านตัวชี้วัดจาก
/proc/loadavgและ/proc/meminfoเพราะมีรูปแบบคงที่ ไม่ขึ้นกับภาษา และพร้อมใช้งานบนเครื่อง Linux ทุกเครื่อง - การคำนวณเลขทศนิยม: ใช้
bcสำหรับเปรียบเทียบค่าเกณฑ์แบบเลขทศนิยม การเปรียบเทียบจำนวนเต็มของ Bash (-gt) ใช้ได้เฉพาะจำนวนเต็มเท่านั้น - การวนตรวจสอบดิสก์: ใช้
df --output=pcent,targetเพื่อตรวจสอบระบบไฟล์ที่เมานต์อยู่ทุกระบบ ไม่ใช่เพียง/ - การบันทึกข้อมูลอย่างมีโครงสร้าง: เติมเวลาประทับ UTC และระดับความรุนแรงไว้หน้าทุกบรรทัด เพื่อให้ค้นหาบันทึกได้ง่ายด้วย grep และส่งต่อไปยังระบบบันทึกข้อมูลส่วนกลางได้อย่างเรียบร้อย
- ล็อกหน่วงเวลา: ไฟล์ล็อกที่ตรวจสอบด้วย
find -mminช่วยป้องกันการแจ้งเตือนถี่เกินไปโดยไม่ต้องเปลี่ยนตารางเวลา cron - การนำไปประกอบการทำงาน: จบการทำงานด้วยรหัส
1เมื่อมีการแจ้งเตือนใด ๆ เกิดขึ้น เพื่อให้สคริปต์ทำงานร่วมกับ Nagios, Icinga หรือเฟรมเวิร์กตรวจสอบอื่น ๆ ได้ - การทดสอบ: ใช้
bash -nตรวจสอบไวยากรณ์ ใช้bash -xติดตามการแก้ไขข้อบกพร่อง และใช้แฟล็กMOCK_MAILตรวจสอบเส้นทางการแจ้งเตือนบนเครื่องที่มีสุขภาพดี
ตั้งเวลาสคริปต์ที่เสร็จสมบูรณ์ผ่าน /etc/cron.d/ แล้วโครงสร้างพื้นฐานของคุณจะตรวจสอบตัวเองอย่างต่อเนื่อง พร้อมแจ้งเตือนเฉพาะเมื่อค่าเกณฑ์ถูกละเมิดอย่างมีนัยสำคัญ
คำถามที่พบบ่อย
บทเรียน “การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน”
รวบรวมตัวชี้วัดโหลด หน่วยความจำ และดิสก์ แล้วเรียกการแจ้งเตือนตามเกณฑ์จากสคริปต์ที่ตั้งเวลาไว้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การทำงานอัตโนมัติสำหรับการจัดเตรียมผู้ใช้และกลุ่ม
- การควบคุมบริการ systemd และการเขียนไฟล์ยูนิต
- การทำงานอัตโนมัติด้านดิสก์ ระบบไฟล์ และการเมานต์
- การสร้างสคริปต์ตรวจสอบสุขภาพระบบและแจ้งเตือน