hldns.ru на openwrt
Устанавливаем:
opkg update
opkg install ddns-scripts
opkg install luci-app-ddns
Пользовательский URL обновления
http://hldns.ru/update/***
Имя хоста
***.hldns.ru
Принудительно обновлять каждые 12ч.
konditerov.ru
Устанавливаем:
opkg update
opkg install ddns-scripts
opkg install luci-app-ddns
Пользовательский URL обновления
http://hldns.ru/update/***
Имя хоста
***.hldns.ru
Принудительно обновлять каждые 12ч.
/system/core.php
Комментируем
if($_SERVER['SERVER_PORT']!=<часть кода удалена>. $_SERVER['SERVER_PORT'];
Открываем файл .htaccess и после
RewriteEngine on
Добавляем две строки:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Чистим кэш
После дополнительно нужно очистить кэш, эту процедуру можно выполнить при помощи ввода адреса domain.ru/@sync/
В итоге мы получаем автоматический 301 редирект на https с любой страницы сайта, с приставкой https.
Домашний роутер с OpenWRT на борту вещь хорошая, но иногда случаются неприятные моменты.
У меня было пару раз что не выдавались по DHCP IP адреса, лечилось перезагрузкой. Чтобы избежать разных «боков» я решил сделать автоматическую перезагрузку, если нет интернета. Т. е. пингуем гугл и яндекс, если не пингуется — перезагружаемся.
Заходим:
*/30 * * * * /root/ping.sh
В каждые 10 минут нового часа (каждый час)
10 */1 * * * /root/ping.sh
ping.sh:
#!/bin/sh
echo --------------- --------------- --------------- --
echo WAN CONTROLL RESTART
echo --------------- --------------- --------------- --
PINGRESORCE1="ya.ru"
PINGRESORCE3="google.com"
if (! ping -q -c3 ${PINGRESORCE1} > /dev/null 2>&1)
then
if (! ping -q -c3 ${PINGRESORCE2} > /dev/null 2>&1)
then
reboot
else
echo 'internet ok'
fi
else
echo 'internet ok'
fi
Создаём нового пользователя:
sudo useradd -m backupuser
Даём ему пароль:
sudo passwd backupuser
Добавляем ему sudo:
usermod -a -G sudo backupuser
Заходим под другим пользователем и в терминале пошагово выполняем следующие операции:
Получаем рутовую консоль:
sudo -i
или
sudo su
Убиваем все оставшиеся процессы пользователя, которого хотим переименовать:
killall -u old
Смотрим ID пользователя и его группы:
id old
Меняем имя пользователя:
usermod -l new old
Меняем его группу:
groupmod -n new old
Перемещаем домашний каталог:
usermod -d /home/new -m new
Сверяем ID с теми, которые получены ранее:
id new
Поле установки сервер мониторинга Zabbix не настроен на отправку уведомлений о сработавших триггерах. Более того, штатный функционал по отправке оповещений на email не умеет авторизовываться на почтовом сервере. То есть вы сможете использовать эту возможность только если у вас есть свой собственный почтовый сервер, на котором вы разрешите заббиксу отправлять уведомления без авторизации.
Использовать в такой ситуации публичные сервера не получится. Это неудобно и не практично. Мне зачастую не хочется возиться с настройкой почтового сервера, гораздо удобнее и быстрее воспользоваться готовым. Этим мы и займемся далее — научим zabbix отправлять email уведомления с авторизацией на smtp сервере.
Для отправки уведомлений на почту с помощью smtp авторизации нам понадобится почтовый клиент ssmtp. Установим его:
sudo apt-get install -y ssmtp
Теперь нужно настроить почтовый клиент на отправку писем через указанную учетную запись. Для этого открываем файл /etc/ssmtp/ssmtp.conf и приводим его к следующему виду для отправки через почтовый сервер Яндекса:
sudo mcedit ssmtp.conf
root=zabbix@zeroxzed.ru mailhub=smtp.yandex.ru:465 AuthUser=zabbix@zeroxzed.ru AuthPass=password AuthMethod=LOGIN FromLineOverride=YES UseTLS=YES RewriteDomain=zeroxzed.ru Hostname=zeroxzed.ru Debug=YES TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
В данном примере я использую почтовый домен zeroxzed.ru, он у меня прикреплен к Яндексу и обслуживается им. Если у вас обычный почтовый ящик, используйте адрес вида mailbox@yandex.ru.
Если вы хотите использовать учетную запись gmail то настройки ssmtp должны быть следующие:
root=mailbox@gmail.com mailhub=smtp.gmail.com:587 RewriteDomain=gmail.com AuthUser=mailbox AuthPass=parolchik Hostname=gmail.com UseSTARTTLS=YES AuthMethod=LOGIN FromLineOverride=YES UseTLS=YES Debug=YES TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
И редактируем там же файл revaliases, добавляя одну строку для яндекса:
root:zabbix@zeroxzed.ru:smtp.yandex.ru:465
И для gmail:
root:mailbox@gmail.com:smtp.gmail.com:587
Теперь проверим работу почтового клиента. Отправляем через консоль тестовое письмо:
echo «test_message» | ssmtp -v zeroxzed@gmail.com [<-] 220 smtp3m.mail.yandex.net ESMTP [->] EHLO zeroxzed.ru [<-] 250 ENHANCEDSTATUSCODES [->] AUTH LOGIN [<-] 334 VXNlcb5hbDU6 [->] emFiYml4QEplcm94tmVkLnJ1 [<-] 334 UGFzR3dvc2Q6 [<-] 235 2.7.0 Authentication successful. [->] MAIL FROM:[<-] 250 2.1.0 ok [->] RCPT TO: [<-] 250 2.1.5 recipient ok [->] DATA [<-] 354 Enter mail, end with "." on a line by itself [->] Received: by zeroxzed.ru (sSMTP sendmail emulation); Thu, 05 Nov 2015 18:32:18 +0300 [->] From: «root» [->] Date: Thu, 05 Nov 2015 18:32:18 +0300 [->] test_message [->] [->] . [<-] 250 2.0.0 Ok: queued on smtp3m.mail.yandex.net as 1446737539-AXVW9QixF9-WJAWKNV9 [->] QUIT [<-] 221 2.0.0 Closing connection.
Когда писал статью, не думал, что мне будут приходить на почту тестовые письма. Но долгое время не мог понять, что за сообщения с текстом test_message периодически прилетают в почту. Теперь понял, что это копипастом с этой статьи люди мне шлют тестовые письма. Не забывайте менять адрес получателя, мне ваши тестовые письма ни к чему :)
Все в порядке, письмо улетело. Если что, логи работы почтового клиента можно посмотреть в файле /var/log/maillog.
Отправлять почтовые уведомления из zabbix будем с помощью скрипта. Первым делом выясним, где наш заббикс хранит скрипты для оповещений. Для этого открываем файл конфигурации и ищем там строку AlertScriptsPath:
cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath AlertScriptsPath=/usr/lib/zabbix/alertscripts
Идем в указанную папку и создаем там скрипт отправки уведомлений на почту:
mcedit /usr/lib/zabbix/alertscripts/mail.sh
#!/bin/sh export smtpemailfrom=zabbix@zeroxzed.ru echo «To: $1» > /tmp/mymailinput echo «Subject: $2» >> /tmp/mymailinput echo «Content-Type: text/plain; charset=»utf-8»» >> /tmp/mymailinput echo «From: \«Zabbix Zeroxzed\«<$smtpemailfrom>» >> /tmp/mymailinput echo «» >> /tmp/mymailinput echo «$3» >> /tmp/mymailinput /usr/sbin/ssmtp $1 -F $smtpemailfrom < /tmp/mymailinput
Не забудьте указать свой почтовый адрес и поле отправителя From. Сохраняем скрипт и делаем его исполняемым:
chmod 0777 mail.sh
Заполняем необходимые параметры как на картинке:
Name | |
Type | Script |
Script name | mail.sh |
Сохраняем настройки, нажав Update. Дальше идем в раздел Administration -> Users. Меняем отображение с групп на пользователей:
Нажимаем на пользователя Admin и переходим на вкладку Media, там жмем на add. Откроется окно добавления источника оповещений. Заполняем как на картинке:
Нажимаем Update. Затем в разделе Media пользователя Admin еще раз жмем Update для применения настроек:
Теперь последний штрих, который лично я частенько забываю сделать, а потом долго разбираюсь, почему zabbix не отправляет оповещения на почту. Идем в раздел Configuration -> Actions и в единственной строке Report problems to Zabbix administrators жмем на Disabled в столбце статус, чтобы он стал Enabled:
Теперь все готово. Надо ждать срабатывания тригера и проверять почту. После срабатывания тригера и отправки заббиксом письма, в системном почтовом логе /var/log/maillog должны появиться записи об этом.
Отсюда: http://serveradmin.ru/nastroyka-email-opoveshheniy-v-zabbix/
sudo dpkg-reconfigure console-setup
UTF-8 → Cyrillic — KOI8-R and KOI8-U → Fixed → далее как есть.