Установка и настройка Jupyter Notebook — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Установка и настройка Jupyter Notebook = == 1. Подготовка системы == * Войдите в систему под учетн…»)
 
 
Строка 6: Строка 6:
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
  
== 2. Установка Python ===
+
== 2. Установка Python ==
  
 
=== Обновление системы ===
 
=== Обновление системы ===
  
 
1. Обновите систему:
 
1. Обновите систему:
<code>sudo apt update</code>
+
<pre>sudo apt update</pre>
  
 
2. Установите Python и pip:
 
2. Установите Python и pip:
<code>sudo apt install -y python3 python3-pip python3-venv python3-dev</code>
+
<pre>sudo apt install -y python3 python3-pip python3-venv python3-dev</pre>
  
 
3. Проверьте версию Python:
 
3. Проверьте версию Python:
<code>python3 --version</code>
+
<pre>python3 --version</pre>
<code>pip3 --version</code>
+
<pre>pip3 --version</pre>
  
 
=== Создание виртуального окружения ===
 
=== Создание виртуального окружения ===
  
 
1. Создайте директорию для проекта:
 
1. Создайте директорию для проекта:
<code>mkdir -p ~/jupyter-project</code>
+
<pre>mkdir -p ~/jupyter-project</pre>
<code>cd ~/jupyter-project</code>
+
<pre>cd ~/jupyter-project</pre>
  
 
2. Создайте виртуальное окружение:
 
2. Создайте виртуальное окружение:
<code>python3 -m venv jupyter-env</code>
+
<pre>python3 -m venv jupyter-env</pre>
  
 
3. Активируйте виртуальное окружение:
 
3. Активируйте виртуальное окружение:
<code>source jupyter-env/bin/activate</code>
+
<pre>source jupyter-env/bin/activate</pre>
  
 
4. Обновите pip:
 
4. Обновите pip:
<code>pip install --upgrade pip</code>
+
<pre>pip install --upgrade pip</pre>
  
== 3. Установка Jupyter Notebook ===
+
== 3. Установка Jupyter Notebook ==
  
 
=== Установка Jupyter ===
 
=== Установка Jupyter ===
  
 
1. Установите Jupyter Notebook:
 
1. Установите Jupyter Notebook:
<code>pip install jupyter</code>
+
<pre>pip install jupyter</pre>
  
 
2. Установите дополнительные пакеты:
 
2. Установите дополнительные пакеты:
<code>pip install notebook jupyterlab jupyterhub</code>
+
<pre>pip install notebook jupyterlab jupyterhub</pre>
  
 
3. Проверьте установку:
 
3. Проверьте установку:
<code>jupyter --version</code>
+
<pre>jupyter --version</pre>
  
 
=== Настройка Jupyter ===
 
=== Настройка Jupyter ===
  
 
1. Создайте конфигурационный файл:
 
1. Создайте конфигурационный файл:
<code>jupyter notebook --generate-config</code>
+
<pre>jupyter notebook --generate-config</pre>
  
 
2. Отредактируйте конфигурацию:
 
2. Отредактируйте конфигурацию:
<code>nano ~/.jupyter/jupyter_notebook_config.py</code>
+
<pre>nano ~/.jupyter/jupyter_notebook_config.py</pre>
  
 
3. Добавьте настройки:
 
3. Добавьте настройки:
<code>c.NotebookApp.ip = '0.0.0.0'
+
<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
</code>
+
</pre>
  
== 4. Настройка безопасности ===
+
== 4. Настройка безопасности ==
  
 
=== Настройка пароля ===
 
=== Настройка пароля ===
  
 
1. Создайте пароль для Jupyter:
 
1. Создайте пароль для Jupyter:
<code>jupyter notebook password</code>
+
<pre>jupyter notebook password</pre>
  
 
2. Введите пароль дважды для подтверждения
 
2. Введите пароль дважды для подтверждения
Строка 77: Строка 77:
  
 
1. Создайте SSL сертификаты:
 
1. Создайте SSL сертификаты:
<code>mkdir -p ~/.jupyter/ssl</code>
+
<pre>mkdir -p ~/.jupyter/ssl</pre>
<code>openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.jupyter/ssl/jupyter.key -out ~/.jupyter/ssl/jupyter.crt</code>
+
<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 в конфигурации:
<code>nano ~/.jupyter/jupyter_notebook_config.py</code>
+
<pre>nano ~/.jupyter/jupyter_notebook_config.py</pre>
  
 
3. Добавьте SSL настройки:
 
3. Добавьте SSL настройки:
<code>c.NotebookApp.certfile = '/home/user/.jupyter/ssl/jupyter.crt'
+
<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
</code>
+
</pre>
  
== 5. Настройка системы как сервиса ===
+
== 5. Настройка системы как сервиса ==
  
 
=== Создание systemd сервиса ===
 
