Предуслови
Инсталирајте Јава
Инсталирајте Зеппелин
Конфигуришите Системд услугу
Конфигуришите обрнути прокси
Онемогућите анонимни приступ
Омогући Схиро аутентификацију
Апацхе Зеппелин је бележница отвореног кода заснована на вебу и алат за сарадњу за интерактивно унос података, откривање, аналитику и визуелизацију. Зеппелин подржава 20+ језика укључујући Апацхе Спарк, СКЛ, Р, Еластицсеарцх и многе друге. Апацхе Зеппелин вам омогућава да креирате прелепе документе засноване на подацима и видите резултате ваше аналитике.
Предуслови
- Инстанца сервера Вултр ЦентОС 7.
- : Судо корисника .
- Име домена усмерено ка серверу.
За овај водич користићемо zeppelin.example.comкао име домена усмерено на Вултр инстанцу. Обавезно замените сва појављивања примера имена домена стварним.
Ажурирајте свој основни систем помоћу водича Како да ажурирате ЦентОС 7 . Када се ваш систем ажурира, наставите са инсталирањем Јаве.
Инсталирајте Јава
Апацхе Зеппелин је написан на Јави, тако да захтева ЈДК за рад. Преузмите Орацле СЕ ЈДК РПМ пакет.
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm"
Инсталирајте преузети пакет.
sudo yum -y localinstall jdk-8u151-linux-x64.rpm
Ако је Јава успешно инсталирана, требало би да будете у могућности да проверите њену верзију.
java -version
Видећете следећи излаз.
[user@vultr ~]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
Пре него што наставимо даље, мораћемо да подесимо променљиве окружења JAVA_HOMEи JRE_HOME. Пронађите апсолутну путању ЈАВА извршне датотеке у вашем систему.
readlink -f $(which java)
Видећете сличан излаз.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_151/jre/bin/java
Сада подесите променљиве окружења JAVA_HOMEи JRE_HOMEпрема путањи Јава директоријума.
echo "export JAVA_HOME=/usr/java/jdk1.8.0_151" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_151/jre" >> ~/.bash_profile
Извршите bash_profileдатотеку.
source ~/.bash_profile
Сада можете покренути echo $JAVA_HOMEнаредбу да проверите да ли је променљива окружења подешена.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151
Инсталирајте Зеппелин
Апацхе Зеппелин испоручује све зависности заједно са бинарним датотекама, тако да не морамо да инсталирамо ништа друго осим Јаве. Преузмите бинарни програм Зеппелин на свој систем. Увек можете пронаћи најновију верзију апликације на Зеппелин страници за преузимање .
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 adduser -d /opt/zeppelin -s /sbin/nologin 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 yum -y install nginx
Покрените Нгинк и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start nginx
sudo systemctl enable nginx
Инсталирајте Цертбот, који је клијентска апликација за Лет'с Енцрипт ЦА.
sudo yum -y install certbot
Пре него што будете могли да затражите сертификате, мораћете да дозволите порт 80и/ 443или стандард HTTPи HTTPSуслуге преко заштитног зида.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Напомена : Да бисте добили сертификате од Лет'с Енцрипт ЦА, домен за који ће се сертификати генерисати мора бити усмерен ка серверу. Ако није, извршите неопходне промене у ДНС записима домена и сачекајте да се ДНС пропагира пре него што поново поднесете захтев за сертификат. Цертбот проверава ауторитет домена пре пружања сертификата.
Генеришите ССЛ сертификате.
sudo certbot certonly --webroot -w /usr/share/nginx/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/conf.d/zeppelin.example.com.conf
Попуните датотеку.
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 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
Требало би да видите да је аутентификација омогућена и да ћете моћи да се пријавите користећи корисничко име и лозинку постављене у Схиро конфигурационој датотеци.