Info
Content

zabbix-practice

Для тестов можете установить Zabby самостоятельно или используйте mon-test-vm

ZABBY_INSTALL

1) Создать конфиг для zabby c 3-мя items:

1) Возвращает метрику из любого столбца /sys/block/*/stat, (5 10 любую):
root@vandud-test:/usr/local/lib/python2.7/dist-packages/zabby/examples# tail -n3 items/10_standard.py
    'niga.bitch': lambda: 'fuckubitch',
    'sys.block.sda.stat': sh('cat /sys/block/sda/stat | cut -d\' \' -f5'),
}
root@vandud-test:/usr/local/lib/python2.7/dist-packages/zabby/examples# zabby_get niga.bitch
fuckubitch
root@vandud-test:/usr/local/lib/python2.7/dist-packages/zabby/examples# zabby_get sys.block.sda.stat
5993

Пока не доделал
Остановился на таком

 root@vandud-test:/usr/local/lib/python2.7/dist-packages/zabby/examples/items# head 10_standard.py -n 12
 from zabby import __version__
 
 from zabby.items import vfs, net, proc, vm, system, kernel
 from zabby.core.utils import sh
 
 def niga(fuck):
   return fuck
 
 def sysblockstat(num=1):
   CMD = "cat /sys/block/sda/stat | awk -v N=${0} '{print $N}'"
   return sh(CMD)(num)
2) Возвращает результат проверки доступности порта (любого)

not ready

root@vandud-test:/usr/local/lib/python2.7/dist-packages/zabby/examples/items# head -n 14 10_standard.py | tail -n2
def portcheck(num):
   CMD = "ss -tln4H | column | awk '{print $4}' | cut -d':' -f2 | grep  >/dev/null && echo 1 || echo 0"

2) Написать класс, который будет подключать этот конфиг на основании наличия на сервере опреденного факта, например наличия пакета, и убирать конфиг, если факт отсутствует.

возьмите зависимсть от пакета python-pythonlibmonitoring
класс не подключать в modules_root/monitoring/zabby/manifests/init.pp, а только на ноду mon-test-vm (или локально через puppet apply) в manifests_root/monitoring_nodes.pp

3) Написать override, который будет переопределять любой из item’ov (например для третьего item’a делить/умножать на 1000 вместь 100)

Нужно установить zabbix-server-pgsql версии >=1.8 <2.0 и настроить его на работу с локальной базой данных

Делаю в контейнере (тратит меньше ресурсов и мне так легче)

docker pull ubuntu:14.04.1

docker run -it --entrypoint /bin/bash --name zabbix ubuntu:14.04.1
docker start -i zabbix

Разворачиваю там постгрес

apt install postgresql
mkdir -p /usr/local/pgsql/data
chown -R postgres:postgres /usr/local/pgsql/data
sudo -u postgres /usr/lib/postgresql/9.3/bin/initdb -D /usr/local/pgsql/data/
sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl -D /usr/local/pgsql/data/ -l /var/log/postgresql/postgresql-9.3-main.log start
sudo -u postgres /usr/lib/postgresql/9.3/bin/createdb zabbix
sudo -u postgres psql


Firefox_2021-03-04-10-38-58.png
Firefox_2021-03-04-10-50-51.png
Firefox_2021-03-04-10-52-21.png


Для запуска после остановки

sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl -D /usr/local/pgsql/data/ -l /var/log/postgresql/postgresql-9.3-main.log start

zabbix

wget https://cdn.zabbix.com/zabbix/sources/oldstable/1.8/zabbix-1.8.22.tar.gz
tar -xzf zabbix-1.8.22.tar.gz

# from official docs  
shell> psql -U <username>
psql> create database zabbix; 
psql> \q 
shell> cd create/schema 
shell> cat postgresql.sql | psql -U <username> zabbix 
shell> cd ../data 
shell> cat data.sql | psql -U <username> zabbix
shell> cat images_pgsql.sql | psql -U <username> zabbix

apt install gcc
./configure --enable-server --with-pgsql # need install libpq-dev

apt install make
make install # some dance with drum

./configure --enable-agent
make install

cp misc/conf/zabbix_agent.conf /etc/zabbix/.
cp misc/conf/zabbix_server.conf /etc/zabbix/.

vim /etc/zabbix/zabbix_server.conf # set dbuser and dbport

zabbix_server
zabbix_agentd

apt install apache2
cp -r frontend/php/* /var/www/html/.

vim /etc/php5/apache2/php.ini 

apt install php5-pgsql php5-gd

# имя пользователя Admin, пароль zabbix

В разделе configuration/hosts включаем ZS и все зеленеет
2021-01-18-011929_1366x768_scrot.png

Нужно без использования web интерфейса создать хост, на хосте создать два айтема, один трапперный, другой external script, так же нужно создать два триггера, каждый использующий историю одного из созданных айтемов(через функции), один триггер должен зависить от другого

После создания триггеров, нужно изменить состояния триггеров с ok на problem и обратно при помощи генерации новых данных(отправка данных через zabbix_sender и изменение значения, выводимого скриптом)

Нужно установить zabbix-agent версии >=1.8 <2.3 и настроить его на работу с локальным заббикс сервером. Нужно без использования web интерфейса создать UserParameter с произвольным ключом(например, "ivan.vodka"), выполняющий произвольную команду(например, "echo 3"), после чего запросить у агента данные, ассоциированные с созданным ключом при помощи zabbix_get

Нужно снять сетевой дамп на запросы и ответы, генерируемые утилитами zabbix_get и zabbix_sender, и разобраться в используемом формате данных

Нужно без использования web интерфейса создать action, который будет выполняться при генерации эвентов, указывающих на переход триггера в состояние problem, который будет выполнять произвольный скрипт на том же сервере, на котором находится заббикс сервер(например скрипт может содержать "echo 4 > /tmp/zabbix_action"). Снять дамп на генерирование action'a

No Comments
Back to top