Мониторинг сервера с помощью Python: Пинг и логирование результатов

При работе с сетью необходимо часто отслеживать доступность серверов и их отклик. Для автоматизации этого процесса можно воспользоваться простым скриптом на Python, который выполняет пинг сервера с заданным интервалом и записывает результаты в лог файл. Давайте рассмотрим пример такого скрипта.

Python-powered_hello-world_svg

Функциональность скрипта для мониторинга сервера

Скрипт принимает следующие параметры:

  • Путь к файлу лога
  • Пороговое значение для высокого пинга в миллисекундах
  • Интервал между пингами в секундах

При запуске скрипт запрашивает адрес пингуемого сервера. Далее выполняется бесконечный цикл, в котором происходит:

  1. Пинг сервера с использованием библиотеки ping3.
  2. Проверка значения пинга и вывод сообщения в консоль.
  3. Запись в лог при высоком значении пинга или потере пакета.
  4. Пауза на указанный интервал до следующего пинга.

Таким образом, скрипт обеспечивает непрерывный мониторинг сервера и фиксацию всех аномалий по времени.

Пример кода Python для мониторинга сервера

Установите библиотеку, если она у вас не установлена

pip install ping3

import time
from ping3 import ping

def ping_server(log_file_path, threshold=100, interval=1):
    """
    Пингует указанный сервер и записывает информацию о долгих пингах или потерянных пакетах в лог.

    :param log_file_path: Путь к файлу лога
    :param threshold: Пороговое значение для долгих пингов в миллисекундах
    :param interval: Интервал между пингами в секундах
    """
    server_address = input("Введите адрес сервера для пинга: ")
    print(f"Monitoring server: {server_address}")
    print(f"Logging to: {log_file_path}")
    print(f"Threshold for high ping: {threshold} ms")
    print(f"Ping interval: {interval} seconds")
    print("Press Ctrl+C to stop\n")

    with open(log_file_path, 'a') as log_file:
        try:
            while True:
                response_time = ping(server_address)

                    if response_time is not None:
                        if response_time > threshold:
                            print(f'{time.strftime("%Y-%m-%d %H:%M:%S")} - High ping: {response_time} ms')
                            log_file.write(f'{time.strftime("%Y-%m-%d %H:%M:%S")} - High ping: {response_time} ms\n')
                    else:
                        print(f'{time.strftime("%Y-%m-%d %H:%M:%S")} - Ping: {response_time} ms')
                else:
                    print(f'{time.strftime("%Y-%m-%d %H:%M:%S")} - Packet loss or error')

                time.sleep(interval)
        except KeyboardInterrupt:
            print("\nMonitoring stopped.")

# Измените настройки интервала между пингами и аномалиями в сети
ping_server('ping_log.txt', threshold=50, interval=5)

Этот простой скрипт позволяет автоматизировать мониторинг серверов с использованием пинга и сохранять журнал всех аномалий. Он может быть полезен для отслеживания проблем с доступностью или задержками сети. Удобство и простота Python делают его отличным выбором для таких задач.

Мониторинг сервера с помощью Python - Пинг и логирование результатов
Мониторинг сервера с помощью Python – Пинг и логирование результатов

Если вам лень что-то устанавливать и писать вы можете скачать готовый скрипт или exe файл.

=

Заключение

В наше время надежная работа серверов и поддержание стабильного соединения являются ключевыми аспектами для успешного функционирования информационных систем. Ping и мониторинг серверов становятся неотъемлемой частью задачи обеспечения непрерывной доступности ресурсов.

Данный скрипт на Python предоставляет простое и эффективное решение для автоматизации мониторинга сервера или ресурса. Его гибкость позволяет адаптировать скрипт под конкретные требования пользователя, а логирование результатов обеспечивает удобный способ анализа и выявления потенциальных проблем.

Преимущества использования данного скрипта включают простоту в настройке, наглядность вывода результатов и возможность быстрой реакции на возникающие аномалии. Кроме того, использование Python делает скрипт доступным для широкого круга пользователей, вне зависимости от уровня их опыта в программировании.

Надеемся, что представленный скрипт окажется полезным инструментом для тех, кто заботится о надежности своих серверов и стремится к оперативному выявлению возможных проблем в сети. Автоматизация мониторинга с использованием данного решения поможет улучшить проактивность в поддержке и обеспечит бесперебойную работу вашей инфраструктуры.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

Моя работа направлена на образование и распространение знаний в области информационных технологий, помогая другим расширять свои возможности и углублять понимание современных технологий.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.