1
1

Compare commits

..

No commits in common. "main" and "v8.0" have entirely different histories.
main ... v8.0

10 changed files with 19 additions and 335 deletions

121
README.md
View File

@ -1,118 +1,7 @@
## Mit találsz ebben a publikus repóban? ## Mit találsz ebben a publikus repóban?
Készítettem egy egyszerű ansible playbookot, ami 4 különböző operációs rendszerrel (CentOS 7, Alma Linux 8, Ubuntu 22.04, Debian 11) is kompatibilis.
A másik csavar, hogy a teszteléshez szükséges 4 virtuális gépet automatizálva hozom létre a Vagrant segítségével.
A Vagrantról írtam több cikket is a [honlapomon](https://msandor.hu/category/vagrant/).
A playbook feltelepíti és bekonfigurálja a zabbix-agent-eket.
Oktatási jelleggel írtam több cikket is a [vagrantról](https://msandor.hu/category/vagrant/), az [ansible-ről](https://msandor.hu/category/ansible/), a [dockerről](https://msandor.hu/category/docker/), és a [zabbixról](https://msandor.hu/category/zabbix/). A frissített verzió már egy `zbxsrv` nevű szervert is létrehoz, egyelőre még kézzel kell rá feltelepíteni a dockert és a zabbix-serverhez szükséges docker-compose.yml-t.
Ezeknek az alkalmazásoknak a bemutatását több különböző Operációs rendszeren is megteszem:
| Hoszt név | IP cím | Oprendszer |
| --- | --- | --- |
| vm1 | 192.168.56.2 | Debian 11 |
| vm2 | 192.168.56.3 | Alma Linux 8 |
| vm3 | 192.168.56.4 | Ubuntu 22.04 |
| vm4 | 192.168.57.5 | Debian 12 |
| proxy1 | 192.168.57.6 | Alma Linux 9 |
| zbxsrv | 192.168.56.6 | Alma Linux 9 |
Ezt találod a letölthető git repóban:
```
├── ansible.cfg
├── changelog.md
├── inventory
│   ├── group_vars
│   │   └── all.yml
│   └── inventory.yml
├── LICENSE
├── log
├── playbook
│   └── install-zabbix-agent.yml
├── README.md
├── tasks
│   ├── configure-zabbix_agent.yml
│   ├── install-docker-repo.yml
│   ├── install-docker.yml
│   ├── install-zabbix_agent.yml
│   ├── install-zabbix-repo.yml
│   ├── service-docker.yml
│   └── service-zabbix_agent.yml
├── templates
│   ├── zabbix_agentd.conf.j2
│   └── zabbix.psk.j2
└── Vagrantfile
```
## Hogyan kell letölteni?
- Van git a gépeden? Ha nincs:
- `$ sudo yum install git -y`
vagy
- `$ sudo apt install git -y`
- Van már erre létrehozott mappád, pl `git`? Ha nincs:
- `$ mkdir ~/git`
- `$ cd ~/git`
- `$ git clone https://git.msandor.hu/demo/ansible_vagrant.git`
amennyiben biztosra akarsz menni, válts a 8.4-es verzióra:
- `$ cd ~/git/ansible_vagrant`
- `$ git checkout tags/v8.4`
## Hogyan kell létrehozni a 6 VM-et?
- Van vagrant a gépeden? Ha nincs a gyártó [weboldaláról](https://developer.hashicorp.com/vagrant/downloads) le tudod tölteni.
```
$ cd ~/git/ansible_vagrant
$ vagrant up
```
## Hogyan kell lefuttatni az ansible playbookot?
- Van ansible a gépeden? Ha nincs:
- `$ sudo yum install ansible -y`
vagy
- `$ sudo apt install ansible -y`
Ha nálad ezek nem működnek, nézd meg az ansible [weboldalát](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
Miután felkerült a gépedre az ansible, ebben a mappában állva add ki ezt a parancsot:
ansible-playbook playbook/deploy-zabbix-labor.yml -l servers
## Hogyan kell elindítani a zabbix szerverhez tartozó konténereket (server, web, DB)?
```
[msandor@msandordell ~]$ cd ~/git/ansible_vagrant/
[msandor@msandordell ~]$ vagrant ssh zbxsrv
[vagrant@zbxsrv ~]$ sudo docker compose -f docker/zabbix-server/docker-compose.yml up -d
[+] Running 4/4
✔ Network zabbix-server_customnetwork Created 0.1s
✔ Container zabbix-server Started 0.9s
✔ Container zabbix-web Started 0.9s
✔ Container zabbix-db Started 1.0s
[vagrant@zbxsrv ~]$
```
Ha egyszer már elindítottad őket, onnantól kezdve minden szerver indítás után automatikusan el fognak indulni.
## Hogyan kell elindítani a zabbix proxy konténert?
```
[msandor@msandordell ~]$ cd ~/git/ansible_vagrant/
[msandor@msandordell ~]$ vagrant ssh proxy1
[vagrant@proxy1 ~]$ sudo docker compose -f docker/zabbix-proxy/docker-compose.yml up -d
[+] Running 0/0
[+] Running 2/2ix-proxy_default Creating 0.1s
✔ Network zabbix-proxy_default Created 0.1s
✔ Container zabbix-proxy Started 0.1s
[vagrant@proxy1 ~]$
```
Ha egyszer már elindítottad, onnantól kezdve minden szerver indítás után automatikusan el fog indulni.
## Hogyan érem el a zabbix szerver weboldalát?
Indítsd el a kedvenc böngésződ, és nyisd meg ezt az URL-t: [http://192.168.56.6:888/](http://192.168.56.6:888/)

158
Vagrantfile vendored
View File

@ -2,20 +2,17 @@ Vagrant.configure("2") do |config|
config.vm.define "vm1" do |vm1| config.vm.define "vm1" do |vm1|
vm1.vm.network "private_network", ip: "192.168.56.2" vm1.vm.network "private_network", ip: "192.168.56.2"
vm1.vm.box = "debian/bullseye64" vm1.vm.box = "centos/7"
vm1.vm.provider "virtualbox" do |vb| vm1.vm.provider "virtualbox" do |vb|
vb.memory = "512" vb.memory = "512"
vb.cpus = 1 vb.cpus = 1
end end
vm1.vm.synced_folder ".", "/vagrant", disabled: true
vm1.vm.provision "shell", inline: <<-SHELL vm1.vm.provision "shell", inline: <<-SHELL
apt-get update && apt-get upgrade -y yum install mc epel-release httpd net-tools -y
apt-get clean yum update -y
apt-get install mc apache2 -y systemctl enable --now httpd
echo "vm1" > /etc/hostname echo "vm1" > /etc/hostname
hostname -F /etc/hostname hostname -F /etc/hostname
echo "192.168.56.2 vm1" >> /etc/hosts
timedatectl set-timezone Europe/Budapest
SHELL SHELL
end end
@ -23,18 +20,15 @@ Vagrant.configure("2") do |config|
vm2.vm.network "private_network", ip: "192.168.56.3" vm2.vm.network "private_network", ip: "192.168.56.3"
vm2.vm.box = "almalinux/8" vm2.vm.box = "almalinux/8"
vm2.vm.provider "virtualbox" do |vb| vm2.vm.provider "virtualbox" do |vb|
vb.memory = "768" vb.memory = "512"
vb.cpus = 1 vb.cpus = 1
end end
vm2.vm.synced_folder ".", "/vagrant", disabled: true
vm2.vm.provision "shell", inline: <<-SHELL vm2.vm.provision "shell", inline: <<-SHELL
dnf install mc epel-release httpd net-tools -y dnf install mc epel-release httpd net-tools -y
dnf update -y dnf update -y
systemctl enable --now httpd systemctl enable --now httpd
echo "vm2" > /etc/hostname echo "vm2" > /etc/hostname
hostname -F /etc/hostname hostname -F /etc/hostname
echo "192.168.56.3 vm2" >> /etc/hosts
timedatectl set-timezone Europe/Budapest
SHELL SHELL
end end
@ -45,174 +39,44 @@ Vagrant.configure("2") do |config|
vb.memory = "512" vb.memory = "512"
vb.cpus = 1 vb.cpus = 1
end end
vm3.vm.synced_folder ".", "/vagrant", disabled: true
vm3.vm.provision "shell", inline: <<-SHELL vm3.vm.provision "shell", inline: <<-SHELL
apt-get update && apt-get upgrade -y apt-get update && apt-get upgrade -y
apt-get install mc apache2 -y apt-get install mc apache2 -y
apt-get clean apt-get clean
echo "vm3" > /etc/hostname echo "vm3" > /etc/hostname
hostname -F /etc/hostname hostname -F /etc/hostname
echo "192.168.56.4 vm3" >> /etc/hosts
timedatectl set-timezone Europe/Budapest
SHELL SHELL
end end
config.vm.define "vm4" do |vm4| config.vm.define "vm4" do |vm4|
vm4.vm.network "private_network", ip: "192.168.57.5" vm4.vm.network "private_network", ip: "192.168.56.5"
vm4.vm.box = "debian/bookworm64" vm4.vm.box = "debian/bullseye64"
vm4.vm.provider "virtualbox" do |vb| vm4.vm.provider "virtualbox" do |vb|
vb.memory = "512" vb.memory = "512"
vb.cpus = 1 vb.cpus = 1
end end
vm4.vm.synced_folder ".", "/vagrant", disabled: true
vm4.vm.provision "shell", inline: <<-SHELL vm4.vm.provision "shell", inline: <<-SHELL
apt-get update && apt-get upgrade -y apt-get update && apt-get upgrade -y
apt-get clean apt-get clean
apt-get install mc apache2 -y apt-get install mc apache2 -y
echo "vm4" > /etc/hostname echo "vm4" > /etc/hostname
hostname -F /etc/hostname hostname -F /etc/hostname
echo "192.168.57.5 vm4" >> /etc/hosts
timedatectl set-timezone Europe/Budapest
SHELL SHELL
end end
config.vm.define "zbxsrv" do |zbxsrv| config.vm.define "zbxsrv" do |zbxsrv|
zbxsrv.vm.network "private_network", ip: "192.168.56.6" zbxsrv.vm.network "private_network", ip: "192.168.56.6"
zbxsrv.vm.box = "almalinux/9" zbxsrv.vm.box = "centos/7"
zbxsrv.vm.provider "virtualbox" do |vb| zbxsrv.vm.provider "virtualbox" do |vb|
vb.memory = "1024" vb.memory = "512"
vb.cpus = 1 vb.cpus = 1
end end
zbxsrv.vm.synced_folder ".", "/vagrant", disabled: true
zbxsrv.vm.provision "shell", inline: <<-SHELL zbxsrv.vm.provision "shell", inline: <<-SHELL
yum install mc net-tools -y yum install mc epel-release httpd net-tools -y
yum update -y yum update -y
systemctl enable --now httpd
echo "zbxsrv" > /etc/hostname echo "zbxsrv" > /etc/hostname
hostname -F /etc/hostname hostname -F /etc/hostname
echo "192.168.56.6 zbxsrv" >> /etc/hosts
timedatectl set-timezone Europe/Budapest
mkdir -p /home/vagrant/docker/zabbix-server
cat > /home/vagrant/docker/zabbix-server/docker-compose.yml << EOL
volumes:
DB:
services:
zabbix-server:
container_name: zabbix-server
image: zabbix/zabbix-server-mysql:alpine-6.4-latest
volumes:
- /etc/localtime:/etc/localtime:ro
- ./ssh_keys:/var/lib/zabbix/ssh_keys
ports:
- 10051:10051
restart: always
environment:
- DB_SERVER_HOST=zabbix-db
- DB_SERVER_PORT=3306
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=P@G*LCxUAU96L5oq
- ZBX_STARTPINGERS=3
- ZBX_LISTENPORT=10051
networks:
customnetwork:
ipv4_address: 192.168.151.2
zabbix-web:
container_name: zabbix-web
image: zabbix/zabbix-web-apache-mysql:alpine-6.4-latest
volumes:
- /etc/localtime:/etc/localtime:ro
ports:
- 888:8080
restart: always
environment:
- DB_SERVER_HOST=zabbix-db
- DB_SERVER_PORT=3306
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=P@G*LCxUAU96L5oq
- ZBX_SERVER_HOST=zabbix-server
- ZBX_SERVER_PORT=10051
- ZBX_SERVER_NAME=zbxsrv
- PHP_TZ=Europe/Budapest
networks:
customnetwork:
ipv4_address: 192.168.151.3
zabbix-db:
container_name: zabbix-db
image: mariadb:10.6
volumes:
- DB:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
command: mysqld --collation-server=utf8mb4_bin
restart: always
environment:
- MYSQL_ROOT_PASSWORD=xQdr0iORWI8ZEY1F
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=P@G*LCxUAU96L5oq
networks:
customnetwork:
ipv4_address: 192.168.151.4
networks:
customnetwork:
ipam:
config:
- subnet: 192.168.151.0/24
EOL
SHELL
end
config.vm.define "proxy1" do |proxy1|
proxy1.vm.network "private_network", ip: "192.168.57.6"
proxy1.vm.box = "almalinux/9"
proxy1.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 1
end
proxy1.vm.synced_folder ".", "/vagrant", disabled: true
proxy1.vm.provision "shell", inline: <<-SHELL
yum install mc net-tools -y
yum update -y
echo "proxy1" > /etc/hostname
hostname -F /etc/hostname
echo "192.168.57.6 proxy1" >> /etc/hosts
timedatectl set-timezone Europe/Budapest
mkdir -p /home/vagrant/docker/zabbix-proxy
mkdir -p /var/lib/docker/volumes/zabbix-proxy_ZBXPROXY_SECRETS/_data
cat > /var/lib/docker/volumes/zabbix-proxy_ZBXPROXY_SECRETS/_data/zabbix.psk << EOL
977b74008c40fed130a410074df64a4fafd7244b64e163ec86a77e0e49323dbd
EOL
cat > /home/vagrant/docker/zabbix-proxy/docker-compose.yml << EOL
volumes:
ZBXPROXY_DB:
ZBXPROXY_SNMPTRAPS:
ZBXPROXY_SECRETS:
services:
zabbix-proxy:
container_name: zabbix-proxy
image: zabbix/zabbix-proxy-sqlite3:alpine-6.4-latest
volumes:
- /etc/localtime:/etc/localtime:ro
- ZBXPROXY_DB:/var/lib/zabbix/db_data
- ZBXPROXY_SNMPTRAPS:/var/lib/zabbix/snmptraps
- ZBXPROXY_SECRETS:/var/lib/zabbix/enc
ports:
- 10051:10051
restart: always
environment:
- ZBX_SERVER_HOST=192.168.56.6
- ZBX_SERVER_PORT=10051
- ZBX_HOSTNAME=proxy1
- ZBX_CONFIGFREQUENCY=60
- ZBX_TLSCONNECT=psk
- ZBX_TLSPSKFILE=/var/lib/zabbix/enc/zabbix.psk
- ZBX_TLSPSKIDENTITY=proxy1
EOL
SHELL SHELL
end end

View File

@ -1,38 +1,12 @@
# CHANGELOG # CHANGELOG
## 8.4
- ssh_keys volume hozzáadása a docker-compose.yml fájlhoz
- új VM: proxy1
- új szerepkör: zabbix proxy
- a vm4 áthelyezve a másik LAN-ba (192.168.56.5 -> 192.168.57.5)
- frissült a Vagrantfile
- javítottam az install-zabbix-repo.yml fájlt (az új debian szerverhez nem volt jó)
- vm1 OS frissítése CentOS 7-ről Debian 11-re
- proxy1 OS frissítése CentOS 7-ről Alma Linux 9-re
- ebből az állapotból lett a [harmadik](https://git.msandor.hu/demo/ansible_vagrant/src/tag/v8.4) publikus git repo is
Erről írtam két cikket [itt](https://msandor.hu/mire-valo-a-zabbix-proxy/) és [itt](https://msandor.hu/zabbix-migralasa-os-frissites-miatt/).
## 8.2
- minden szerveren beállítja az időzónát (Europe/Budapest, 5 új sor a Vagrantfile-ban)
- kikapcsoltam a /vagrant szinkronizálását, ebben a labor környezetben nincs rá szükség
- nem volt elég 512 MB memória az Alma Linux 8-nak, felemeltem 768 MB-ra
- nem volt elég 768 MB memória az Alma Linux 9-nek, felemeltem 1 GB-ra
- a vm4 szervert Debian 11-ről 12-re cseréltem
- a zbxsrv szervert CentOS 7-ről Alma Linux 9-re cseréltem
- és a legfontosabb újítás: a dockert is telepíti a playbook
- ebből az állapotból lett a [második](https://git.msandor.hu/demo/ansible_vagrant/src/tag/v8.2) publikus git repo is
## 8.1
- új szerver létrehozásakor minden VM hostnevét beteszi az /etc/hosts fájlba (5 új sor a Vagrantfile-ban)
## 8.0 ## 8.0
Történt némi átalakítás: Történt némi átalakítás:
- a hivatalos zabbix repóból telepítem fel az agenteket - a hivatalos zabbix repóból telepítem fel az agenteket
- ennek köszönhetően már nem kell bizonyos változókat (ZBXDIR, ZBXLOGDIR) külön kezelni inventory szinten - ennek köszönhetően már nem kell bizonyos változókat (ZBXDIR, ZBXLOGDIR) külön kezelni inventory szinten
- a zabbix-servernek létrehoztam egy dedikált szervert (zbxsrv) - a zabbix-servernek létrehoztam egy dedikált szervert (zbxsrv)
- mivel végesek a laptopom erőforrásai, és az agenteken kívül csak egy apache webszerver fut a demó szervereken (még az első lecke miatt), ezért megfeleztem a VCPU és memória értékeket - mivel végesek a laptopom erőforrásai, és az agenteken kívül csak egy apache webszerver fut a demó szervereken (még az első lecke miatt), ezért megfeleztem a VCPU és memória értékeket
- ebből az állapotból lett az [első](https://git.msandor.hu/demo/ansible_vagrant/src/tag/v8.0) publikus git repo is - ebből az állapotból lett az [első]() publikus git repo is
Erről írtam egy cikket [itt](https://msandor.hu/zabbix-labor-tuning-gittel/) Erről írtam egy cikket [itt](https://msandor.hu/zabbix-labor-tuning-gittel/)

View File

@ -20,19 +20,12 @@ all:
ansible_ssh_private_key_file: .vagrant/machines/vm3/virtualbox/private_key ansible_ssh_private_key_file: .vagrant/machines/vm3/virtualbox/private_key
psk_key: 182e39bb63953f682347f717359a24621556d83516c54fff00e86dd8e9d89b45 psk_key: 182e39bb63953f682347f717359a24621556d83516c54fff00e86dd8e9d89b45
vm4: vm4:
ansible_host: 192.168.57.5 ansible_host: 192.168.56.5
ansible_ssh_private_key_file: .vagrant/machines/vm4/virtualbox/private_key ansible_ssh_private_key_file: .vagrant/machines/vm4/virtualbox/private_key
psk_key: d8f5c88673de18afdde646ed3590fbe36d2951b9cfe8fac56e8b722115e791ee psk_key: d8f5c88673de18afdde646ed3590fbe36d2951b9cfe8fac56e8b722115e791ee
ZBXSERVER: '192.168.57.6'
zbxsrv: zbxsrv:
ansible_host: 192.168.56.6 ansible_host: 192.168.56.6
ansible_ssh_private_key_file: .vagrant/machines/zbxsrv/virtualbox/private_key ansible_ssh_private_key_file: .vagrant/machines/zbxsrv/virtualbox/private_key
psk_key: 2d0d1ed6caf68a65088ff9e8f04c07c274ddf636293dcaf852da7383d0b92e29 psk_key: 2d0d1ed6caf68a65088ff9e8f04c07c274ddf636293dcaf852da7383d0b92e29
ZBXLISTENIP: 172.17.0.1 ZBXLISTENIP: 172.17.0.1
ZBXSERVER: 192.168.151.2 ZBXSERVER: 192.168.151.2
REMOTECOMMANDS: true
proxy1:
ansible_host: 192.168.57.6
ansible_ssh_private_key_file: .vagrant/machines/proxy1/virtualbox/private_key
psk_key: 977b74008c40fed130a410074df64a4fafd7244b64e163ec86a77e0e49323dbd
ZBXSERVER: '192.168.57.1'

View File

@ -4,11 +4,8 @@
tasks: tasks:
- include: ~/git/ansible_vagrant/tasks/install-zabbix-repo.yml - include: ~/git/ansible_vagrant/tasks/install-zabbix-repo.yml
- include: ~/git/ansible_vagrant/tasks/install-docker-repo.yml
- include: ~/git/ansible_vagrant/tasks/install-zabbix_agent.yml - include: ~/git/ansible_vagrant/tasks/install-zabbix_agent.yml
- include: ~/git/ansible_vagrant/tasks/configure-zabbix_agent.yml - include: ~/git/ansible_vagrant/tasks/configure-zabbix_agent.yml
- include: ~/git/ansible_vagrant/tasks/install-docker.yml
- include: ~/git/ansible_vagrant/tasks/service-docker.yml
- include: ~/git/ansible_vagrant/tasks/service-zabbix_agent.yml - include: ~/git/ansible_vagrant/tasks/service-zabbix_agent.yml
handlers: handlers:

View File

@ -1,10 +0,0 @@
---
- name: Docker-ce repó hozzáadása
yum_repository:
name: "docker-ce-stable"
description: "Docker CE Stable - $basearch"
baseurl: "https://download.docker.com/linux/centos/$releasever/$basearch/stable"
gpgcheck: yes
enabled: yes
gpgkey: "https://download.docker.com/linux/centos/gpg"
when: ansible_hostname == "zbxsrv" or ansible_hostname == "proxy1"

View File

@ -1,12 +0,0 @@
---
- name: Docker-ce telepítése
yum:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: latest
update_cache: yes
when: ansible_hostname == "zbxsrv" or ansible_hostname == "proxy1"

View File

@ -10,7 +10,7 @@
- name: Zabbix repó hozzáadása [Debian] - name: Zabbix repó hozzáadása [Debian]
apt: apt:
deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian{{ ansible_distribution_major_version }}_all.deb deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian{{ ansible_distribution_version }}_all.deb
state: present state: present
when: when:
- ansible_distribution == "Debian" - ansible_distribution == "Debian"

View File

@ -1,7 +0,0 @@
---
- name: Docker engedélyezése és elindítása
service:
name: docker
enabled: yes
state: started
when: ansible_hostname == "zbxsrv" or ansible_hostname == "proxy1"

View File

@ -13,7 +13,3 @@ TLSConnect=psk
TLSAccept=psk TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix.psk TLSPSKFile=/etc/zabbix/zabbix.psk
TLSPSKIdentity={{ inventory_hostname_short }} TLSPSKIdentity={{ inventory_hostname_short }}
{% if REMOTECOMMANDS is defined %}
EnableRemoteCommands=1
AllowKey=system.run[*]
{% endif %}