По директориям раскидал
This commit is contained in:
@ -53,6 +53,7 @@ services:
|
|||||||
- GOTIFY_SERVER_SSL_ENABLED=true
|
- GOTIFY_SERVER_SSL_ENABLED=true
|
||||||
- GOTIFY_SERVER_SSL_CERTFILE=/certs/gotify.crt
|
- GOTIFY_SERVER_SSL_CERTFILE=/certs/gotify.crt
|
||||||
- GOTIFY_SERVER_SSL_CERTKEY=/certs/gotify.key
|
- GOTIFY_SERVER_SSL_CERTKEY=/certs/gotify.key
|
||||||
|
- GIN_MODE=debug
|
||||||
networks:
|
networks:
|
||||||
- gotify-net
|
- gotify-net
|
||||||
|
|
||||||
@ -206,7 +206,8 @@ sudo pdnsutil add-record locust.ge @ NS 3600 ns2.geovizor.top
|
|||||||
|
|
||||||
For deleting record please run command:
|
For deleting record please run command:
|
||||||
```sh
|
```sh
|
||||||
pdnsutil delete-rrset locust.ge locust.ge.locust.ge NS
|
sudo pdnsutil delete-rrset locust.ge locust.ge.locust.ge NS
|
||||||
|
sudo pdnsutil delete-rrset geovizor.top gotify A
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@ -223,7 +224,7 @@ Minimum = 3600 (1 час)
|
|||||||
Проверим список зон
|
Проверим список зон
|
||||||
```sh
|
```sh
|
||||||
sudo pdnsutil list-all-zones &&
|
sudo pdnsutil list-all-zones &&
|
||||||
sudo pdnsutil list-zone locust.kz
|
sudo pdnsutil list-zone geovizor.top
|
||||||
```
|
```
|
||||||
Проверяем отвечалет ли:
|
Проверяем отвечалет ли:
|
||||||
```sh
|
```sh
|
||||||
@ -364,7 +365,7 @@ journalctl -u pdns-recursor --no-pager | tail -n 50
|
|||||||
```
|
```
|
||||||
|
|
||||||
----------------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------------
|
||||||
## ********** По идее отключать не нужно так как systemd-resolved использует другой IP: 127.0.0.54:53 (Отключаю systemd-resolved иначе он будет конфликтовать с PowerDNS) **********
|
## ********** По идее systemd-resolved отключать не нужно так как он использует другой IP: 127.0.0.54:53 **********
|
||||||
|
|
||||||
Редактирую /etc/netplan/ для того чтобы прописать поднятый DNS сервер на 127.0.0.1 (не знаю сработает ли так как отключу systemd-resolved)
|
Редактирую /etc/netplan/ для того чтобы прописать поднятый DNS сервер на 127.0.0.1 (не знаю сработает ли так как отключу systemd-resolved)
|
||||||
```sh
|
```sh
|
||||||
@ -613,7 +614,7 @@ open http://192.168.200.85:9191/login
|
|||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------------
|
||||||
Настраиваем запус на постоянную работу через Gunicorn и systemd
|
Настраиваем запуск на постоянную работу через Gunicorn и systemd
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd /opt/web/powerdns-admin &&
|
cd /opt/web/powerdns-admin &&
|
||||||
|
|||||||
52
DNS/Ubuntu_config.md
Normal file
52
DNS/Ubuntu_config.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
Чтобы в Ubuntu все домены с маской *.local отправлялись на DNS-сервер 192.168.200.85 (где работает PowerDNS на порту 53), тебе нужно настроить DNS-резолвинг так, чтобы:
|
||||||
|
|
||||||
|
Все запросы к доменам, оканчивающимся на .local, отправлялись на указанный DNS.
|
||||||
|
|
||||||
|
Остальные домены резолвились через системный DNS как обычно.
|
||||||
|
|
||||||
|
✅ Способ 1: Использовать systemd-resolved (рекомендуется для Ubuntu 18.04+, особенно 20.04 и 22.04)
|
||||||
|
Ubuntu по умолчанию использует systemd-resolved, который поддерживает пер-доменное направление DNS-запросов.
|
||||||
|
|
||||||
|
Шаги:
|
||||||
|
Создай файл в /etc/systemd/resolved.conf.d/:
|
||||||
|
```sh
|
||||||
|
ssh igor@192.168.200.84 -p 22
|
||||||
|
```
|
||||||
|
|
||||||
|
Создаю директорию
|
||||||
|
```sh
|
||||||
|
sudo mkdir -p /etc/systemd/resolved.conf.d &&
|
||||||
|
sudo mcedit /etc/systemd/resolved.conf.d/local-dns.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Прописываю содержимое:
|
||||||
|
```conf
|
||||||
|
[Resolve]
|
||||||
|
DNS=192.168.200.85
|
||||||
|
Domains=~local
|
||||||
|
```
|
||||||
|
|
||||||
|
Перезапускаю
|
||||||
|
```sh
|
||||||
|
sudo systemctl restart systemd-resolved &&
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверяю настройки
|
||||||
|
```sh
|
||||||
|
resolvectl status
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверяем
|
||||||
|
```sh
|
||||||
|
ping gotify.local
|
||||||
|
```
|
||||||
|
Проверяем сертификат:
|
||||||
|
```sh
|
||||||
|
curl https://gotify.local
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавляем корневой сертификат для домена local.
|
||||||
|
```sh
|
||||||
|
sudo cp rootCA.crt /usr/local/share/ca-certificates/rootCA.crt &&
|
||||||
|
sudo update-ca-certificates
|
||||||
|
```
|
||||||
171
Logs/Vector_dev_install.md
Normal file
171
Logs/Vector_dev_install.md
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
# Настройка Vector для отправки логов в Gotify
|
||||||
|
|
||||||
|
Эта инструкция описывает, как установить Vector, настроить его для чтения JSON-логов из файла `/opt/org_ccalm_main/logs/ccalm.log`, фильтрации строк с уровнем `ERROR` и отправки уведомлений в Gotify.
|
||||||
|
|
||||||
|
---
|
||||||
|
## 0. ✅ Подключаемся к инфраструктуре
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh igor@ccalm.org -p 2200
|
||||||
|
```
|
||||||
|
|
||||||
|
## Предварительные требования
|
||||||
|
- ОС: Ubuntu/Debian (для других ОС уточните, чтобы адаптировать команды).
|
||||||
|
- Файл логов: `/opt/org_ccalm_main/logs/ccalm.log` с JSON-строками (поля `level` и `message`).
|
||||||
|
- Gotify: Доступный сервер Gotify с URL и токеном (например, `https://gotify.example.com/message?token=<your-token>`).
|
||||||
|
- Доступ к терминалу с правами `sudo`.
|
||||||
|
|
||||||
|
|
||||||
|
## Шаг 1: Установка Vector
|
||||||
|
|
||||||
|
Пробуем скачать deb пакет с сайта
|
||||||
|
```sh
|
||||||
|
curl -L https://packages.timber.io/vector/0.43.1/vector_0.43.1-1_amd64.deb -o vector_0.43.1-1_amd64.deb &&
|
||||||
|
sudo dpkg -i vector_0.43.1-1_amd64.deb &&
|
||||||
|
sudo apt-get install -f &&
|
||||||
|
vector --version
|
||||||
|
```
|
||||||
|
|
||||||
|
## Шаг 2: Создание конфигурации Vector
|
||||||
|
Vector использует YAML для конфигурации. Настроим чтение логов, фильтрацию `ERROR` и отправку в Gotify.
|
||||||
|
|
||||||
|
1. Создайте файл конфигурации `/etc/vector/vector.yaml`:
|
||||||
|
```sh
|
||||||
|
cd /etc/vector &&
|
||||||
|
sudo tee vector.yaml > /dev/null <<'EOF'
|
||||||
|
data_dir: "/var/lib/vector"
|
||||||
|
|
||||||
|
sources:
|
||||||
|
ccalm_logs:
|
||||||
|
type: file
|
||||||
|
include:
|
||||||
|
- /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
read_from: beginning
|
||||||
|
|
||||||
|
transforms:
|
||||||
|
parse_json:
|
||||||
|
type: remap
|
||||||
|
inputs:
|
||||||
|
- ccalm_logs
|
||||||
|
source: |
|
||||||
|
structured, err = parse_json(.message)
|
||||||
|
if err != null {
|
||||||
|
abort
|
||||||
|
}
|
||||||
|
merged, err = merge(., structured)
|
||||||
|
if err != null {
|
||||||
|
abort
|
||||||
|
}
|
||||||
|
. = merged
|
||||||
|
|
||||||
|
filter_errors:
|
||||||
|
type: filter
|
||||||
|
inputs:
|
||||||
|
- parse_json
|
||||||
|
condition: '.level == "ERROR"'
|
||||||
|
|
||||||
|
format_telegram_json:
|
||||||
|
type: remap
|
||||||
|
inputs:
|
||||||
|
- filter_errors
|
||||||
|
source: |
|
||||||
|
msg, err = string(.message)
|
||||||
|
if err != null {
|
||||||
|
msg = "Unable to parse message"
|
||||||
|
}
|
||||||
|
.message = "{\"title\":\"CCALM Main Error Log\",\"message\":\"ERROR: " + msg + "\"}"
|
||||||
|
|
||||||
|
|
||||||
|
sinks:
|
||||||
|
gotify:
|
||||||
|
type: http
|
||||||
|
inputs:
|
||||||
|
- filter_errors
|
||||||
|
uri: "https://gotify.geovizor.top:8443/message?token=AYmcpr43YtPKDmZ"
|
||||||
|
method: post
|
||||||
|
encoding:
|
||||||
|
codec: json
|
||||||
|
template: '{"title":"CCALM Main Error Log","message":"Test message 00","priority":5}'
|
||||||
|
request:
|
||||||
|
headers:
|
||||||
|
Content-Type: "application/json"
|
||||||
|
Host: "gotify.geovizor.top"
|
||||||
|
Content-Length: "{{ content_length }}"
|
||||||
|
tls:
|
||||||
|
verify_certificate: false
|
||||||
|
verify_hostname: false
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Пробую отправку через curl
|
||||||
|
```sh
|
||||||
|
curl -X POST -k "https://gotify.geovizor.top:8443/message?token=AYmcpr43YtPKDmZ" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"message": "Test message", "priority": 5}'
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Проверяем что gotify работает:
|
||||||
|
```sh
|
||||||
|
curl -k -X POST -H "Content-Type: application/json" -H "Host: gotify.geovizor.top" -d '{"message":"Test message 00","priority":5}' --http1.1 https://gotify.geovizor.top:8443/message?token=AYmcpr43YtPKDmZ -v
|
||||||
|
```
|
||||||
|
|
||||||
|
### Объяснение конфигурации
|
||||||
|
- **Source (`ccalm_logs`)**: Читает логи из файла, парсит JSON, поддерживает многострочные логи.
|
||||||
|
- **Transform (`filter_errors`)**: Фильтрует логи с `level: "ERROR"`.
|
||||||
|
- **Sink (`gotify`)**: Отправляет отфильтрованные логи в Gotify через HTTP POST.
|
||||||
|
|
||||||
|
## Шаг 3: Проверка конфигурации
|
||||||
|
Проверьте корректность YAML:
|
||||||
|
```sh
|
||||||
|
vector --config /etc/vector/vector.yaml validate
|
||||||
|
```
|
||||||
|
Ожидаемый вывод: `Configuration is valid`.
|
||||||
|
|
||||||
|
## Шаг 4: Запуск Vector
|
||||||
|
### Тестовый запуск (для отладки)
|
||||||
|
```sh
|
||||||
|
sudo vector --config /etc/vector/vector.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Запуск как сервиса
|
||||||
|
1. Включите и запустите сервис:
|
||||||
|
```sh
|
||||||
|
sudo systemctl enable vector
|
||||||
|
sudo systemctl start vector
|
||||||
|
```
|
||||||
|
2. Проверьте статус:
|
||||||
|
```sh
|
||||||
|
sudo systemctl status vector
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Шаг 5: Проверка отправки в Gotify
|
||||||
|
1. Убедитесь, что Gotify доступен по указанному URL.
|
||||||
|
2. Добавьте тестовую строку лога в `/opt/org_ccalm_main/logs/ccalm.log`:
|
||||||
|
```sh
|
||||||
|
echo '{"level": "ERROR", "message": "Database connection failed", "timestamp": "2025-05-18T12:28:00Z"}' | sudo tee -a /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
```
|
||||||
|
3. Проверьте Gotify (веб-интерфейс или приложение) — должно прийти уведомление с заголовком "CCALM Log Error" и сообщением "Database connection failed".
|
||||||
|
|
||||||
|
## Шаг 6: Отладка
|
||||||
|
- Логи Vector: `/var/log/vector/vector.log` или stdout (в тестовом режиме).
|
||||||
|
- Проверьте логи при проблемах:
|
||||||
|
```sh
|
||||||
|
cat /var/log/vector/vector.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## Дополнительные настройки
|
||||||
|
- **Права доступа к файлу логов**:
|
||||||
|
```sh
|
||||||
|
sudo chown vector:vector /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
sudo chmod 644 /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
```
|
||||||
|
- **Если JSON-формат отличается**: Если поле `level` называется иначе (например, `log_level`), замените `.level` на `.log_level` в `condition`.
|
||||||
|
- **HTTP вместо HTTPS**: Если Gotify использует HTTP, замените `https://` на `http://` в `uri`.
|
||||||
|
|
||||||
|
## Примечания
|
||||||
|
- Убедитесь, что Gotify настроен и токен действителен.
|
||||||
|
- Если логи не отправляются, проверьте сетевую доступность Gotify и правильность URL/токена.
|
||||||
|
- Для чтения только новых логов удалите `read_from: beginning` в конфигурации.
|
||||||
197
Logs/Vector_dev_install_telegram.md
Normal file
197
Logs/Vector_dev_install_telegram.md
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
Шаг 1: Создание Telegram-бота
|
||||||
|
Зарегистрируйте бота через BotFather:
|
||||||
|
|
||||||
|
Откройте Telegram и найдите @BotFather.
|
||||||
|
Отправьте команду /start.
|
||||||
|
Отправьте /newbot, чтобы создать нового бота.
|
||||||
|
Следуйте инструкциям:
|
||||||
|
Укажите имя бота (например, MyLogBot).
|
||||||
|
Укажите username бота, заканчивающийся на bot (например, @MyLogAllBot).
|
||||||
|
После создания вы получите токен (например, 8007457609:AAGnrXOSaoxODMSh4yCzUEIp0uxfH3Hk8ws). Сохраните его, он понадобится для API.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Настройка Vector для отправки логов в Gotify
|
||||||
|
|
||||||
|
Эта инструкция описывает, как установить Vector, настроить его для чтения JSON-логов из файла `/opt/org_ccalm_main/logs/ccalm.log`, фильтрации строк с уровнем `ERROR` и отправки уведомлений в Gotify.
|
||||||
|
|
||||||
|
---
|
||||||
|
## 0. ✅ Подключаемся к инфраструктуре
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh igor@ccalm.org -p 2200
|
||||||
|
```
|
||||||
|
|
||||||
|
## Предварительные требования
|
||||||
|
- ОС: Ubuntu/Debian (для других ОС уточните, чтобы адаптировать команды).
|
||||||
|
- Файл логов: `/opt/org_ccalm_main/logs/ccalm.log` с JSON-строками (поля `level` и `message`).
|
||||||
|
- Gotify: Доступный сервер Gotify с URL и токеном (например, `https://gotify.example.com/message?token=<your-token>`).
|
||||||
|
- Доступ к терминалу с правами `sudo`.
|
||||||
|
|
||||||
|
|
||||||
|
## Шаг 1: Установка Vector
|
||||||
|
|
||||||
|
Пробуем скачать deb пакет с сайта
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl -L https://packages.timber.io/vector/0.46.X/vector_0.46.1-1_amd64.deb -o vector_0.46.1-1_amd64.deb &&
|
||||||
|
sudo dpkg -i vector_0.46.1-1_amd64.deb &&
|
||||||
|
sudo apt-get install -f &&
|
||||||
|
vector --version
|
||||||
|
```
|
||||||
|
|
||||||
|
That make deleting:
|
||||||
|
```sh
|
||||||
|
sudo apt remove --purge vector
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Шаг 2: Создание конфигурации Vector
|
||||||
|
Vector использует YAML для конфигурации. Настроим чтение логов, фильтрацию `ERROR` и отправку в Gotify.
|
||||||
|
|
||||||
|
1. Создайте файл конфигурации `/etc/vector/vector.yaml`:
|
||||||
|
```sh
|
||||||
|
cd /etc/vector &&
|
||||||
|
sudo tee vector.yaml > /dev/null <<'EOF'
|
||||||
|
data_dir: "/var/lib/vector"
|
||||||
|
|
||||||
|
sources:
|
||||||
|
ccalm_logs:
|
||||||
|
type: file
|
||||||
|
include:
|
||||||
|
- /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
read_from: beginning
|
||||||
|
|
||||||
|
transforms:
|
||||||
|
parse_json:
|
||||||
|
type: remap
|
||||||
|
inputs:
|
||||||
|
- ccalm_logs
|
||||||
|
source: |
|
||||||
|
structured, err = parse_json(.message)
|
||||||
|
if err != null {
|
||||||
|
abort
|
||||||
|
}
|
||||||
|
merged, err = merge(., structured)
|
||||||
|
if err != null {
|
||||||
|
abort
|
||||||
|
}
|
||||||
|
. = merged
|
||||||
|
|
||||||
|
filter_errors:
|
||||||
|
type: filter
|
||||||
|
inputs:
|
||||||
|
- parse_json
|
||||||
|
condition: '.level == "ERROR"'
|
||||||
|
|
||||||
|
format_telegram_json:
|
||||||
|
type: remap
|
||||||
|
inputs:
|
||||||
|
- filter_errors
|
||||||
|
source: |
|
||||||
|
msg, err = string(.message)
|
||||||
|
if err != null {
|
||||||
|
msg = "Unable to parse message"
|
||||||
|
}
|
||||||
|
.message = "{\"chat_id\":\"307675888\",\"text\":\"ERROR: " + msg + "\"}"
|
||||||
|
|
||||||
|
sinks:
|
||||||
|
telegram:
|
||||||
|
type: http
|
||||||
|
inputs:
|
||||||
|
- format_telegram_json
|
||||||
|
uri: "https://api.telegram.org/bot8007457609:AAGnrXOSaoxODMSh4yCzUEIp0uxfH3Hk8ws/sendMessage"
|
||||||
|
method: post
|
||||||
|
encoding:
|
||||||
|
codec: text
|
||||||
|
request:
|
||||||
|
headers:
|
||||||
|
Content-Type: "application/json"
|
||||||
|
batch:
|
||||||
|
max_events: 1
|
||||||
|
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
curl https://api.telegram.org/bot8007457609:AAGnrXOSaoxODMSh4yCzUEIp0uxfH3Hk8ws/getUpdates
|
||||||
|
|
||||||
|
|
||||||
|
Пробую отправку через curl
|
||||||
|
```sh
|
||||||
|
curl -X POST -k "https://gotify.geovizor.top:8443/message?token=AYmcpr43YtPKDmZ" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"message": "Test message", "priority": 5}'
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Проверяем что gotify работает:
|
||||||
|
```sh
|
||||||
|
curl -k -X POST -H "Content-Type: application/json" -H "Host: gotify.geovizor.top" -d '{"message":"Test message 00","priority":5}' --http1.1 https://gotify.geovizor.top:8443/message?token=AYmcpr43YtPKDmZ -v
|
||||||
|
```
|
||||||
|
|
||||||
|
### Объяснение конфигурации
|
||||||
|
- **Source (`ccalm_logs`)**: Читает логи из файла, парсит JSON, поддерживает многострочные логи.
|
||||||
|
- **Transform (`filter_errors`)**: Фильтрует логи с `level: "ERROR"`.
|
||||||
|
- **Sink (`gotify`)**: Отправляет отфильтрованные логи в Gotify через HTTP POST.
|
||||||
|
|
||||||
|
## Шаг 3: Проверка конфигурации
|
||||||
|
Проверьте корректность YAML:
|
||||||
|
```sh
|
||||||
|
vector --config /etc/vector/vector.yaml validate
|
||||||
|
```
|
||||||
|
Ожидаемый вывод: `Configuration is valid`.
|
||||||
|
|
||||||
|
## Шаг 4: Запуск Vector
|
||||||
|
### Тестовый запуск (для отладки)
|
||||||
|
```sh
|
||||||
|
sudo vector --config /etc/vector/vector.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Запуск как сервиса
|
||||||
|
1. Включите и запустите сервис:
|
||||||
|
```sh
|
||||||
|
sudo systemctl enable vector
|
||||||
|
sudo systemctl start vector
|
||||||
|
```
|
||||||
|
2. Проверьте статус:
|
||||||
|
```sh
|
||||||
|
sudo systemctl status vector
|
||||||
|
```
|
||||||
|
```sh
|
||||||
|
sudo systemctl stop vector
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Шаг 5: Проверка отправки в Gotify
|
||||||
|
1. Убедитесь, что Gotify доступен по указанному URL.
|
||||||
|
2. Добавьте тестовую строку лога в `/opt/org_ccalm_main/logs/ccalm.log`:
|
||||||
|
```sh
|
||||||
|
echo '{"level": "ERROR", "message": "Database connection failed", "timestamp": "2025-05-18T12:28:00Z"}' | sudo tee -a /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
```
|
||||||
|
3. Проверьте Gotify (веб-интерфейс или приложение) — должно прийти уведомление с заголовком "CCALM Log Error" и сообщением "Database connection failed".
|
||||||
|
|
||||||
|
## Шаг 6: Отладка
|
||||||
|
- Логи Vector: `/var/log/vector/vector.log` или stdout (в тестовом режиме).
|
||||||
|
- Проверьте логи при проблемах:
|
||||||
|
```sh
|
||||||
|
cat /var/log/vector/vector.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## Дополнительные настройки
|
||||||
|
- **Права доступа к файлу логов**:
|
||||||
|
```sh
|
||||||
|
sudo chown vector:vector /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
sudo chmod 644 /opt/org_ccalm_main/logs/ccalm.log
|
||||||
|
```
|
||||||
|
- **Если JSON-формат отличается**: Если поле `level` называется иначе (например, `log_level`), замените `.level` на `.log_level` в `condition`.
|
||||||
|
- **HTTP вместо HTTPS**: Если Gotify использует HTTP, замените `https://` на `http://` в `uri`.
|
||||||
|
|
||||||
|
## Примечания
|
||||||
|
- Убедитесь, что Gotify настроен и токен действителен.
|
||||||
|
- Если логи не отправляются, проверьте сетевую доступность Gotify и правильность URL/токена.
|
||||||
|
- Для чтения только новых логов удалите `read_from: beginning` в конфигурации.
|
||||||
@ -19,27 +19,33 @@ sudo apt-get install nginx -y
|
|||||||
```
|
```
|
||||||
Самой важной строкой является Common Name (введите FQDN или свое имя). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, внесите в эту строку IP-адрес сервера.
|
Самой важной строкой является Common Name (введите FQDN или свое имя). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, внесите в эту строку IP-адрес сервера.
|
||||||
```sh
|
```sh
|
||||||
sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096
|
sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048
|
||||||
```
|
```
|
||||||
|
|
||||||
И вписываем в него:
|
И вписываем в него:
|
||||||
```sh
|
```sh
|
||||||
cd /etc/nginx/sites-available/ &&
|
cd /etc/nginx/sites-available/ &&
|
||||||
sudo tee ccalm.org > /dev/null <<'EOF'
|
sudo tee ccalm.org > /dev/null <<'EOF'
|
||||||
server {
|
server {
|
||||||
listen 8081 ssl http2;
|
listen 8081;
|
||||||
listen [::]:8081 ssl http2;
|
listen [::]:8081;
|
||||||
|
|
||||||
server_name ccalm.org;
|
|
||||||
|
|
||||||
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
|
|
||||||
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
|
|
||||||
ssl_dhparam /etc/nginx/dhparam.pem;
|
|
||||||
|
|
||||||
root /opt/www/org_ccalm;
|
root /opt/www/org_ccalm;
|
||||||
index index.html index.htm;
|
index index.html;
|
||||||
|
|
||||||
|
server_name ccalm.org www.ccalm.org;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ =404; # Попытка найти файл или возвращение 404
|
try_files $uri $uri/ =404;
|
||||||
|
|
||||||
|
# Оптимизация для быстрой отдачи статики
|
||||||
|
sendfile on; # Использует sendfile() ядра Linux для ускорения
|
||||||
|
tcp_nopush off; # Отключает задержку Nagle (если нужна мгновенная отправка)
|
||||||
|
}
|
||||||
|
location ~ /index\.html$ {
|
||||||
|
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate";
|
||||||
|
add_header Pragma "no-cache";
|
||||||
|
add_header Expires 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@ -50,8 +56,6 @@ EOF
|
|||||||
sudo ln -s /etc/nginx/sites-available/ccalm.org /etc/nginx/sites-enabled/
|
sudo ln -s /etc/nginx/sites-available/ccalm.org /etc/nginx/sites-enabled/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo systemctl restart nginx
|
sudo systemctl restart nginx
|
||||||
```
|
```
|
||||||
|
|||||||
@ -22,7 +22,7 @@ sudo apt install -y docker.io docker-compose
|
|||||||
```
|
```
|
||||||
|
|
||||||
Вставьте следующий конфигурационный файл:
|
Вставьте следующий конфигурационный файл:
|
||||||
|
В кодфиге прописан корневой сертификат чтобы node.js ему доверял
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
uptime-kuma:
|
uptime-kuma:
|
||||||
@ -33,6 +33,9 @@ services:
|
|||||||
- "3001:3001"
|
- "3001:3001"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
|
- /usr/local/share/ca-certificates:/usr/local/share/ca-certificates:ro
|
||||||
|
environment:
|
||||||
|
- NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/rootCA.crt
|
||||||
```
|
```
|
||||||
|
|
||||||
## 4. Запуск контейнера
|
## 4. Запуск контейнера
|
||||||
@ -63,4 +66,3 @@ start http://192.168.200.84:3001
|
|||||||
```
|
```
|
||||||
|
|
||||||
Готово! Uptime Kuma установлен и запущен в Docker на Ubuntu 24.04. 🚀
|
Готово! Uptime Kuma установлен и запущен в Docker на Ubuntu 24.04. 🚀
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ stats auth igor:i123456
|
|||||||
````
|
````
|
||||||
Также можно в журнале посмотреть что написал HAProxy:
|
Также можно в журнале посмотреть что написал HAProxy:
|
||||||
```sh
|
```sh
|
||||||
sudo journalctl -u haproxy --no-pager | tail -n 50
|
sudo journalctl -u haproxy --no-pager -n 50 -f
|
||||||
````
|
````
|
||||||
Перезагружаем:
|
Перезагружаем:
|
||||||
```sh
|
```sh
|
||||||
@ -1,8 +1,10 @@
|
|||||||
|
С внешки во внутрянную инфраструктуру подключаемся через HAProxy а уже внутри использую Traefik
|
||||||
|
|
||||||
Открываю нужный сервер
|
Открываю нужный сервер
|
||||||
```sh
|
```sh
|
||||||
wsl
|
wsl
|
||||||
```
|
```
|
||||||
Или такой:
|
Открывает traefik на 192.168.200.85:
|
||||||
```sh
|
```sh
|
||||||
ssh igor@192.168.200.85 -p 22
|
ssh igor@192.168.200.85 -p 22
|
||||||
```
|
```
|
||||||
@ -155,6 +157,13 @@ http:
|
|||||||
service: local_powerdns
|
service: local_powerdns
|
||||||
tls: {}
|
tls: {}
|
||||||
|
|
||||||
|
gotify:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
rule: "Host(`gotify.local`)"
|
||||||
|
service: local_gotify
|
||||||
|
tls: {}
|
||||||
|
|
||||||
middlewares:
|
middlewares:
|
||||||
strip-auth-prefix:
|
strip-auth-prefix:
|
||||||
stripPrefix:
|
stripPrefix:
|
||||||
@ -180,6 +189,16 @@ http:
|
|||||||
path: "/"
|
path: "/"
|
||||||
interval: "5s"
|
interval: "5s"
|
||||||
|
|
||||||
|
# Бэкенд для local_gotify
|
||||||
|
local_gotify:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- url: "https://192.168.200.84:8080"
|
||||||
|
serversTransport: insecureTransport
|
||||||
|
healthCheck:
|
||||||
|
path: "/"
|
||||||
|
interval: "5s"
|
||||||
|
|
||||||
# Бэкенд для org_ccalm_api_authorization_v02 (HTTPS с отключенной проверкой SSL)
|
# Бэкенд для org_ccalm_api_authorization_v02 (HTTPS с отключенной проверкой SSL)
|
||||||
org_ccalm_api_authorization_v02:
|
org_ccalm_api_authorization_v02:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
@ -243,6 +262,8 @@ tls:
|
|||||||
keyFile: "/etc/traefik/certs/ccalm.test.key"
|
keyFile: "/etc/traefik/certs/ccalm.test.key"
|
||||||
- certFile: "/etc/traefik/certs/powerdns.local.crt"
|
- certFile: "/etc/traefik/certs/powerdns.local.crt"
|
||||||
keyFile: "/etc/traefik/certs/powerdns.local.key"
|
keyFile: "/etc/traefik/certs/powerdns.local.key"
|
||||||
|
- certFile: "/etc/traefik/certs/gotify.local.crt"
|
||||||
|
keyFile: "/etc/traefik/certs/gotify.local.key"
|
||||||
- certFile: "/etc/traefik/certs/wildcard.local.crt"
|
- certFile: "/etc/traefik/certs/wildcard.local.crt"
|
||||||
keyFile: "/etc/traefik/certs/wildcard.local.key"
|
keyFile: "/etc/traefik/certs/wildcard.local.key"
|
||||||
- certFile: "/etc/traefik/certs/wildcard.test.crt"
|
- certFile: "/etc/traefik/certs/wildcard.test.crt"
|
||||||
@ -79,6 +79,17 @@ openssl x509 -in powerdns.local.crt -text -noout
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Создаём и подписываем одной группой команд:
|
||||||
|
```sh
|
||||||
|
openssl version &&
|
||||||
|
openssl genrsa -out gotify.local.key 2048 &&
|
||||||
|
openssl req -new -key gotify.local.key -out gotify.local.csr -subj "/CN=gotify.local" -addext "subjectAltName=DNS:gotify.local" &&
|
||||||
|
openssl x509 -req -in gotify.local.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out gotify.local.crt -days 365 -sha256 -copy_extensions copy &&
|
||||||
|
openssl x509 -in gotify.local.crt -text -noout &&
|
||||||
|
cat gotify.local.crt gotify.local.key > gotify.local.pem
|
||||||
|
```
|
||||||
|
Теперь можно устанавливать в HAProxy этот gotify.local.pem сертификат
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Подписать корневым CA:
|
Подписать корневым CA:
|
||||||
Reference in New Issue
Block a user