πŸ–₯️ Плагин Nagios для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ использования памяти Π½Π° Linux

Π’ соврСмСнной ИВ-инфраструктурС обСспСчСниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСров Π½Π° ΠΏΡ€Π΅Π΄Π΅Π»Π΅ ΠΈΡ… возмоТностСй ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для поддСрТания работоспособности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы.

Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… аспСктов управлСния сСрвСрами являСтся ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ использования памяти.

Высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ использования памяти ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ замСдлСнию Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы ΠΈ Π΄Π°ΠΆΠ΅ сбоям.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΡ‹ прСдставляСм эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° памяти:

Bash-скрипт, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для запуска ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ с Nagios, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ инструмСнтом ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π­Ρ‚ΠΎΡ‚ скрипт (https://github.com/tecrahul/nagios-plugins/blob/main/check_memory.sh) – ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ силы сотрудничСства с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

ВдохновлСнная Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ, доступной Π½Π° GitHub, эта ΡΡ‚Π°Ρ‚ΡŒΡ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности скрипта , прСдлагая руководство ΠΏΠΎ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ настройкС для вашСй срСды ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Nagios.

πŸ–§ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° сСтСвых ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° Linux

Π—Π°Ρ‡Π΅ΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ использованиС памяти?

ΠŸΠ°ΠΌΡΡ‚ΡŒ – это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ рСсурс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прилоТСния ΠΈ процСссы ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π‘Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠ΅ ΠΈΠ»ΠΈ свопингу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ использования памяти ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΄ΠΎ ΠΈΡ… обострСния, обСспСчивая Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ОбъяснСниС скрипта

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Bash ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ использования памяти Π² систСмС Π² соотвСтствии с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ значСниями.

Если объСм памяти ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ эти ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Π΅ значСния, сцСнарий запускаСт прСдупрСТдСния, позволяя систСмным администраторам ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΌΡΠ³Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ послСдствия.

#!/bin/bash



# ==============================================================================

# SCRIPT: check_memory.sh

# AUTHOR: Rahul Kumar

# COPYRIGHT: tecadmin.net

# DESCRIPTION:

#   This script is designed to monitor and report on system memory usage. It

#   allows for warning and critical thresholds to be set for memory usage

#   percentages, providing alerts based on the specified criteria. The script

#   supports output in different units (Bytes, Kilobytes, Megabytes, Gigabytes)

#   for flexible monitoring requirements. This utility is particularly useful

#   for system administrators and monitoring tools like Nagios to keep an eye

#   on system health and perform proactive maintenance.

# 

# USAGE:

#   ./check_memory.sh [ -w  ] [ -c  ] [ -u  ]

#   -w, --warning=INTEGER[%]   Warning threshold as a percentage of used memory.

#   -c, --critical=INTEGER[%]  Critical threshold as a percentage of used memory.

#   -u, --unit=UNIT            Unit to use for output (b, K, M, G). Default: M

# 

# EXAMPLES:

#   ./check_memory.sh -w 80 -c 90 -u M

#   This command sets a warning threshold at 80% memory usage and a critical

#   threshold at 90%, with output in Megabytes.

# ==============================================================================



PROGNAME="check_memory"

VERSION='1.0'

FREECMD='/usr/bin/free'

UNIT='M' # Default unit

WARNING_THRESHOLD=80

CRITICAL_THRESHOLD=90



# Function to show usage

usage() {

  echo "Usage: $0 [ -w  ] [ -c  ] [ -u  ]"

  echo "   -w, --warning=INTEGER[%]   Warning threshold as a percentage of used memory."

  echo "   -c, --critical=INTEGER[%]  Critical threshold as a percentage of used memory."

  echo "   -u, --unit=UNIT            Unit to use for output (b, K, M, G). Default: $UNIT"

  exit 3

}



# Parse command line options

while getopts ":w:c:u:" opt; do

  case $opt in

    w) WARNING_THRESHOLD="$OPTARG" ;;

    c) CRITICAL_THRESHOLD="$OPTARG" ;;

    u) UNIT="$OPTARG" ;;

    ?) usage ;;

  esac

done



# Function to convert memory to the specified unit

convert_memory() {

  local memory=$1

  case $UNIT in

    b) echo $memory ;;

    K) echo $((memory / 1024)) ;;

    M) echo $((memory / 1024 / 1024)) ;;

    G) echo $((memory / 1024 / 1024 / 1024)) ;;

    *) echo "Error: Unknown unit $UNIT. Must be one of 'b', 'K', 'M', 'G'."; exit 3 ;;

  esac

}



# Extract memory data

total_bytes=$(grep MemTotal /proc/meminfo | awk '{print $2 * 1024}')

free_bytes=$(grep MemFree /proc/meminfo | awk '{print $2 * 1024}')

buffers_bytes=$(grep Buffers /proc/meminfo | awk '{print $2 * 1024}')

cached_bytes=$(grep "^Cached" /proc/meminfo | awk '{print $2 * 1024}')

available_bytes=$((free_bytes + buffers_bytes + cached_bytes))



# Convert to specified unit