=== Создание systemd сервиса ===
  
 
1. Создайте файл сервиса:
 
1. Создайте файл сервиса:
<code>sudo nano /etc/systemd/system/jupyter.service</code>
+
<pre>sudo nano /etc/systemd/system/jupyter.service</pre>
  
 
2. Добавьте конфигурацию:
 
2. Добавьте конфигурацию:
<code>[Unit]
+
<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
</code>
+
</pre>
  
 
3. Создайте пользователя jupyter:
 
3. Создайте пользователя jupyter:
<code>sudo useradd -m -s /bin/bash jupyter</code>
+
<pre>sudo useradd -m -s /bin/bash jupyter</pre>
  
 
4. Переместите проект:
 
4. Переместите проект:
<code>sudo mv ~/jupyter-project /home/jupyter/</code>
+
<pre>sudo mv ~/jupyter-project /home/jupyter/</pre>
<code>sudo chown -R jupyter:jupyter /home/jupyter/</code>
+
<pre>sudo chown -R jupyter:jupyter /home/jupyter/</pre>
  
 
5. Запустите сервис:
 
5. Запустите сервис:
<code>sudo systemctl daemon-reload</code>
+
<pre>sudo systemctl daemon-reload</pre>
<code>sudo systemctl start jupyter</code>
+
<pre>sudo systemctl start jupyter</pre>
<code>sudo systemctl enable jupyter</code>
+
<pre>sudo systemctl enable jupyter</pre>
  
 
6. Проверьте статус:
 
6. Проверьте статус:
<code>sudo systemctl status jupyter</code>
+
<pre>sudo systemctl status jupyter</pre>
  
== 6. Настройка веб-сервера ===
+
== 6. Настройка веб-сервера ==
  
 
=== Установка Nginx ===
 
=== Установка Nginx ===
  
 
1. Установите Nginx:
 
1. Установите Nginx:
<code>sudo apt install -y nginx</code>
+
<pre>sudo apt install -y nginx</pre>
  
 
2. Запустите и включите автозапуск:
 
2. Запустите и включите автозапуск:
<code>sudo systemctl start nginx</code>
+
<pre>sudo systemctl start nginx</pre>
<code>sudo systemctl enable nginx</code>
+
<pre>sudo systemctl enable nginx</pre>
  
 
=== Настройка прокси ===
 
=== Настройка прокси ===
  
 
1. Создайте конфигурацию для Jupyter:
 
1. Создайте конфигурацию для Jupyter:
<code>sudo nano /etc/nginx/sites-available/jupyter</code>
+
<pre>sudo nano /etc/nginx/sites-available/jupyter</pre>
  
 
2. Добавьте конфигурацию:
 
2. Добавьте конфигурацию:
<code>server {
+
<pre>server {
 
     listen 80;
 
     listen 80;
 
     server_name jupyter.example.com;
 
     server_name jupyter.example.com;
Строка 164: Строка 164:
 
     }
 
     }
 
}
 
}
</code>
+
</pre>
  
 
3. Включите сайт:
 
3. Включите сайт:
<code>sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/</code>
+
<pre>sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/</pre>
  
 
4. Проверьте конфигурацию:
 
4. Проверьте конфигурацию:
<code>sudo nginx -t</code>
+
<pre>sudo nginx -t</pre>
  
 
5. Перезапустите Nginx:
 
5. Перезапустите Nginx:
<code>sudo systemctl restart nginx</code>
+
<pre>sudo systemctl restart nginx</pre>
  
== 7. Настройка SSL ===
+
== 7. Настройка SSL ==
  
 
=== Установка Certbot ===
 
=== Установка Certbot ===
  
 
1. Установите Certbot:
 
1. Установите Certbot:
<code>sudo apt install -y certbot python3-certbot-nginx</code>
+
<pre>sudo apt install -y certbot python3-certbot-nginx</pre>
  
 
2. Получите SSL сертификат:
 
2. Получите SSL сертификат:
<code>sudo certbot --nginx -d jupyter.example.com</code>
+
<pre>sudo certbot --nginx -d jupyter.example.com</pre>
  
 
3. Настройте автоматическое обновление:
 
3. Настройте автоматическое обновление:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
4. Добавьте задачу:
 
4. Добавьте задачу:
<code>0 12 * * * /usr/bin/certbot renew --quiet</code>
+
<pre>0 12 * * * /usr/bin/certbot renew --quiet</pre>
  
 
=== Проверка SSL ===
 
=== Проверка SSL ===
  
 
1. Проверьте SSL сертификат:
 
1. Проверьте SSL сертификат:
<code>sudo certbot certificates</code>
+
<pre>sudo certbot certificates</pre>
  
 
2. Протестируйте SSL:
 
