Od operačního systému k Dockeru¶
V této fázi nejen nainstalujete Docker, ale také celkově připravíte stroj na instalaci TeskaLabs LogMan.io.
Pokud jste přeskočili instalaci na holém hardwaru a provedli instalaci na virtuálním serveru, věnujte pozornost požadavkům.
Požadavky¶
- Běžící server s nainstalovaným operačním systémem.
- Přístup na server přes SSH, uživatel je
tladmin
s oprávněním vykonávatsudo
. - Pomalé úložiště připojené na
/data/hdd
. - Rychlé úložiště připojené na
/data/ssd
.
Časové pásmo UTC
Časové pásmo operačního systému pro TeskaLabs LogMan.io MUSÍ být nastaveno na UTC.
Kroky¶
1) Přihlaste se na server přes SSH jako uživatel tladmin
ssh tladmin@<ip-of-the-server>
2) Nakonfigurujte přístup přes SSH
Nainstalujte veřejný SSH klíč pro uživatele tladmin
:
cat > /home/tladmin/.ssh/authorized_keys
Omezení přístupu:
sudo vi /etc/ssh/sshd_config
Změny v /etc/ssh/sshd_config
:
PermitRootLogin
nano
PubkeyAuthentication
nayes
PasswordAuthentication
nano
3) Nakonfigurujte parametry jádra Linuxu
Zapište tento obsah do souboru /etc/sysctl.d/01-logman-io.conf
vm.max_map_count=262144
net.ipv4.ip_unprivileged_port_start=80
fs.inotify.max_user_instances=1024
fs.inotify.max_user_watches=1048576
fs.inotify.max_queued_events=16384
Parametr vm.max_map_count
zvyšuje maximální počet mmaps v subsystému virtuální paměti Linuxu.
Je to potřeba pro Elasticsearch.
Parametr net.ipv4.ip_unprivileged_port_start
umožňuje neprivilegovaným procesům naslouchat na portu 80 (a více).
To je potřeba, aby NGINX mohl naslouchat na tomto portu a nevyžadoval zvýšená oprávnění.
4) Nainstalujte Docker
Docker je nezbytný pro nasazení všech mikroservis LogMan.io v kontejnerech, konkrétně Apache Kafka, Elasticsearch, NGINX a jednotlivé streamingové pumpy atd.
Vytvořte logický svazek dockerlv
s EXT4 souborovým systémem:
sudo lvcreate -L100G -n dockerlv systemvg
sudo mkfs.ext4 -L docker-ssd /dev/systemvg/dockerlv
sudo mkdir /var/lib/docker
Zadejte následující řádek do /etc/fstab
:
/dev/disk/by-label/docker-ssd /var/lib/docker ext4 defaults,noatime 0 1
Připojte svazek:
sudo mount /var/lib/docker
Nainstalujte balíček Docker:
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker tladmin
Znovu se přihlaste na server, aby se projevila změna skupiny.
5) Deaktivujte Docker bridge síť
Docker vytváří bridge síť (docker0
) ve výchozím nastavení, která není potřebná pro TeskaLabs LogMan.io.
Toto je způsob, jak deaktivovat výchozí bridge síť Dockeru.
Vytvořte soubor /etc/docker/daemon.json
s následujícím obsahem:
{
"bridge": "none"
}
6) Nainstalujte Wireguard
Wireguard je rychlá a nejbezpečnější VPN technologie. TeskaLabs LogMan.io využívá Wireguard pro interní komunikaci v rámci clusteru.
Rozsah IP adres Wireguard sítě je 172.17.10.0/24
.
Každý uzel clusteru získá jednu IP adresu z tohoto rozsahu, první uzel dostane 172.17.10.1
, druhý 172.17.10.2
a tak dále.
sudo apt install wireguard
sudo su -
cd /etc/wireguard/
umask 077
wg genkey > wg0.key
wg pubkey < wg0.key > wg0.pub
Vytvořte /etc/wireguard/wg0.conf
s následujícím obsahem.
Upravte sekce [Peer]
, aby odrážely rozložení vašeho clusteru.
Pokud instalujete variantu s jedním uzlem, bude přítomna pouze jedna sekce [Peer]
.
[Interface]
PrivateKey = <obsah souboru wg0.key>
ListenPort = 41194
Address = 172.17.10.1/24
MTU = 1412
[Peer]
# První uzel
PublicKey = <obsah souboru wg0.pub>
Endpoint = <IP adresa prvního uzlu>:41194
AllowedIPs = 172.17.10.1/32
PersistentKeepalive = 60
[Peer]
# Druhý uzel
PublicKey = <obsah souboru wg0.pub ze uzlu lmb2>
Endpoint = <IP adresa druhého uzlu>:41194
AllowedIPs = 172.17.10.2/32
PersistentKeepalive = 60
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0.service
7) Nakonfigurujte rozlišení názvů hostitelů (volitelně)
Cluster TeskaLabs LogMan.io vyžaduje, aby každý uzel mohl rozlišit IP adresu jakéhokoli jiného uzlu clusteru podle jeho názvu.
Pokud nakonfigurovaný DNS server tuto schopnost neposkytuje, názvy uzlů a jejich IP adresy musí být vloženy do /etc/hosts
.
sudo vi /etc/hosts
Příklad /etc/hosts
172.17.10.1 lma1
172.17.10.2 lmb1
172.17.10.3 lmx1
Všimněte si, že IP adresy jsou převzaty z rozsahu Wireguard.
8) Restartujte server
sudo reboot
Je důležité aplikovat všechny výše uvedené parametry.