Compare commits

...

5 Commits

Author SHA1 Message Date
19ec4e82f3 Очепятки
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 2s
2025-02-01 17:00:26 +03:00
a9a446d8b7 Вынес настройку сервера в отдельный раздел 2025-02-01 16:58:30 +03:00
7db0de6eda Добавление сайта Nginx 2025-02-01 16:50:48 +03:00
db68076181 Отслеживание SQL запросов django 2025-02-01 16:48:10 +03:00
c0b936f792 Заметка про установку Prometheus и Node Exporter 2025-02-01 16:45:46 +03:00
4 changed files with 130 additions and 3 deletions

14
docs/python/django.md Normal file
View File

@@ -0,0 +1,14 @@
## Отслеживание SQL запросов
```python
from django.db import connection, reset_queries
# Сбрасываем счетчик запросов
reset_queries()
# Код, который работает с БД
# Теперь выводим все запросы, которые были зафиксированы
for query in connection.queries:
print(query)
```

82
docs/servers/grafana.md Normal file
View File

@@ -0,0 +1,82 @@
## Запуск Prometheus с помощью systemd
Ссылку на последнюю версию `Prometheus` можно найти на [странице загрузок](https://prometheus.io/download/).
```sh
# Скачиваем и распаковываем релиз
wget <link>
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*
# Создаём отдельного пользователя и группу для запуска prometheus
sudo adduser --system --no-create-home --group prometheus
# Конфиг
sudo mkdir /etc/prometheus
sudo cp prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus
# Папка для данных
sudo mkdir /var/lib/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
# Бинарники prometheus и promtool
sudo cp prometheus /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo cp promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/promtool
```
Создаём `systemd` сервис. Список возможных параметров запуска `Prometheus` представлен в [документации](https://prometheus.io/docs/prometheus/latest/command-line/prometheus/).
=== "Терминал"
```sh
sudo nano /etc/systemd/system/prometheus.service
```
=== "prometheus.service"
```ini
[Unit]
Description=Prometheus Server
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus
[Install]
WantedBy=multi-user.target
```
Добавляем `Prometheus` в автозагрузку и запускаем.
```sh
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl status prometheus
```
При обновлении конфига, нужно будет перезапустить сервис.
```sh
sudo systemctl restart prometheus
```
## Node Exporter
Устанавливаем `Node Exporter` по инструкции из [документации](https://prometheus.io/docs/guides/node-exporter/). Сервис в `systemd` для `Node Exporter` будет создан автоматически.
```sh
sudo systemctl status node_exporter.service
```
[Пример](https://grafana.com/grafana/dashboards/1860-node-exporter-full/) дашборда `Grafana` для `Node Exporter`.

View File

@@ -1,10 +1,41 @@
## Добавление сайта
Создаём конфиг.
=== "Терминал"
```sh
sudo nano /etc/nginx/sites-available/new-site.conf
```
=== "Пример конфига"
```nginx
server {
server_name example.com www.example.com;
listen 80;
root /var/www/new-site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
```
Активируем конфиг.
```sh
sudo ln -s /etc/nginx/sites-available/new-site.conf /etc/nginx/sites-enabled/
sudo systemctl reload nginx.service
```
## SSL-сертификат с certbot ## SSL-сертификат с certbot
!!! tip "Актуальная версия Python" !!! tip "Актуальная версия Python"
Обычно системый `Python` достаточно старый. Для установки `certbot` может потребоваться более новая версия. Минимальные требования можно узнать на [pypi](https://pypi.org/project/certbot/). Обычно системный `Python` достаточно старый. Для установки `certbot` может потребоваться более новая версия. Минимальные требования можно узнать на [pypi](https://pypi.org/project/certbot/).
```sh ```sh
sudo apt update sudo apt update

View File

@@ -10,7 +10,7 @@ ssh root@<IPv4>
```sh { .code-wrap } ```sh { .code-wrap }
# Создаём пользователя и наделяем правом использовать `sudo`. # Создаём пользователя и наделяем правом использовать `sudo`.
adduser <user> adduser <user>
adduser <username> sudo adduser <user> sudo
# Переключаемся на нового пользователя # Переключаемся на нового пользователя
su - <user> su - <user>
@@ -156,7 +156,7 @@ sudo ufw status verbose
## Настройка Fail2Ban ## Настройка Fail2Ban
[Fail2Ban](https://github.com/fail2ban/fail2ban) - базовая защита сервера от brute-force аттак. [Fail2Ban](https://github.com/fail2ban/fail2ban) - базовая защита сервера от brute-force атак.
```sh ```sh
sudo apt update sudo apt update