Введение.
Многие люди пользуются телеграмм-ботами для отслеживания статуса майнинга идены, но эти боты зачастую дают ложные тревоги, при чем в самое неподходящее время. Но что бы получать точную и оперативную информаци о состоянии ноды не обязательно использовать непредсказуемых ботов, можно установить средства контроля непосредствнно на самом сервере.
Установка пакетов для отправки электронных сообщений.
Для разных ОС процедура установки будет немного отличатся. ВНИМАНИЕ: все команды в этом руководстве выполняются от пользователя root. В случае установки от другого пользователя для некоторых команд потребуется sudo или можно ввести команду sudo su и выполнять все команды от root.
Ubuntu: Для отправки сообщений устанавливаем пакет mailutils, в состав его уже входит postfix, который нам тоже потребуется.
apt install -y mailutils
В процессе установки появится окно конфигурации postfix, ничего не меняем, просто нажимаем клавишу "Enter". Кое что перенастроим:
postconf -e 'inet_interfaces=localhost'
postconf -e 'mydestination = localhost.$mydomain, localhost, $myhostname'
postconf -e 'inet_protocols = ipv4'
postconf -# relayhost
postconf -e 'smtputf8_enable = no'
postconf -e 'compatibility_level=2'
И перезапустим сервис:
systemctl restart postfix
CentOS: Для отправки сообщений устанавливаем пакеты:
yum install mailx
yum install postfix
Настройка и перезапуск Postfix:
postconf -e 'inet_interfaces=localhost'
postconf -e 'mydestination = localhost.$mydomain, localhost, $myhostname'
postconf -e 'inet_protocols = ipv4'
systemctl restart postfix
Теперь можно проверить протестировать отправку сообщений:
echo -e "У меня все хорошо!" | mail -s "Привет от сервера Idena" [email protected]
где [email protected] - адрес вашей электронной почты
Письма с сервера следует искать в спаме, так как антиспам система почтовых серверов автоматически помещает их туда.
Watcher Script.
Скрипт будет использовать JSON-парсер jq, так что установим его:
apt install -y jq
После успешной проверки переходим к созданию скрипта. Создадим скрипт watcher.sh
nano watcher.sh
cо следующим содержанием:
#!/bin/bash
PORT=9009
API_KEY="YOUR_API_KEY"
BASE_ADDR="YOUR_ADDR"
MY_MAIL="[email protected]"
DATA='{"method": "dna_identity","params":["'$ADDR'"],"id": 9,"key":"'$API_KEY'"}'
STATUS=$(curl http://127.0.0.1:$PORT -H "content-type:application/json;" -d "$DATA" | jq -r '.result.online')
if [ $STATUS = "false" ]; then
echo -e "ПРОВЕРЬ МАЙНИННГ!" | mail -s "Idena Server" $MY_MAIL
fi
где
PORT - api порт ноды, по умолчанию 9009
API_KEY - api.key локальной ноды идены
BASE_ADDR - адрес кошелька, за которым осуществляется надзор (не обязательно свой, следить можно за статусом любого адреса)
MY_MAIL - адрес электронной почты, на который будут отправляться тревожные сообщения.
И добавим разрешение на запуск:
chmod +x watcher.sh
Cron.
Теперь нужно создать расписание проверки работы майнинга. Сделаем это через удобный ниструмент - cron:
crontab -e
Добавим строку:
*/10 * * * * /root/watcher.sh
Что значит, скрипт будет исполнятся каждые 10 минут. В принципе, этого будет достаточно. Можно сократить перидичность проверки до 1 раза в 1 минуту:
* * * * * /root/watcher.sh
В моем случае скрипт находится в каталоге /root/watcher.sh, в вашем расположение может отличатся, обратите внимание в каком каталоге находится скрипт и скорректируйте строку согласно вашем пути.