2. Протестируйте SSL:
<code>curl -I https://jupyter.example.com</code>
+
<pre>curl -I https://jupyter.example.com</pre>
  
== 8. Установка дополнительных пакетов ===
+
== 8. Установка дополнительных пакетов ==
  
 
=== Установка научных библиотек ===
 
=== Установка научных библиотек ===
  
 
1. Активируйте виртуальное окружение:
 
1. Активируйте виртуальное окружение:
<code>source /home/jupyter/jupyter-env/bin/activate</code>
+
<pre>source /home/jupyter/jupyter-env/bin/activate</pre>
  
 
2. Установите научные библиотеки:
 
2. Установите научные библиотеки:
<code>pip install numpy pandas matplotlib seaborn scikit-learn scipy</code>
+
<pre>pip install numpy pandas matplotlib seaborn scikit-learn scipy</pre>
  
 
3. Установите Jupyter расширения:
 
3. Установите Jupyter расширения:
<code>pip install jupyter_contrib_nbextensions</code>
+
<pre>pip install jupyter_contrib_nbextensions</pre>
<code>jupyter contrib nbextension install --user</code>
+
<pre>jupyter contrib nbextension install --user</pre>
  
 
=== Настройка расширений ===
 
=== Настройка расширений ===
  
 
1. Включите полезные расширения:
 
1. Включите полезные расширения:
<code>jupyter nbextension enable --py widgetsnbextension --sys-prefix</code>
+
<pre>jupyter nbextension enable --py widgetsnbextension --sys-prefix</pre>
<code>jupyter nbextension enable --py --sys-prefix qgrid</code>
+
<pre>jupyter nbextension enable --py --sys-prefix qgrid</pre>
<code>jupyter nbextension enable --py --sys-prefix plotlywidget</code>
+
<pre>jupyter nbextension enable --py --sys-prefix plotlywidget</pre>
  
 
2. Настройте расширения:
 
2. Настройте расширения:
<code>jupyter nbextension enable code_prettify/code_prettify</code>
+
<pre>jupyter nbextension enable code_prettify/code_prettify</pre>
<code>jupyter nbextension enable collapsible_headings/main</code>
+
<pre>jupyter nbextension enable collapsible_headings/main</pre>
<code>jupyter nbextension enable toc2/main</code>
+
<pre>jupyter nbextension enable toc2/main</pre>
  
== 9. Настройка JupyterLab ===
+
== 9. Настройка JupyterLab ==
  
 
=== Установка JupyterLab ===
 
=== Установка JupyterLab ===
  
 
1. Установите JupyterLab:
 
1. Установите JupyterLab:
<code>pip install jupyterlab</code>
+
<pre>pip install jupyterlab</pre>
  
 
2. Настройте JupyterLab:
 
2. Настройте JupyterLab:
<code>nano ~/.jupyter/jupyter_lab_config.py</code>
+
<pre>nano ~/.jupyter/jupyter_lab_config.py</pre>
  
 
3. Добавьте настройки:
 
3. Добавьте настройки:
<code>c.ServerApp.ip = '0.0.0.0'
+
<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
</code>
+
</pre>
  
 
=== Настройка расширений JupyterLab ===
 
=== Настройка расширений JupyterLab ===
  
 
1. Установите расширения:
 
1. Установите расширения:
<code>pip install jupyterlab-git jupyterlab-lsp jupyterlab-code-formatter</code>
+
<pre>pip install jupyterlab-git jupyterlab-lsp jupyterlab-code-formatter</pre>
  
 
2. Включите расширения:
 
2. Включите расширения:
<code>jupyter labextension install @jupyterlab/git</code>
+
<pre>jupyter labextension install @jupyterlab/git</pre>
<code>jupyter labextension install @krassowski/jupyterlab-lsp</code>
+
<pre>jupyter labextension install @krassowski/jupyterlab-lsp</pre>
  
== 10. Настройка JupyterHub ===
+
== 10. Настройка JupyterHub ==
  
 
=== Установка JupyterHub ===
 
=== Установка JupyterHub ===
  
 
1. Установите JupyterHub:
 
1. Установите JupyterHub:
<code>pip install jupyterhub</code>
+
<pre>pip install jupyterhub</pre>
  
 
2. Установите аутентификатор:
 
2. Установите аутентификатор:
<code>pip install oauthenticator</code>
+
<pre>pip install oauthenticator</pre>
  
 
3. Настройте JupyterHub:
 
3. Настройте JupyterHub:
<code>nano ~/.jupyter/jupyterhub_config.py</code>
+
<pre>nano ~/.jupyter/jupyterhub_config.py</pre>
  
 
4. Добавьте настройки:
 
