Funkcjonalności warstw architektury referencyjnej Big Data
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Leanote to darmowa, lekka i otwarta alternatywa dla Evernote, napisanej w Golang. Mając na uwadze doświadczenie użytkownika, Leanote zapewnia użytkownikom wiele praktycznych funkcji, w tym obsługę wielu platform, pisanie w składni MarkDown, publiczne lub prywatne blogowanie, gromadzenie i udostępnianie wiedzy oraz współpracę w zespole.
W tym artykule poprowadzę cię przez Konfigurowanie serwera Leanote na instancji serwera CentOS 7. Ze względów bezpieczeństwa możliwe HTTPS support
będzie także użycie certyfikatu Let's Encrypt SSL i Nginx.
203.0.113.1
.leanote
.leanote.example.com
wskazana na wspomnianą wyżej instancję serwera.Podczas uruchamiania nowej instancji serwera Vultr CentOS 7 zawsze zaleca się ustawienie pliku wymiany, aby zapewnić sprawne działanie systemu. Na przykład utworzenie pliku wymiany o wielkości 2048 MB jest odpowiednie dla komputera z 2 GB pamięci.
sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Uwaga: Jeśli używasz innego rozmiaru serwera, może być konieczne zmodyfikowanie rozmiaru pliku wymiany.
Pobierz i rozpakuj najnowszą stabilną wersję Leanote dla 64-bitowego systemu Linux:
cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
Zgodnie z wymaganiami Leanote, system MongoDB NoSQL DBMS musi być zainstalowany, aby można było pomyślnie skonfigurować serwer Leanote.
Utwórz repozytorium MongoDB 4.0 YUM w następujący sposób:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
Zainstaluj wszystkie komponenty i narzędzia MongoDB, korzystając z utworzonego wcześniej repozytorium MongoDB 4.0 YUM:
sudo yum install -y mongodb-org
Domyślnie MongoDB używa 27017
portu podczas pracy, co jest niedozwolone, jeśli SELinux jest w enforcing
trybie na komputerze CentOS 7. Użyj następującego polecenia, aby potwierdzić bieżący tryb SELinux:
sudo getenforce
W instancji serwera Vultr CentOS 7 SELinux jest domyślnie wyłączony. Zatem wynik powyższej komendy byłby następujący:
Disabled
W takim przypadku możesz pominąć poniższe instrukcje dotyczące konfigurowania SELinux i przejść dalej.
Jednakże, jeśli używasz oryginalnego serwera CentOS instancję 7, wyjście z powyższego polecenia będzie Enforcing
. Trzeba wykonać jeden z trzech poniższych opcji , zanim można zacząć i włączyć usługę MongoDB.
Opcja 1: Pozwól MongoDB korzystać z 27017
portu
sudo semanage port -a -t mongod_port_t -p tcp 27017
Opcja 2: Wyłącz SELinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo shutdown -r now
Opcja 3: Zmień SELinux na permissive
tryb
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo shutdown -r now
Uruchom usługę MongoDB i uruchom ją po ponownym uruchomieniu systemu:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Użyj poniższych poleceń, aby zaimportować początkowe dane Leanote do MongoDB:
rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/
Ze względów bezpieczeństwa musisz włączyć kontrolę dostępu do MongoDB zaraz po uruchomieniu usługi MongoDB. W tym celu musisz utworzyć co najmniej dwa konta użytkownika MongoDB: konto administratora użytkownika i konto administratora bazy danych. Będziesz także musiał zmodyfikować konfigurację MongoDB.
Wpisz powłokę MongoDB:
mongo --host 127.0.0.1:27017
Przejdź do admin
bazy danych:
use admin
Utwórz administratora użytkownika o nazwie, useradmin
który używa hasła useradminpassword
:
db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
Uwaga: Administrator użytkownika useradmin
powinien zarządzać wszystkimi użytkownikami MongoDB, więc dobrze jest wybrać silne hasło. Oczywiście bezpieczniejszą wskazówką jest zastąpienie useradmin
trudną do odgadnięcia nazwą użytkownika.
Przejdź do leanote
bazy danych:
use leanote
Utwórz administratora bazy danych o nazwie, leanoteadmin
który używa hasła leanoteadminpassword
:
db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })
Uwaga : ponownie zaleca się wybranie mniej znanej nazwy użytkownika i trudnego do odgadnięcia hasła.
Po utworzeniu użytkowników MongoDB możesz potwierdzić wyniki:
use admin
db.auth("useradmin", "useradminpassword")
Potwierdź administratora bazy danych:
use leanote
db.auth("leanoteadmin", "leanoteadminpassword")
Oba zostaną wyświetlone 1
jako potwierdzenie.
Wyjdź z powłoki MongoDB:
exit
Aby włączyć kontrolę dostępu do MongoDB, musisz również dołączyć dwa wiersze do pliku konfiguracyjnego MongoDB /etc/mongod.conf
w następujący sposób:
sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo ' authorization: enabled' >> /etc/mongod.conf"
Uruchom ponownie usługę MongoDB, aby zmiany zaczęły obowiązywać:
sudo systemctl restart mongod.service
Od teraz możesz używać tylko dwóch kont użytkowników, aby uzyskać dostęp i zarządzać MongoDB, useradmin
zarządzać wszystkimi użytkownikami MongoDB i leanoteadmin
zarządzać leanote
tylko bazą danych.
Wykonaj kopię zapasową pliku konfiguracyjnego Leanote /home/leanote/leanote/conf/app.conf
:
cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak
Użyj vi
edytora, aby otworzyć plik konfiguracyjny Leanote:
vi app.conf
Znajdź następujące linie jeden po drugim:
site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y
Zastąp je odpowiednio, jak pokazano poniżej:
site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA
Uwaga: Ze względów bezpieczeństwa wartość app.secret
parametru MUSI być 64-bitowym ciągiem losowym innym niż pierwotny. Pamiętaj o zastąpieniu wartości E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA
własną 64-bitową wartością losową.
Zapisz i wyjdź:
:wq!
Zmodyfikuj reguły zapory, aby umożliwić przychodzący ruch TCP na porcie 9000
:
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service
Uruchom Leanote przy użyciu oficjalnego skryptu:
cd /home/leanote/leanote/bin
bash run.sh
Po obejrzeniu Listening on.. 0.0.0.0:9000
wskaż swoją ulubioną przeglądarkę internetową, http://leanote.example.com:9000
aby rozpocząć korzystanie z witryny Leanote.
Użyj domyślnego konta administratora Leanote, aby zalogować się:
admin
abc123
Ze względów bezpieczeństwa należy zmienić domyślne hasło natychmiast po zalogowaniu.
HTTPS
dostępNa razie możesz już uzyskać dostęp do serwera Leanote przy użyciu protokołu HTTP, mniej bezpiecznego protokołu. Aby poprawić bezpieczeństwo systemu, możesz włączyć HTTPS
, wdrażając zarówno certyfikat Let's Encrypt SSL, jak i odwrotne proxy Nginx na twoim komputerze.
Aby uzyskać certyfikat Let's Encrypt SSL, musisz poprawnie skonfigurować nazwę hosta i nazwę FQDN na swoim komputerze.
Najpierw naciśnij CTRL+, Caby zatrzymać skrypt Leanote run.sh
.
Następnie ustaw nazwę hosta i nazwę FQDN w następujący sposób:
sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF
Możesz również potwierdzić wyniki:
hostname
hostname -f
Blokuj ruch przychodzący na porcie 9000
i zezwalaj na ruch przychodzący na portach HTTP
i HTTPS
usługach:
sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Zainstaluj narzędzie Certbot:
sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot
Złóż wniosek o certyfikat Let's Encrypt SSL dla domeny leanote.example.com
:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d leanote.example.com
Certyfikat i łańcuch zostaną zapisane w następujący sposób:
/etc/letsencrypt/live/leanote.example.com/fullchain.pem
Plik klucza prywatnego zostanie zapisany w następujący sposób:
/etc/letsencrypt/live/leanote.example.com/privkey.pem
Domyślnie certyfikat Let's Encrypt SSL wygaśnie za trzy miesiące. Możesz skonfigurować zadanie cron, jak pokazano poniżej, w celu automatycznego odnawiania certyfikatów Let's Encrypt:
sudo crontab -e
Naciśnij, Iaby przejść do insert
trybu, a następnie wprowadź następujący wiersz:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Zapisz i wyjdź:
:wq!
To zadanie cron będzie próbowało odnawiać certyfikat Let's Encrypt codziennie w południe.
Zainstaluj Nginx za pomocą repozytorium EPEL YUM:
sudo yum install -y nginx
Utwórz plik konfiguracyjny dla Leanote:
cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
listen 80;
server_name leanote.example.com;
return 301 https://\$server_name\$request_uri;
}
server {
# Setup HTTPS certificates
listen 443 default ssl;
server_name leanote.example.com;
ssl_certificate /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/leanote.example.com/privkey.pem;
# Proxy to the Leanote server
location / {
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 https;
proxy_set_header X-Forwarded-Host \$http_host;
proxy_set_header Host \$http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:9000;
proxy_redirect http:// https://;
}
}
EOF
Uruchom ponownie Nginx, aby wprowadzić zmiany:
sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Zmodyfikuj site.url
ustawienie w pliku konfiguracyjnym Leanote:
cd /home/leanote/leanote/conf/
vi app.conf
Znajdź następujący wiersz:
site.url=http://leanote.example.com:9000
Wymień:
site.url=https://leanote.example.com
Zapisz i wyjdź:
:wq!
Ponownie uruchom skrypt Leanote:
cd /home/leanote/leanote/bin
bash run.sh
Teraz wskaż swoją ulubioną przeglądarkę internetową http://leanote.example.com/
, a zobaczysz, że HTTPS
protokół jest aktywowany automatycznie. Zaloguj się jako admin
użytkownik przy użyciu nowego hasła, które wcześniej skonfigurowałeś lub zarejestruj nowe konta użytkowników do współpracy w zespole.
Ponownie naciśnij CTRL+, Caby zatrzymać skrypt Leanote. Demonizujemy ten skrypt później.
wkhtmltopdf
programLeanote decyduje się używać wkhtmltopdf
programu do eksportowania stron HTML jako plików PDF. Zainstaluj wkhtmltopdf
:
cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf
Nie zapomnij podać wkhtmltopdf
ścieżki binarnej /usr/local/bin/wkhtmltopdf
w Export PDF
sekcji panelu administracyjnego administratora Leanote, gdy Leanote jest ponownie uruchomiony.
Uwaga: Jeśli znajdziesz nieczytelne znaki w eksportowanych plikach PDF, możesz spróbować rozwiązać problem, dodając wymagane pliki czcionek do /usr/share/fonts/
katalogu.
Aby utrzymać swoją witrynę Leanote online, możesz użyć narzędzia Supervisor, aby automatycznie uruchomić skrypt Leanote, jeśli ulegnie awarii.
Zainstaluj Supervisora za pomocą YUM:
sudo yum install -y supervisor
Utwórz prosty .ini
plik Supervisor dla Leanote:
cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF
Uruchom usługę Supervisor, a także usługę Leanote:
sudo supervisord -c /etc/supervisord.conf
Potwierdź status usługi Leanote:
sudo supervisorctl status leanote
Dane wyjściowe będą przypominać następujące:
leanote RUNNING pid 3707, uptime 0:02:36
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.