мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
poleznosti:bareos_reports [2024/09/25 06:34] Администраторpoleznosti:bareos_reports [2024/09/25 07:20] (текущий) – [Создаем демона для reports_bareos.py] Администратор
Строка 3: Строка 3:
 И я решил сам сделать такой функционал т.к. смотреть через **bconsole** не очень удобно из-за привязки записанных файлов к заданию **job**\\ И я решил сам сделать такой функционал т.к. смотреть через **bconsole** не очень удобно из-за привязки записанных файлов к заданию **job**\\
 Я изучил структуру базы данных и зависимости таблиц между собой, что бы понять какие данные мне нужно включить в отчетность и что бы ничего лишнего не попало туда. Я изучил структуру базы данных и зависимости таблиц между собой, что бы понять какие данные мне нужно включить в отчетность и что бы ничего лишнего не попало туда.
- 
 ===== Кратко описываю что мне нужно извлечь из базы ===== ===== Кратко описываю что мне нужно извлечь из базы =====
 Есть таблицы **job**, **file**, **media**\\ Есть таблицы **job**, **file**, **media**\\
Строка 68: Строка 67:
  
 Но это все сырые данные и так мы только убедились что все работает, теперь нужно создать веб интерфейс и прикрутить кнопку в основной веб интерфейс bareos Но это все сырые данные и так мы только убедились что все работает, теперь нужно создать веб интерфейс и прикрутить кнопку в основной веб интерфейс bareos
- 
 ===== Создание веб интерфейса ===== ===== Создание веб интерфейса =====
 Создаем такую структуру Создаем такую структуру
Строка 304: Строка 302:
     app.run(host='0.0.0.0', port=5000, debug=True)     app.run(host='0.0.0.0', port=5000, debug=True)
 </code> </code>
 +===== Тестируем =====
 +Откройте порт 5000 в вашем firewall если это необходимо\\
 +Далее нужно вручную запустить приложение командой
 +<code>
 +python /var/www/html/reports_bareos.py
 +</code>
 +Теперь идем в браузер
 +<code>http://ВАШ IP:5000</code>
 +И вы увидите вот эту форму\\
 +{{:poleznosti:pasted:20240925-093950.png?nolink}}\\
 +Значит все идет как нужно. Но запускать таким образом приложение не удобно, нужно сделать его отдельным демоном в системе
 +===== Создаем демона для reports_bareos.py =====
 +Открываем
 +<code>
 +nano /etc/systemd/system/reports_bareos.service
 +</code>
 +Содержимое будет примерно такое
 +<code | download>
 +[Unit]
 +Description=Flask Application for Reports Bareos
 +After=network.target
 +
 +[Service]
 +User=bareos
 +Group=bareos
 +WorkingDirectory=/var/www/html/reports_bareos
 +ExecStart=/var/lib/bareos/.local/bin/gunicorn -w 4 -b 0.0.0.0:5000 reports_bareos:app
 +Restart=always
 +RestartSec=10
 +Environment="FLASK_ENV=development"
 +Environment="PATH=/var/lib/bareos/.local/bin:$PATH"
 +StandardOutput=append:/var/log/reports_bareos.log
 +StandardError=append:/var/log/reports_bareos.log
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +Запускаем демона и проверяем его
 +<code>
 +systemctl daemon-reload
 +systemctl enable reports_bareos.service
 +systemctl start reports_bareos.service
 +</code>
 +<code>
 +systemctl status reports_bareos.service
 +</code>
 +{{:poleznosti:pasted:20240925-094718.png?nolink}}\\
 +Теперь идем в браузер
 +<code>http://ВАШ IP:5000</code>
 +И вы увидите вот эту форму\\
 +{{:poleznosti:pasted:20240925-093950.png?nolink}}\\
 +Значит все получилось.
 +===== Прикручиваем кнопку отчетов в bareos-webui =====
 +Тут уже все индивидуально и куда вам будет удобнее, туда и прикручивайте, я покажу свой пример как сделал я\\
 +Внешний вид интерфейса вот такой по умолчанию\\
 +{{:poleznosti:pasted:20240925-095308.png?nolink}}\\
 +Я решил в пункте **Analytics** сделать кнопку отчетности
 +{{:poleznosti:pasted:20240925-095436.png?nolink}}\\
 +Открываем файл
 +<code>
 +nano /usr/share/bareos-webui/module/Analytics/view/analytics/analytics/index.phtml
 +</code>
 +Ищем в нем где упоминается **Stored Data** как видно на скрине выше это такой раздел\\
 +И туда отдельным пунктом добавляем кнопку перехода в наш созданный интерфейс
 +<code>
 +<li><a href="http://10.0.5.210:5000" class="nav-link">Отчетность</a></li>
 +</code>
 +Визуально выглядит вот так
 +{{:poleznosti:pasted:20240925-100458.png?nolink}}
  
 +На этом все, мы проделали отличную работу по созданию интерфейса для отчетности.\\
 +Его можно расширять если вам необходимы еще какие-то данные из базы визуализировать