4. Добавьте настройки:
<code>c.JupyterHub.ip = '0.0.0.0'
+
<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
</code>
+
</pre>
  
 
=== Настройка аутентификации ===
 
=== Настройка аутентификации ===
  
 
1. Настройте OAuth:
 
1. Настройте OAuth:
<code>c.JupyterHub.authenticator_class = 'oauthenticator.GoogleOAuthenticator'
+
<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'
</code>
+
</pre>
  
== 11. Мониторинг и обслуживание ===
+
== 11. Мониторинг и обслуживание ==
  
 
=== Настройка логирования ===
 
=== Настройка логирования ===
  
 
1. Настройте логирование:
 
1. Настройте логирование:
<code>nano ~/.jupyter/jupyter_notebook_config.py</code>
+
<pre>nano ~/.jupyter/jupyter_notebook_config.py</pre>
  
 
2. Добавьте настройки логирования:
 
2. Добавьте настройки логирования:
<code>c.NotebookApp.log_level = 'INFO'
+
<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'
</code>
+
</pre>
  
 
=== Создание скрипта мониторинга ===
 
=== Создание скрипта мониторинга ===
  
 
1. Создайте скрипт мониторинга:
 
1. Создайте скрипт мониторинга:
<code>sudo nano /usr/local/bin/jupyter-monitor.sh</code>
+
<pre>sudo nano /usr/local/bin/jupyter-monitor.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<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
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/jupyter-monitor.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/jupyter-monitor.sh</pre>
  
 
4. Добавьте в crontab:
 
4. Добавьте в crontab:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
5. Добавьте задачу:
 
5. Добавьте задачу:
<code>*/5 * * * * /usr/local/bin/jupyter-monitor.sh</code>
+
<pre>*/5 * * * * /usr/local/bin/jupyter-monitor.sh</pre>
  
== 12. Резервное копирование ===
+
== 12. Резервное копирование ==
  
 
=== Создание скрипта резервного копирования ===
 
=== Создание скрипта резервного копирования ===
  
 
1. Создайте скрипт резервного копирования:
 
1. Создайте скрипт резервного копирования:
<code>sudo nano /usr/local/bin/jupyter-backup.sh</code>
+
<pre>sudo nano /usr/local/bin/jupyter-backup.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<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"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/jupyter-backup.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/jupyter-backup.sh</pre>
  
 
4. Добавьте в crontab:
 
4. Добавьте в crontab:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
5. Добавьте задачу:
 
5. Добавьте задачу:
<code>0 2 * * * /usr/local/bin/jupyter-backup.sh</code>
+
<pre>0 2 * * * /usr/local/bin/jupyter-backup.sh</pre>
  
== 13. Устранение неполадок ===
+
== 13. Устранение неполадок ==
  
 
=== Частые проблемы ===
 
=== Частые проблемы ===
  
 
1. '''Jupyter не запускается''':
 
1. '''Jupyter не запускается''':
* Проверьте статус сервиса: <code>sudo systemctl status jupyter</code>
+
* Проверьте статус сервиса: <pre>sudo systemctl status jupyter</pre>
* Проверьте логи: <code>sudo journalctl -u jupyter</code>
+
* Проверьте логи: <pre>sudo journalctl -u jupyter</pre>
 
* Проверьте конфигурацию
 
* Проверьте конфигурацию
  
Строка 402: Строка 402:
  
 
1. '''Проверка статуса сервисов''':
 
1. '''Проверка статуса сервисов''':
<code>sudo systemctl status jupyter</code>
+
<pre>sudo systemctl status jupyter</pre>
<code>sudo systemctl status nginx</code>
+
<pre>sudo systemctl status nginx</pre>
  
 
2. '''Проверка логов''':
 
2. '''Проверка логов''':
<code>sudo journalctl -u jupyter</code>
+
<pre>sudo journalctl -u jupyter</pre>
<code>sudo tail -f /var/log/nginx/error.log</code>
+
<pre>sudo tail -f /var/log/nginx/error.log</pre>
  
 
3. '''Проверка портов''':
 
3. '''Проверка портов''':
<code>sudo netstat -tlnp | grep :8888</code>
+
<pre>sudo netstat -tlnp | grep :8888</pre>
  
 
4. '''Проверка конфигурации''':
 
4. '''Проверка конфигурации''':
<code>jupyter notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py</code>
+
<pre>jupyter notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py</pre>
  
 
5. '''Тестирование подключения''':
 
5. '''Тестирование подключения''':
<code>curl -I http://localhost:8888</code>
+
<pre>curl -I http://localhost:8888</pre>
  
 
== Заключение ==
 
== Заключение ==

Текущая версия на 10:43, 15 октября 2025

Содержание

Установка и настройка 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):

Наши специалисты помогут с настройкой Jupyter и оптимизацией производительности ваших аналитических решений!