Предуслови
Инсталирајте Јава
Инсталирајте Зеппелин
Конфигуришите Системд
Конфигуришите обрнути прокси
Онемогућите анонимни приступ
Омогући Схиро аутентификацију
Апацхе Зеппелин је бележница отвореног кода заснована на вебу и алатка за сарадњу за интерактивно унос података, откривање, аналитику и визуелизацију. Зеппелин подржава више од 20 језика укључујући Апацхе Спарк, СКЛ, Р, Еластицсеарцх и многе друге. Апацхе Зеппелин вам омогућава да креирате прелепе документе засноване на подацима и видите резултате ваше аналитике.
Предуслови
- Инстанца сервера Вултр Убунту 16.04.
- : Судо корисника .
- Име домена усмерено ка серверу.
За овај водич користићемо zeppelin.example.com као име домена усмерено на Вултр инстанцу. Обавезно замените сва појављивања примера имена домена стварним.
Ажурирајте свој основни систем користећи водич Како ажурирати Убунту 16.04 . Када се ваш систем ажурира, наставите са инсталирањем Јаве.
Инсталирајте Јава
Апацхе Зеппелин је написан на Јави, тако да захтева ЈДК за рад. Додајте Убунту спремиште за Орацле Јава 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Инсталирајте Орацле Јава.
sudo apt -y install oracle-java8-installer
Проверите његову верзију.
java -version
Видећете следећи излаз.
user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Поставите подразумевану путању за Јаву тако што ћете инсталирати следећи пакет.
sudo apt -y install oracle-java8-set-default
Можете да проверите да ли JAVA_HOMEје подешено покретањем.
echo $JAVA_HOME
Видећеш.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Ако уопште не видите никакав излаз, мораћете да се одјавите из тренутне љуске и поново се пријавите.
Инсталирајте Зеппелин
Апацхе Зеппелин испоручује све зависности заједно са бинарним датотекама, тако да не морамо да инсталирамо ништа друго осим Јаве. Преузмите бинарни програм Зеппелин на свој систем. Увек можете пронаћи најновију верзију апликације на Зеппелин страници за преузимање .
wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz
Извуците архиву.
sudo tar xf zeppelin-*-bin-all.tgz -C /opt
Горња команда ће издвојити архиву у /opt/zeppelin-0.7.3-bin-all. Преименујте именик ради погодности.
sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin
Апацхе Зеппелин је сада инсталиран. Можете одмах покренути апликацију, али она вам неће бити доступна, јер само слуша localhost. Конфигурисаћемо Апацхе Зеппелин као услугу. Такође ћемо конфигурисати Нгинк као обрнути прокси.
У овом кораку ћемо подесити Системд јединичну датотеку за Зеппелин апликацију. Ово ће осигурати да се процес апликације аутоматски покрене при поновном покретању система и кваровима.
Из безбедносних разлога, креирајте непривилегованог корисника за покретање Зеппелин процеса.
sudo useradd -d /opt/zeppelin -s /bin/false zeppelin
Омогућите власништво над датотекама новоствореном Зеппелин кориснику.
sudo chown -R zeppelin:zeppelin /opt/zeppelin
Креирајте нову датотеку Системд сервисне јединице.
sudo nano /etc/systemd/system/zeppelin.service
Попуните датотеку следећим.
[Unit]
Description=Zeppelin service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/zeppelin/bin/zeppelin-daemon.sh start
ExecStop=/opt/zeppelin/bin/zeppelin-daemon.sh stop
ExecReload=/opt/zeppelin/bin/zeppelin-daemon.sh reload
User=zeppelin
Group=zeppelin
Restart=always
[Install]
WantedBy=multi-user.target
Покрените апликацију.
sudo systemctl start zeppelin
Омогућите услугу Зеппелин да се аутоматски покрене при покретању.
sudo systemctl enable zeppelin
Да бисте били сигурни да је услуга покренута, можете покренути следеће.
sudo systemctl status zeppelin
Подразумевано, Зеппелин сервер слуша localhost порт 8080. Користићемо Нгинк као обрнути прокси тако да се апликацији може приступити преко стандарда HTTP и HTTPS портова. Такође ћемо конфигурисати Нгинк да користи ССЛ генерисан са Лет'с Енцрипт бесплатним ССЛ ЦА.
Инсталирајте Нгинк.
sudo apt -y install nginx
Покрените Нгинк и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start nginx
sudo systemctl enable nginx
Додајте Цертбот спремиште.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Инсталирајте Цертбот, који је клијентска апликација за Лет'с Енцрипт ЦА.
sudo apt -y install certbot
Напомена : Да бисте добили сертификате од Лет'с Енцрипт ЦА, домен за који ће се сертификати генерисати мора бити усмерен ка серверу. Ако није, извршите неопходне промене у ДНС записима домена и сачекајте да се ДНС пропагира пре него што поново поднесете захтев за сертификат. Цертбот проверава ауторитет домена пре пружања сертификата.
Генеришите ССЛ сертификате.
sudo certbot certonly --webroot -w /var/www/html -d zeppelin.example.com
Генерисани сертификати ће вероватно бити ускладиштени у /etc/letsencrypt/live/zeppelin.example.com/. ССЛ сертификат ће бити сачуван као, fullchain.pem а приватни кључ ће бити сачуван као privkey.pem.
Лет'с Енцрипт сертификати истичу за 90 дана, па се препоручује да подесите аутоматско обнављање сертификата помоћу Црон послова.
Отворите црон датотеку посла.
sudo crontab -e
Додајте следећи ред на крај датотеке.
30 5 * * * /usr/bin/certbot renew --quiet
Горњи црон посао ће се покретати сваког дана у 5:30 ујутро. Ако сертификат истекне, аутоматски ће се обновити.
Направите нову датотеку блока сервера за Зеппелин локацију.
sudo nano /etc/nginx/sites-available/zeppelin
Попуните датотеку.
upstream zeppelin {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name zeppelin.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name zeppelin.example.com;
ssl_certificate /etc/letsencrypt/live/zeppelin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zeppelin.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/zeppelin.access.log;
location / {
proxy_pass http://zeppelin;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
}
location /ws {
proxy_pass http://zeppelin/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
Активирајте конфигурациону датотеку.
sudo ln -s /etc/nginx/sites-available/zeppelin /etc/nginx/sites-enabled/zeppelin
Поново покрените Нгинк да би промене ступиле на снагу.
sudo systemctl restart nginx zeppelin
Зеппелин је сада доступан на следећој адреси.
https://zeppelin.example.com
Подразумевано, аутентификација није омогућена, тако да можете директно да користите апликацију.
Пошто је апликација доступна свима, свеске које креирате су такође доступне свима. Веома је важно онемогућити анонимни приступ и омогућити аутентификацију тако да само аутентификовани корисници могу приступити апликацији.
Онемогућите анонимни приступ
Да бисте онемогућили подразумевани анонимни приступ, копирајте шаблон конфигурационе датотеке на његову живу локацију.
cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml
Уредите конфигурациону датотеку.
sudo nano conf/zeppelin-site.xml
Пронађите следеће редове у датотеци.
<property>
<name>zeppelin.anonymous.allowed</name>
<value>true</value>
Промените вредност на да false бисте онемогућили анонимни приступ.
Омогући Схиро аутентификацију
Сада када смо онемогућили анонимни приступ, морамо да омогућимо неку врсту механизма за аутентификацију како би привилеговани корисници могли да се пријаве. Апацхе Зеппелин користи Апацхе Схиро аутентификацију. Копирајте Схиро конфигурациону датотеку.
sudo cp conf/shiro.ini.template conf/shiro.ini
Уредите конфигурациону датотеку.
sudo nano conf/shiro.ini
Пронађите следеће редове у датотеци.
[users]
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
Листа садржи корисничко име, лозинку и улоге корисника. За сада ћемо користити само admin и user1. Промените лозинку admin и user1 и онемогући остале кориснике тако што их коментарише. Такође можете променити корисничко име и улоге корисника. Да бисте сазнали више о Апацхе Схиро корисницима и улогама, прочитајте Схиро водич за ауторизацију .
Једном када промените лозинке, блок кода би требало да се свиђа овако.
[users]
admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2
Сада поново покрените Зеппелин да бисте применили промене.
sudo systemctl restart zeppelin
Видећете да је аутентификација омогућена и моћи ћете да се пријавите помоћу корисничког имена и лозинке постављене у Схиро конфигурационој датотеци.