Установка и настройка Jupyter Notebook — различия между версиями
Admin (обсуждение | вклад) (Новая страница: «= Установка и настройка Jupyter Notebook = == 1. Подготовка системы == * Войдите в систему под учетн…») |
Admin (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | * Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | ||
− | == 2. Установка Python | + | == 2. Установка Python == |
=== Обновление системы === | === Обновление системы === | ||
1. Обновите систему: | 1. Обновите систему: | ||
− | < | + | <pre>sudo apt update</pre> |
2. Установите Python и pip: | 2. Установите Python и pip: | ||
− | < | + | <pre>sudo apt install -y python3 python3-pip python3-venv python3-dev</pre> |
3. Проверьте версию Python: | 3. Проверьте версию Python: | ||
− | < | + | <pre>python3 --version</pre> |
− | < | + | <pre>pip3 --version</pre> |
=== Создание виртуального окружения === | === Создание виртуального окружения === | ||
1. Создайте директорию для проекта: | 1. Создайте директорию для проекта: | ||
− | < | + | <pre>mkdir -p ~/jupyter-project</pre> |
− | < | + | <pre>cd ~/jupyter-project</pre> |
2. Создайте виртуальное окружение: | 2. Создайте виртуальное окружение: | ||
− | < | + | <pre>python3 -m venv jupyter-env</pre> |
3. Активируйте виртуальное окружение: | 3. Активируйте виртуальное окружение: | ||
− | < | + | <pre>source jupyter-env/bin/activate</pre> |
4. Обновите pip: | 4. Обновите pip: | ||
− | < | + | <pre>pip install --upgrade pip</pre> |
− | == 3. Установка Jupyter Notebook | + | == 3. Установка Jupyter Notebook == |
=== Установка Jupyter === | === Установка Jupyter === | ||
1. Установите Jupyter Notebook: | 1. Установите Jupyter Notebook: | ||
− | < | + | <pre>pip install jupyter</pre> |
2. Установите дополнительные пакеты: | 2. Установите дополнительные пакеты: | ||
− | < | + | <pre>pip install notebook jupyterlab jupyterhub</pre> |
3. Проверьте установку: | 3. Проверьте установку: | ||
− | < | + | <pre>jupyter --version</pre> |
=== Настройка Jupyter === | === Настройка Jupyter === | ||
1. Создайте конфигурационный файл: | 1. Создайте конфигурационный файл: | ||
− | < | + | <pre>jupyter notebook --generate-config</pre> |
2. Отредактируйте конфигурацию: | 2. Отредактируйте конфигурацию: | ||
− | < | + | <pre>nano ~/.jupyter/jupyter_notebook_config.py</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>c.NotebookApp.ip = '0.0.0.0' |
c.NotebookApp.port = 8888 | c.NotebookApp.port = 8888 | ||
c.NotebookApp.open_browser = False | c.NotebookApp.open_browser = False | ||
Строка 63: | Строка 63: | ||
c.NotebookApp.allow_origin = '*' | c.NotebookApp.allow_origin = '*' | ||
c.NotebookApp.disable_check_xsrf = True | c.NotebookApp.disable_check_xsrf = True | ||
− | </ | + | </pre> |
− | == 4. Настройка безопасности | + | == 4. Настройка безопасности == |
=== Настройка пароля === | === Настройка пароля === | ||
1. Создайте пароль для Jupyter: | 1. Создайте пароль для Jupyter: | ||
− | < | + | <pre>jupyter notebook password</pre> |
2. Введите пароль дважды для подтверждения | 2. Введите пароль дважды для подтверждения | ||
Строка 77: | Строка 77: | ||
1. Создайте SSL сертификаты: | 1. Создайте SSL сертификаты: | ||
− | < | + | <pre>mkdir -p ~/.jupyter/ssl</pre> |
− | < | + | <pre>openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.jupyter/ssl/jupyter.key -out ~/.jupyter/ssl/jupyter.crt</pre> |
2. Настройте SSL в конфигурации: | 2. Настройте SSL в конфигурации: | ||
− | < | + | <pre>nano ~/.jupyter/jupyter_notebook_config.py</pre> |
3. Добавьте SSL настройки: | 3. Добавьте SSL настройки: | ||
− | < | + | <pre>c.NotebookApp.certfile = '/home/user/.jupyter/ssl/jupyter.crt' |
c.NotebookApp.keyfile = '/home/user/.jupyter/ssl/jupyter.key' | c.NotebookApp.keyfile = '/home/user/.jupyter/ssl/jupyter.key' | ||
c.NotebookApp.open_browser = False | c.NotebookApp.open_browser = False | ||
− | </ | + | </pre> |
− | == 5. Настройка системы как сервиса | + | == 5. Настройка системы как сервиса == |
=== Создание systemd сервиса === | === Создание systemd сервиса === | ||
1. Создайте файл сервиса: | 1. Создайте файл сервиса: | ||
− | < | + | <pre>sudo nano /etc/systemd/system/jupyter.service</pre> |
2. Добавьте конфигурацию: | 2. Добавьте конфигурацию: | ||
− | < | + | <pre>[Unit] |
Description=Jupyter Notebook | Description=Jupyter Notebook | ||
After=network.target | After=network.target | ||
Строка 113: | Строка 113: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
− | </ | + | </pre> |
3. Создайте пользователя jupyter: | 3. Создайте пользователя jupyter: | ||
− | < | + | <pre>sudo useradd -m -s /bin/bash jupyter</pre> |
4. Переместите проект: | 4. Переместите проект: | ||
− | < | + | <pre>sudo mv ~/jupyter-project /home/jupyter/</pre> |
− | < | + | <pre>sudo chown -R jupyter:jupyter /home/jupyter/</pre> |
5. Запустите сервис: | 5. Запустите сервис: | ||
− | < | + | <pre>sudo systemctl daemon-reload</pre> |
− | < | + | <pre>sudo systemctl start jupyter</pre> |
− | < | + | <pre>sudo systemctl enable jupyter</pre> |
6. Проверьте статус: | 6. Проверьте статус: | ||
− | < | + | <pre>sudo systemctl status jupyter</pre> |
− | == 6. Настройка веб-сервера | + | == 6. Настройка веб-сервера == |
=== Установка Nginx === | === Установка Nginx === | ||
1. Установите Nginx: | 1. Установите Nginx: | ||
− | < | + | <pre>sudo apt install -y nginx</pre> |
2. Запустите и включите автозапуск: | 2. Запустите и включите автозапуск: | ||
− | < | + | <pre>sudo systemctl start nginx</pre> |
− | < | + | <pre>sudo systemctl enable nginx</pre> |
=== Настройка прокси === | === Настройка прокси === | ||
1. Создайте конфигурацию для Jupyter: | 1. Создайте конфигурацию для Jupyter: | ||
− | < | + | <pre>sudo nano /etc/nginx/sites-available/jupyter</pre> |
2. Добавьте конфигурацию: | 2. Добавьте конфигурацию: | ||
− | < | + | <pre>server { |
listen 80; | listen 80; | ||
server_name jupyter.example.com; | server_name jupyter.example.com; | ||
Строка 164: | Строка 164: | ||
} | } | ||
} | } | ||
− | </ | + | </pre> |
3. Включите сайт: | 3. Включите сайт: | ||
− | < | + | <pre>sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/</pre> |
4. Проверьте конфигурацию: | 4. Проверьте конфигурацию: | ||
− | < | + | <pre>sudo nginx -t</pre> |
5. Перезапустите Nginx: | 5. Перезапустите Nginx: | ||
− | < | + | <pre>sudo systemctl restart nginx</pre> |
− | == 7. Настройка SSL | + | == 7. Настройка SSL == |
=== Установка Certbot === | === Установка Certbot === | ||
1. Установите Certbot: | 1. Установите Certbot: | ||
− | < | + | <pre>sudo apt install -y certbot python3-certbot-nginx</pre> |
2. Получите SSL сертификат: | 2. Получите SSL сертификат: | ||
− | < | + | <pre>sudo certbot --nginx -d jupyter.example.com</pre> |
3. Настройте автоматическое обновление: | 3. Настройте автоматическое обновление: | ||
− | < | + | <pre>sudo crontab -e</pre> |
4. Добавьте задачу: | 4. Добавьте задачу: | ||
− | < | + | <pre>0 12 * * * /usr/bin/certbot renew --quiet</pre> |
=== Проверка SSL === | === Проверка SSL === | ||
1. Проверьте SSL сертификат: | 1. Проверьте SSL сертификат: | ||
− | < | + | <pre>sudo certbot certificates</pre> |
2. Протестируйте SSL: | 2. Протестируйте SSL: | ||
− | < | + | <pre>curl -I https://jupyter.example.com</pre> |
− | == 8. Установка дополнительных пакетов | + | == 8. Установка дополнительных пакетов == |
=== Установка научных библиотек === | === Установка научных библиотек === | ||
1. Активируйте виртуальное окружение: | 1. Активируйте виртуальное окружение: | ||
− | < | + | <pre>source /home/jupyter/jupyter-env/bin/activate</pre> |
2. Установите научные библиотеки: | 2. Установите научные библиотеки: | ||
− | < | + | <pre>pip install numpy pandas matplotlib seaborn scikit-learn scipy</pre> |
3. Установите Jupyter расширения: | 3. Установите Jupyter расширения: | ||
− | < | + | <pre>pip install jupyter_contrib_nbextensions</pre> |
− | < | + | <pre>jupyter contrib nbextension install --user</pre> |
=== Настройка расширений === | === Настройка расширений === | ||
1. Включите полезные расширения: | 1. Включите полезные расширения: | ||
− | < | + | <pre>jupyter nbextension enable --py widgetsnbextension --sys-prefix</pre> |
− | < | + | <pre>jupyter nbextension enable --py --sys-prefix qgrid</pre> |
− | < | + | <pre>jupyter nbextension enable --py --sys-prefix plotlywidget</pre> |
2. Настройте расширения: | 2. Настройте расширения: | ||
− | < | + | <pre>jupyter nbextension enable code_prettify/code_prettify</pre> |
− | < | + | <pre>jupyter nbextension enable collapsible_headings/main</pre> |
− | < | + | <pre>jupyter nbextension enable toc2/main</pre> |
− | == 9. Настройка JupyterLab | + | == 9. Настройка JupyterLab == |
=== Установка JupyterLab === | === Установка JupyterLab === | ||
1. Установите JupyterLab: | 1. Установите JupyterLab: | ||
− | < | + | <pre>pip install jupyterlab</pre> |
2. Настройте JupyterLab: | 2. Настройте JupyterLab: | ||
− | < | + | <pre>nano ~/.jupyter/jupyter_lab_config.py</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>c.ServerApp.ip = '0.0.0.0' |
c.ServerApp.port = 8889 | c.ServerApp.port = 8889 | ||
c.ServerApp.open_browser = False | c.ServerApp.open_browser = False | ||
Строка 242: | Строка 242: | ||
c.ServerApp.allow_origin = '*' | c.ServerApp.allow_origin = '*' | ||
c.ServerApp.disable_check_xsrf = True | c.ServerApp.disable_check_xsrf = True | ||
− | </ | + | </pre> |
=== Настройка расширений JupyterLab === | === Настройка расширений JupyterLab === | ||
1. Установите расширения: | 1. Установите расширения: | ||
− | < | + | <pre>pip install jupyterlab-git jupyterlab-lsp jupyterlab-code-formatter</pre> |
2. Включите расширения: | 2. Включите расширения: | ||
− | < | + | <pre>jupyter labextension install @jupyterlab/git</pre> |
− | < | + | <pre>jupyter labextension install @krassowski/jupyterlab-lsp</pre> |
− | == 10. Настройка JupyterHub | + | == 10. Настройка JupyterHub == |
=== Установка JupyterHub === | === Установка JupyterHub === | ||
1. Установите JupyterHub: | 1. Установите JupyterHub: | ||
− | < | + | <pre>pip install jupyterhub</pre> |
2. Установите аутентификатор: | 2. Установите аутентификатор: | ||
− | < | + | <pre>pip install oauthenticator</pre> |
3. Настройте JupyterHub: | 3. Настройте JupyterHub: | ||
− | < | + | <pre>nano ~/.jupyter/jupyterhub_config.py</pre> |
4. Добавьте настройки: | 4. Добавьте настройки: | ||
− | < | + | <pre>c.JupyterHub.ip = '0.0.0.0' |
c.JupyterHub.port = 8000 | c.JupyterHub.port = 8000 | ||
c.JupyterHub.authenticator_class = 'oauthenticator.LocalAuthenticator' | c.JupyterHub.authenticator_class = 'oauthenticator.LocalAuthenticator' | ||
Строка 273: | Строка 273: | ||
c.JupyterHub.admin_access = True | c.JupyterHub.admin_access = True | ||
c.JupyterHub.allow_named_servers = True | c.JupyterHub.allow_named_servers = True | ||
− | </ | + | </pre> |
=== Настройка аутентификации === | === Настройка аутентификации === | ||
1. Настройте OAuth: | 1. Настройте OAuth: | ||
− | < | + | <pre>c.JupyterHub.authenticator_class = 'oauthenticator.GoogleOAuthenticator' |
c.GoogleOAuthenticator.oauth_callback_url = 'https://jupyter.example.com/hub/oauth_callback' | c.GoogleOAuthenticator.oauth_callback_url = 'https://jupyter.example.com/hub/oauth_callback' | ||
c.GoogleOAuthenticator.client_id = 'your-client-id' | c.GoogleOAuthenticator.client_id = 'your-client-id' | ||
c.GoogleOAuthenticator.client_secret = 'your-client-secret' | c.GoogleOAuthenticator.client_secret = 'your-client-secret' | ||
− | </ | + | </pre> |
− | == 11. Мониторинг и обслуживание | + | == 11. Мониторинг и обслуживание == |
=== Настройка логирования === | === Настройка логирования === | ||
1. Настройте логирование: | 1. Настройте логирование: | ||
− | < | + | <pre>nano ~/.jupyter/jupyter_notebook_config.py</pre> |
2. Добавьте настройки логирования: | 2. Добавьте настройки логирования: | ||
− | < | + | <pre>c.NotebookApp.log_level = 'INFO' |
c.NotebookApp.log_format = '[%(name)s]%(highlevel)s %(message)s' | c.NotebookApp.log_format = '[%(name)s]%(highlevel)s %(message)s' | ||
c.NotebookApp.log_datefmt = '%Y-%m-%d %H:%M:%S' | c.NotebookApp.log_datefmt = '%Y-%m-%d %H:%M:%S' | ||
− | </ | + | </pre> |
=== Создание скрипта мониторинга === | === Создание скрипта мониторинга === | ||
1. Создайте скрипт мониторинга: | 1. Создайте скрипт мониторинга: | ||
− | < | + | <pre>sudo nano /usr/local/bin/jupyter-monitor.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>\#!/bin/bash |
− | # Проверка статуса Jupyter | + | \# Проверка статуса Jupyter |
if ! systemctl is-active --quiet jupyter; then | if ! systemctl is-active --quiet jupyter; then | ||
echo "Jupyter is down!" | mail -s "Jupyter Alert" admin@example.com | echo "Jupyter is down!" | mail -s "Jupyter Alert" admin@example.com | ||
fi | fi | ||
− | # Проверка доступности веб-интерфейса | + | \# Проверка доступности веб-интерфейса |
if ! curl -s -o /dev/null -w "%{http_code}" http://localhost:8888 | grep -q "200"; then | if ! curl -s -o /dev/null -w "%{http_code}" http://localhost:8888 | grep -q "200"; then | ||
echo "Jupyter web interface is not responding!" | mail -s "Jupyter Alert" admin@example.com | echo "Jupyter web interface is not responding!" | mail -s "Jupyter Alert" admin@example.com | ||
fi | fi | ||
− | # Проверка использования ресурсов | + | \# Проверка использования ресурсов |
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}') | CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}') | ||
MEMORY_USAGE=$(free | grep Mem | awk '{printf("%.2f", $3/$2 * 100.0)}') | MEMORY_USAGE=$(free | grep Mem | awk '{printf("%.2f", $3/$2 * 100.0)}') | ||
Строка 326: | Строка 326: | ||
echo "High memory usage: $MEMORY_USAGE%" | mail -s "Jupyter Alert" admin@example.com | echo "High memory usage: $MEMORY_USAGE%" | mail -s "Jupyter Alert" admin@example.com | ||
fi | fi | ||
− | </ | + | </pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/jupyter-monitor.sh</pre> |
4. Добавьте в crontab: | 4. Добавьте в crontab: | ||
− | < | + | <pre>sudo crontab -e</pre> |
5. Добавьте задачу: | 5. Добавьте задачу: | ||
− | < | + | <pre>*/5 * * * * /usr/local/bin/jupyter-monitor.sh</pre> |
− | == 12. Резервное копирование | + | == 12. Резервное копирование == |
=== Создание скрипта резервного копирования === | === Создание скрипта резервного копирования === | ||
1. Создайте скрипт резервного копирования: | 1. Создайте скрипт резервного копирования: | ||
− | < | + | <pre>sudo nano /usr/local/bin/jupyter-backup.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>\#!/bin/bash |
BACKUP_DIR="/backup/jupyter" | BACKUP_DIR="/backup/jupyter" | ||
DATE=$(date +%Y%m%d_%H%M%S) | DATE=$(date +%Y%m%d_%H%M%S) | ||
− | # Создание директории для бэкапа | + | \# Создание директории для бэкапа |
mkdir -p $BACKUP_DIR | mkdir -p $BACKUP_DIR | ||
− | # Резервное копирование конфигурации | + | \# Резервное копирование конфигурации |
tar -czf $BACKUP_DIR/jupyter-config-$DATE.tar.gz -C /home/jupyter .jupyter | tar -czf $BACKUP_DIR/jupyter-config-$DATE.tar.gz -C /home/jupyter .jupyter | ||
− | # Резервное копирование проектов | + | \# Резервное копирование проектов |
tar -czf $BACKUP_DIR/jupyter-projects-$DATE.tar.gz -C /home/jupyter jupyter-project | tar -czf $BACKUP_DIR/jupyter-projects-$DATE.tar.gz -C /home/jupyter jupyter-project | ||
− | # Резервное копирование виртуального окружения | + | \# Резервное копирование виртуального окружения |
tar -czf $BACKUP_DIR/jupyter-env-$DATE.tar.gz -C /home/jupyter jupyter-env | tar -czf $BACKUP_DIR/jupyter-env-$DATE.tar.gz -C /home/jupyter jupyter-env | ||
− | # Резервное копирование конфигурации Nginx | + | \# Резервное копирование конфигурации Nginx |
tar -czf $BACKUP_DIR/nginx-config-$DATE.tar.gz -C /etc nginx | tar -czf $BACKUP_DIR/nginx-config-$DATE.tar.gz -C /etc nginx | ||
− | # Удаление старых бэкапов (старше 7 дней) | + | \# Удаление старых бэкапов (старше 7 дней) |
find $BACKUP_DIR -name "jupyter-*" -mtime +7 -delete | find $BACKUP_DIR -name "jupyter-*" -mtime +7 -delete | ||
echo "Jupyter backup completed: $DATE" | echo "Jupyter backup completed: $DATE" | ||
− | </ | + | </pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/jupyter-backup.sh</pre> |
4. Добавьте в crontab: | 4. Добавьте в crontab: | ||
− | < | + | <pre>sudo crontab -e</pre> |
5. Добавьте задачу: | 5. Добавьте задачу: | ||
− | < | + | <pre>0 2 * * * /usr/local/bin/jupyter-backup.sh</pre> |
− | == 13. Устранение неполадок | + | == 13. Устранение неполадок == |
=== Частые проблемы === | === Частые проблемы === | ||
1. '''Jupyter не запускается''': | 1. '''Jupyter не запускается''': | ||
− | * Проверьте статус сервиса: < | + | * Проверьте статус сервиса: <pre>sudo systemctl status jupyter</pre> |
− | * Проверьте логи: < | + | * Проверьте логи: <pre>sudo journalctl -u jupyter</pre> |
* Проверьте конфигурацию | * Проверьте конфигурацию | ||
Строка 402: | Строка 402: | ||
1. '''Проверка статуса сервисов''': | 1. '''Проверка статуса сервисов''': | ||
− | < | + | <pre>sudo systemctl status jupyter</pre> |
− | < | + | <pre>sudo systemctl status nginx</pre> |
2. '''Проверка логов''': | 2. '''Проверка логов''': | ||
− | < | + | <pre>sudo journalctl -u jupyter</pre> |
− | < | + | <pre>sudo tail -f /var/log/nginx/error.log</pre> |
3. '''Проверка портов''': | 3. '''Проверка портов''': | ||
− | < | + | <pre>sudo netstat -tlnp | grep :8888</pre> |
4. '''Проверка конфигурации''': | 4. '''Проверка конфигурации''': | ||
− | < | + | <pre>jupyter notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py</pre> |
5. '''Тестирование подключения''': | 5. '''Тестирование подключения''': | ||
− | < | + | <pre>curl -I http://localhost:8888</pre> |
== Заключение == | == Заключение == |
Текущая версия на 10:43, 15 октября 2025
Содержание
- 1 Установка и настройка Jupyter Notebook
- 1.1 1. Подготовка системы
- 1.2 2. Установка Python
- 1.3 3. Установка Jupyter Notebook
- 1.4 4. Настройка безопасности
- 1.5 5. Настройка системы как сервиса
- 1.6 6. Настройка веб-сервера
- 1.7 7. Настройка SSL
- 1.8 8. Установка дополнительных пакетов
- 1.9 9. Настройка JupyterLab
- 1.10 10. Настройка JupyterHub
- 1.11 11. Мониторинг и обслуживание
- 1.12 12. Резервное копирование
- 1.13 13. Устранение неполадок
- 1.14 Заключение
Установка и настройка Jupyter Notebook
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
2. Установка Python
Обновление системы
1. Обновите систему:
sudo apt update
2. Установите Python и pip:
sudo apt install -y python3 python3-pip python3-venv python3-dev
3. Проверьте версию Python:
python3 --version
pip3 --version
Создание виртуального окружения
1. Создайте директорию для проекта:
mkdir -p ~/jupyter-project
cd ~/jupyter-project
2. Создайте виртуальное окружение:
python3 -m venv jupyter-env
3. Активируйте виртуальное окружение:
source jupyter-env/bin/activate
4. Обновите pip:
pip install --upgrade pip
3. Установка Jupyter Notebook
Установка Jupyter
1. Установите Jupyter Notebook:
pip install jupyter
2. Установите дополнительные пакеты:
pip install notebook jupyterlab jupyterhub
3. Проверьте установку:
jupyter --version
Настройка Jupyter
1. Создайте конфигурационный файл:
jupyter notebook --generate-config
2. Отредактируйте конфигурацию:
nano ~/.jupyter/jupyter_notebook_config.py
3. Добавьте настройки:
c.NotebookApp.ip = '0.0.0.0' c.NotebookApp.port = 8888 c.NotebookApp.open_browser = False c.NotebookApp.allow_root = True c.NotebookApp.allow_origin = '*' c.NotebookApp.disable_check_xsrf = True
4. Настройка безопасности
Настройка пароля
1. Создайте пароль для Jupyter:
jupyter notebook password
2. Введите пароль дважды для подтверждения
Настройка SSL
1. Создайте SSL сертификаты:
mkdir -p ~/.jupyter/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.jupyter/ssl/jupyter.key -out ~/.jupyter/ssl/jupyter.crt
2. Настройте SSL в конфигурации:
nano ~/.jupyter/jupyter_notebook_config.py
3. Добавьте SSL настройки:
c.NotebookApp.certfile = '/home/user/.jupyter/ssl/jupyter.crt' c.NotebookApp.keyfile = '/home/user/.jupyter/ssl/jupyter.key' c.NotebookApp.open_browser = False
5. Настройка системы как сервиса
Создание systemd сервиса
1. Создайте файл сервиса:
sudo nano /etc/systemd/system/jupyter.service
2. Добавьте конфигурацию:
[Unit] Description=Jupyter Notebook After=network.target [Service] Type=simple User=jupyter Group=jupyter WorkingDirectory=/home/jupyter Environment=PATH=/home/jupyter/jupyter-env/bin ExecStart=/home/jupyter/jupyter-env/bin/jupyter notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
3. Создайте пользователя jupyter:
sudo useradd -m -s /bin/bash jupyter
4. Переместите проект:
sudo mv ~/jupyter-project /home/jupyter/
sudo chown -R jupyter:jupyter /home/jupyter/
5. Запустите сервис:
sudo systemctl daemon-reload
sudo systemctl start jupyter
sudo systemctl enable jupyter
6. Проверьте статус:
sudo systemctl status jupyter
6. Настройка веб-сервера
Установка Nginx
1. Установите Nginx:
sudo apt install -y nginx
2. Запустите и включите автозапуск:
sudo systemctl start nginx
sudo systemctl enable nginx
Настройка прокси
1. Создайте конфигурацию для Jupyter:
sudo nano /etc/nginx/sites-available/jupyter
2. Добавьте конфигурацию:
server { listen 80; server_name jupyter.example.com; location / { proxy_pass http://localhost:8888; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
3. Включите сайт:
sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/
4. Проверьте конфигурацию:
sudo nginx -t
5. Перезапустите Nginx:
sudo systemctl restart nginx
7. Настройка SSL
Установка Certbot
1. Установите Certbot:
sudo apt install -y certbot python3-certbot-nginx
2. Получите SSL сертификат:
sudo certbot --nginx -d jupyter.example.com
3. Настройте автоматическое обновление:
sudo crontab -e
4. Добавьте задачу:
0 12 * * * /usr/bin/certbot renew --quiet
Проверка SSL
1. Проверьте SSL сертификат:
sudo certbot certificates
2. Протестируйте SSL:
curl -I https://jupyter.example.com
8. Установка дополнительных пакетов
Установка научных библиотек
1. Активируйте виртуальное окружение:
source /home/jupyter/jupyter-env/bin/activate
2. Установите научные библиотеки:
pip install numpy pandas matplotlib seaborn scikit-learn scipy
3. Установите Jupyter расширения:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
Настройка расширений
1. Включите полезные расширения:
jupyter nbextension enable --py widgetsnbextension --sys-prefix
jupyter nbextension enable --py --sys-prefix qgrid
jupyter nbextension enable --py --sys-prefix plotlywidget
2. Настройте расширения:
jupyter nbextension enable code_prettify/code_prettify
jupyter nbextension enable collapsible_headings/main
jupyter nbextension enable toc2/main
9. Настройка JupyterLab
Установка JupyterLab
1. Установите JupyterLab:
pip install jupyterlab
2. Настройте JupyterLab:
nano ~/.jupyter/jupyter_lab_config.py
3. Добавьте настройки:
c.ServerApp.ip = '0.0.0.0' c.ServerApp.port = 8889 c.ServerApp.open_browser = False c.ServerApp.allow_root = True c.ServerApp.allow_origin = '*' c.ServerApp.disable_check_xsrf = True
Настройка расширений JupyterLab
1. Установите расширения:
pip install jupyterlab-git jupyterlab-lsp jupyterlab-code-formatter
2. Включите расширения:
jupyter labextension install @jupyterlab/git
jupyter labextension install @krassowski/jupyterlab-lsp
10. Настройка JupyterHub
Установка JupyterHub
1. Установите JupyterHub:
pip install jupyterhub
2. Установите аутентификатор:
pip install oauthenticator
3. Настройте JupyterHub:
nano ~/.jupyter/jupyterhub_config.py
4. Добавьте настройки:
c.JupyterHub.ip = '0.0.0.0' c.JupyterHub.port = 8000 c.JupyterHub.authenticator_class = 'oauthenticator.LocalAuthenticator' c.JupyterHub.spawner_class = 'jupyterhub.spawner.LocalProcessSpawner' c.JupyterHub.admin_access = True c.JupyterHub.allow_named_servers = True
Настройка аутентификации
1. Настройте OAuth:
c.JupyterHub.authenticator_class = 'oauthenticator.GoogleOAuthenticator' c.GoogleOAuthenticator.oauth_callback_url = 'https://jupyter.example.com/hub/oauth_callback' c.GoogleOAuthenticator.client_id = 'your-client-id' c.GoogleOAuthenticator.client_secret = 'your-client-secret'
11. Мониторинг и обслуживание
Настройка логирования
1. Настройте логирование:
nano ~/.jupyter/jupyter_notebook_config.py
2. Добавьте настройки логирования:
c.NotebookApp.log_level = 'INFO' c.NotebookApp.log_format = '[%(name)s]%(highlevel)s %(message)s' c.NotebookApp.log_datefmt = '%Y-%m-%d %H:%M:%S'
Создание скрипта мониторинга
1. Создайте скрипт мониторинга:
sudo nano /usr/local/bin/jupyter-monitor.sh
2. Добавьте содержимое:
\#!/bin/bash \# Проверка статуса Jupyter if ! systemctl is-active --quiet jupyter; then echo "Jupyter is down!" | mail -s "Jupyter Alert" admin@example.com fi \# Проверка доступности веб-интерфейса if ! curl -s -o /dev/null -w "%{http_code}" http://localhost:8888 | grep -q "200"; then echo "Jupyter web interface is not responding!" | mail -s "Jupyter Alert" admin@example.com fi \# Проверка использования ресурсов CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}') MEMORY_USAGE=$(free | grep Mem | awk '{printf("%.2f", $3/$2 * 100.0)}') if [ $(echo "$CPU_USAGE > 80" | bc) -eq 1 ]; then echo "High CPU usage: $CPU_USAGE%" | mail -s "Jupyter Alert" admin@example.com fi if [ $(echo "$MEMORY_USAGE > 80" | bc) -eq 1 ]; then echo "High memory usage: $MEMORY_USAGE%" | mail -s "Jupyter Alert" admin@example.com fi
3. Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/jupyter-monitor.sh
4. Добавьте в crontab:
sudo crontab -e
5. Добавьте задачу:
*/5 * * * * /usr/local/bin/jupyter-monitor.sh
12. Резервное копирование
Создание скрипта резервного копирования
1. Создайте скрипт резервного копирования:
sudo nano /usr/local/bin/jupyter-backup.sh
2. Добавьте содержимое:
\#!/bin/bash BACKUP_DIR="/backup/jupyter" DATE=$(date +%Y%m%d_%H%M%S) \# Создание директории для бэкапа mkdir -p $BACKUP_DIR \# Резервное копирование конфигурации tar -czf $BACKUP_DIR/jupyter-config-$DATE.tar.gz -C /home/jupyter .jupyter \# Резервное копирование проектов tar -czf $BACKUP_DIR/jupyter-projects-$DATE.tar.gz -C /home/jupyter jupyter-project \# Резервное копирование виртуального окружения tar -czf $BACKUP_DIR/jupyter-env-$DATE.tar.gz -C /home/jupyter jupyter-env \# Резервное копирование конфигурации Nginx tar -czf $BACKUP_DIR/nginx-config-$DATE.tar.gz -C /etc nginx \# Удаление старых бэкапов (старше 7 дней) find $BACKUP_DIR -name "jupyter-*" -mtime +7 -delete echo "Jupyter backup completed: $DATE"
3. Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/jupyter-backup.sh
4. Добавьте в crontab:
sudo crontab -e
5. Добавьте задачу:
0 2 * * * /usr/local/bin/jupyter-backup.sh
13. Устранение неполадок
Частые проблемы
1. Jupyter не запускается:
- Проверьте статус сервиса:
sudo systemctl status jupyter
- Проверьте логи:
sudo journalctl -u jupyter
- Проверьте конфигурацию
2. Проблемы с доступом:
- Проверьте настройки файрвола
- Проверьте конфигурацию Nginx
- Проверьте SSL сертификаты
3. Проблемы с производительностью:
- Настройте ограничения ресурсов
- Оптимизируйте конфигурацию
- Проверьте использование диска
Диагностика
1. Проверка статуса сервисов:
sudo systemctl status jupyter
sudo systemctl status nginx
2. Проверка логов:
sudo journalctl -u jupyter
sudo tail -f /var/log/nginx/error.log
3. Проверка портов:
sudo netstat -tlnp | grep :8888
4. Проверка конфигурации:
jupyter notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py
5. Тестирование подключения:
curl -I http://localhost:8888
Заключение
Jupyter Notebook успешно установлен и настроен! Теперь у вас есть мощная платформа для интерактивной разработки с возможностями веб-доступа, расширений и интеграций.
Для размещения ваших Jupyter решений на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных Jupyter инсталляций
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой Jupyter и оптимизацией производительности ваших аналитических решений!