zabbix-practice
Для тестов можете установить Zabby самостоятельно или используйте mon-test-vm
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
Для запуска после остановки
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 и все зеленеет
No Comments