total=$(convert_memory $total_bytes)

available=$(convert_memory $available_bytes)



# Calculate used memory

used=$(convert_memory $((total_bytes - available_bytes)))



# Calculate usage percentage

usage_percentage=$((100 - (available * 100 / total)))



# Compare usage against thresholds

if [ "$usage_percentage" -ge "$CRITICAL_THRESHOLD" ]; then

  echo "CRITICAL: Memory usage is above critical threshold ($CRITICAL_THRESHOLD%). $used$UNIT used ($usage_percentage% of total)."

  exit 2

elif [ "$usage_percentage" -ge "$WARNING_THRESHOLD" ]; then

  echo "WARNING: Memory usage is above warning threshold ($WARNING_THRESHOLD%). $used$UNIT used ($usage_percentage% of total)."

  exit 1

else

  echo "OK: Memory usage is within bounds. $used$UNIT used ($usage_percentage% of total)."

  exit 0

fi


ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности

  • ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Π΅ прСдупрСТдСния: ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ критичСскиС ΡƒΡ€ΠΎΠ²Π½ΠΈ для использования памяти Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ… ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ объСма памяти.
  • Π“ΠΈΠ±ΠΊΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния: ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΠΉΡ‚Π΅ использованиС памяти Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ вашим потрСбностям Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅.
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Nagios: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Nagios, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Руководство ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

  • Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скрипт: ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скрипт ΠΈΠ· рСпозитория GitHub.
  • ΠŸΡ€Π°Π²Π°: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ скрипт являСтся исполняСмым, запустив Π΅Π³ΠΎ:

chmodΒ +xΒ check_memory.sh

  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Nagios: Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ сцСнарий Π² срСду ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Nagios. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Nagios, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π½Π° сцСнарий, ΠΈ настройтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ слуТб Π½Π° ΡƒΠ·Π»Π°Ρ… для использования этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ NRPE: Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° памяти Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ… Linux ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот скрипт с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ NRPE. Π’ΠΎΠ³Π΄Π° сСрвСр Nagios смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ скрипт ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ.
  • ВСстированиС: ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ скрипт Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ запускаСт оповСщСния Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидаСтся. ΠŸΡ€ΠΈ нСобходимости настройтС ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Π΅ значСния ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ настройки ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Nagios

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипт с сСрвСром Nagios для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° памяти локального экзСмпляра.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Nagios:

define command{

    command_name check_memory_usage

    command_line /path/to/check_memory.sh -w $ARG1$ -c $ARG2$ -u $ARG3$

}

Π—Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² опрСдСлСниях слуТб для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° использования памяти Π½Π° хостС Nagios.

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ /path/to/ Π½Π° фактичСский ΠΏΡƒΡ‚ΡŒ ΠΊ скрипту.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° NRPE.

Nagios SNMP-ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ хостов Linux Π½Π° AlienVault USM / OSSIM

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ NRPE

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипт ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° памяти с Nagios Ρ‡Π΅Ρ€Π΅Π· NRPE (Nagios Remote Plugin Executor), Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ„Π°ΠΉΠ» nrpe.cfg Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ хостС, Π³Π΄Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ NRPE. Π­Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ NRPE, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ скрипт ΠΏΠΎ запросу сСрвСра Nagios.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° NRPE: Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π½ΠΈΠΆΠ΅ запись Π² Ρ„Π°ΠΉΠ» nrpe.cfg, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ скрипт ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° памяти:

command[check_memory]=/usr/lib/nagios/plugins/check_memory.sh -w 80 -c 90 -u M


НастройтС сСрвСр Nagios: На сСрвСрС Nagios ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ слуТбу, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ check_nrpe для запроса выполнСния check_memory Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ хостС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ опрСдСлСния слуТбы ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:



define service{

    use generic-service

    host_name remote_host_name

    service_description Memory Usage

    check_command check_nrpe!check_memory

}


Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ remote_host_name Π½Π° имя хоста, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Nagios.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ памяти являСтся ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ для поддСрТания ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот скрипт Bash, систСмныС администраторы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ рСсурсами памяти, гарантируя, Ρ‡Ρ‚ΠΎ сСрвСры останутся Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌΠΈ.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ скрипта с Nagios ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ, обСспСчивая Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° памяти Π² любой ИВ-инфраструктурС.

β›…Β ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ хостов Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π° Nagios check_by_ssh

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° слоТныС систСмы для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвисов, Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ этот скрипт, становятся бСсцСнными Π² нашСм Π½Π°Π±ΠΎΡ€Π΅ срСдств ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π•Π³ΠΎ простота Π² сочСтании с ΠΌΠΎΡ‰ΡŒΡŽ Nagios ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простой, Π½ΠΎ эффСктивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ использования памяти, помогая ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² систСмС Π΄ΠΎ ΠΈΡ… возникновСния.

см. Ρ‚Π°ΠΊΠΆΠ΅:



2024-02-21T12:55:07
Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹

Π”Ρ€ΡƒΠ·ΡŒΡ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ этому ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒ доступнСС Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈ ΠΌΠΈΠΌΠΎ ΠΆΠΌΠ°ΠΊΠ½ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½!