Вопрос или проблема
Здравствуйте (я не hardcore программист:),
Я пытаюсь разработать скрипт для очень базового мониторинга на IBM SVC.
Моя цель – получить информацию о узлах и статусе кворума, а затем отправить эту информацию по электронной почте.
Вот мой код на данный момент (я понял, что команда grep не работает в CLI для SVC).
#проверить узлы кластера с помощью lsnodes и разобрать статус
ssh admin@SVCName superuser>svcinfo lsnode | while read id name sn wwnn status temp;do echo $name" "$status;done
#проверить статус кворума с помощью lsquorum и разобрать статус
ssh admin@SVCName superuser>svcinfo lsquorum | while read quorum_index status id name controller_id controller_name active temp; do echo $controller_name" "$active;done
Моя проблема – отправка электронной почты из CLI на заданные адреса. Я не могу найти ценную информацию где-либо в интернете.
ПОДСКАЗКА: этот скрипт будет развернут на сервере jumppoint (вероятно, на сервере Windows) в производстве, я не могу позволить установку какой-либо среды выполнения, такой как cigwin или perl или что-то еще).
Можете помочь мне с этим?
Вы можете попробовать эту функцию для реализации grep
на SVC или V7K Family
grep () { IFS=$'\n'; op='=='; if [[ $1 == '-v' ]]; then op='!='; shift; fi; while read l; do eval "[[ \$l $op *\$@* ]]" && echo $l; done }
И использовать как обычный grep с |
(пайп), имеет некоторые ограничения, но очень полезен.
Надеюсь, это поможет. Мое мнение.
Попробуйте это. Это плагин Nagios в виде скрипта на perl. Вам не нужно много знаний этого языка, чтобы использовать его. Просто запустите его без аргументов, чтобы получить справку. Если он не соответствует вашим требованиям, проверьте другие здесь.
Замечание: возможно, вам придется установить некоторые пакеты (особенно библиотеку perl для IBM SVC), чтобы это работало.
Ответ или решение
Мониторинг IBM V7000 с помощью скриптов: Решение для организации уведомлений электронной почты
В современной IT-инфраструктуре эффективный мониторинг хранилищ данных является важной задачей для обеспечения их надежности и производительности. В этой статье мы рассмотрим, как разработать скрипт для мониторинга IBM Storwize V7000 или IBM SVC (SAN Volume Controller) и как отправлять уведомления о состоянии через электронную почту.
1. Предварительная информация
Ваш скрипт на данный момент предназначен для получения информации о состоянии узлов кластера и о статусе кворума, и он использует команды svcinfo lsnode
и svcinfo lsquorum
. Чтобы отправить уведомления по электронной почте, необходимо будет интегрировать функциональность SMTP в ваш скрипт.
2. Подготовка скрипта для мониторинга
Ваша текущая команда для получения информации о узлах выглядит правильно. Однако, чтобы улучшить читаемость кода, я бы предложил добавить обработку ошибок и логирование для отслеживания выполнения скрипта:
#!/bin/bash
# Определяем адреса для уведомлений
EMAIL_RECIPIENTS="youremail@example.com"
SUBJECT="IBM V7000 Monitoring Report"
# Получаем список узлов и их статусы
NODES=$(ssh admin@SVCName superuser>svcinfo lsnode)
if [ $? -ne 0 ]; then
echo "Ошибка при получении информации об узлах." | mail -s "$SUBJECT" "$EMAIL_RECIPIENTS"
exit 1
fi
NODE_STATUS=""
echo "$NODES" | while read id name sn wwnn status temp; do
NODE_STATUS+="$name $status\n"
done
# Получаем статус кворума
QUORUM=$(ssh admin@SVCName superuser>svcinfo lsquorum)
if [ $? -ne 0 ]; then
echo "Ошибка при получении информации о кворуме." | mail -s "$SUBJECT" "$EMAIL_RECIPIENTS"
exit 1
fi
QUORUM_STATUS=""
echo "$QUORUM" | while read quorum_index status id name controller_id controller_name active temp; do
QUORUM_STATUS+="$controller_name $active\n"
done
# Формируем сообщение для отправки
MESSAGE="Статус узлов:\n$NODE_STATUS\n\nСтатус кворума:\n$QUORUM_STATUS"
echo -e "$MESSAGE" | mail -s "$SUBJECT" "$EMAIL_RECIPIENTS"
3. Установка отправки электронной почты
Поскольку вы находитесь на сервере с Windows и не можете установить дополнительные утилиты, возможно, вам потребуется использовать стандартные утилиты, доступные на сервере для отправки почты. Например, команда mail
может быть предустановлена, однако следует убедиться, что среда правильно настроена для отправки писем. Если она отсутствует, возможно, потребуется использовать другой способ, например, вызвать API для отправки почты или использовать сторонний SMTP-сервер.
В случае, если команда mail
недоступна, вы можете рассмотреть следующий вариант:
- Интеграция с SMTP-сервером посредством Python скрипта (если Python доступен). Пример кода:
import smtplib
from email.mime.text import MIMEText
recipient = "youremail@example.com"
subject = "IBM V7000 Monitoring Report"
body = "Здесь будет ваш текст сообщения."
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = "sender@example.com"
msg['To'] = recipient
with smtplib.SMTP('smtp.example.com', 587) as server:
server.starttls()
server.login('username', 'password') # Необходимо указать ваши учетные данные
server.sendmail(msg['From'], [msg['To']], msg.as_string())
4. Заключение
Создание скрипта для мониторинга IBM V7000 и отправка уведомлений по электронной почте может стать важной частью вашей системы мониторинга. Таким образом, вы сможете оперативно реагировать на возможные проблемы с узлами и кворумом. Храните свои скрипты в удобном месте, обеспечьте их безопасность и следите за логами их выполнения для дальнейшего анализа.
Этот пример призван помочь вам начать ваш путь к более сложным системам мониторинга и управления. Если у вас возникнут дальнейшие вопросы, не стесняйтесь обращаться за помощью.