Compare commits
5 Commits
dd903276f7
...
19ec4e82f3
| Author | SHA1 | Date | |
|---|---|---|---|
| 19ec4e82f3 | |||
| a9a446d8b7 | |||
| 7db0de6eda | |||
| db68076181 | |||
| c0b936f792 |
14
docs/python/django.md
Normal file
14
docs/python/django.md
Normal 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
82
docs/servers/grafana.md
Normal 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`.
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user