При работе с сетью необходимо часто отслеживать доступность серверов и их отклик. Для автоматизации этого процесса можно воспользоваться простым скриптом на Python, который выполняет пинг сервера с заданным интервалом и записывает результаты в лог файл. Давайте рассмотрим пример такого скрипта.
Функциональность скрипта для мониторинга сервера
Скрипт принимает следующие параметры:
- Путь к файлу лога
- Пороговое значение для высокого пинга в миллисекундах
- Интервал между пингами в секундах
При запуске скрипт запрашивает адрес пингуемого сервера. Далее выполняется бесконечный цикл, в котором происходит:
- Пинг сервера с использованием библиотеки ping3.
- Проверка значения пинга и вывод сообщения в консоль.
- Запись в лог при высоком значении пинга или потере пакета.
- Пауза на указанный интервал до следующего пинга.
Таким образом, скрипт обеспечивает непрерывный мониторинг сервера и фиксацию всех аномалий по времени.
Пример кода 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 делают его отличным выбором для таких задач.
Если вам лень что-то устанавливать и писать вы можете скачать готовый скрипт или exe файл.
- Скачать скрипт пинг — https://disk.yandex.ru/d/xdQWFeOqKz-_dA
- Скачать скрипт в .exe для Win10 — https://disk.yandex.ru/d/UsAdhzmYoQlFFQ
Заключение
В наше время надежная работа серверов и поддержание стабильного соединения являются ключевыми аспектами для успешного функционирования информационных систем. Ping и мониторинг серверов становятся неотъемлемой частью задачи обеспечения непрерывной доступности ресурсов.
Данный скрипт на Python предоставляет простое и эффективное решение для автоматизации мониторинга сервера или ресурса. Его гибкость позволяет адаптировать скрипт под конкретные требования пользователя, а логирование результатов обеспечивает удобный способ анализа и выявления потенциальных проблем.
Преимущества использования данного скрипта включают простоту в настройке, наглядность вывода результатов и возможность быстрой реакции на возникающие аномалии. Кроме того, использование Python делает скрипт доступным для широкого круга пользователей, вне зависимости от уровня их опыта в программировании.
Надеемся, что представленный скрипт окажется полезным инструментом для тех, кто заботится о надежности своих серверов и стремится к оперативному выявлению возможных проблем в сети. Автоматизация мониторинга с использованием данного решения поможет улучшить проактивность в поддержке и обеспечит бесперебойную работу вашей инфраструктуры.