Zabbix заметки
Администрирование ИТ предприятия невозможно без современных средств мониторинга и анализа, позволяющих реагировать на критические ситуации, отслеживать динамику работы серверов, рабочих станций и приложений. Из доступных СПО для мониторинга можно выделить Zabbix, лицензия GPL- несанкционный инструмент, с гибкой перенастройкой предустановленных шаблонов. Zabbix обеспечивает своевременное реагирование на внештатные ситуации в ИТ учреждениях, позволяя администратору прибывать в состоянии постоянного изумления.
Подготовка
Сервер ALT_xxx x86; x86_64
- Имя сервера Zabbix (предпочтительно)
- Запуск сценария предустановки ("вытягивает" необходимые пакеты)
# apt-get install zabbix-preinstall
Если из Synaptic
- zabbix-preinstall
Проверяем наличие требуемых пакетов:
# apt-get install zabbix-phpfrontend-apache2 # apt-get install zabbix-phpfrontend-engine # apt-get install zabbix-server-mysql # apt-get install zabbix-phpfrontend-php5 # apt-get install zabbix-server-common # apt-get install zabbix-common # apt-get install zabbix-phpfrontend-apache2-mod_php5 # apt-get install zabbix-agent # apt-get install apache2 # apt-get install MySQL-server # apt-get install php5-sockets # apt-get install php5-xmlreader # apt-get install php5-ldap
Настройка Apache2
Редактировать пути:
# mcedit /etc/httpd2/conf/sites-available/default.conf DocumentRoot "/var/www/html/" <Directory "/var/www/html/">
Проверить
# mcedit /etc/http2/conf/cites/avialable/default.conf
- В секциях <Directory> должна быть запись:
<Directory> Require all granted </Directory>
- Права на каталоги:
# chown -R apache2:apache2 /var/www/webapps # chmod -R 771 /var/www/webapps # namei -mol /var/www/webapps/zabbix/ drwxrws--x apache2 apache2 webapps
- Права рекурсивно на файлы и каталоги:
# find /var/www/webapps/zabbix -type f -exec chmod 644 {} \; # find /var/www/webapps/zabbix -type d -exec chmod 755 {} \;
- Просмотр прав каталога zabbix:
# namei -mol /var/www/webapps/zabbix/frontends/php/ drwxrws--x apache2 apache2 webapps drwxr-xr-x apache2 apache2 zabbix drwxr-xr-x apache2 apache2 frontends drwxr-xr-x apache2 apache2 php -rw-r--r-- apache2 apache2 zabbix.php
- Проверить наличие символической ссылки
//или # mcedit ----------------------------------------- Имя существующего файла (для ссылки): /etc/httpd2/conf/addon.d/A.zabbix.conf Имя символической ссылки: /etc/httpd2/conf/extra-enabled/A.zabbix.conf -------------------------------------------- //или # ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled # ls -la /etc/httpd2/conf/extra-enabled/ ... lrwxrwxrwx 1 root root 38 апр 21 21:47 A.zabbix.conf -> /etc/httpd2/conf/addon.d/A.zabbix.conf lrwxrwxrwx 1 root root 39 апр 9 21:25 httpd-autoindex.conf -> ../extra-available/httpd-autoindex.conf lrwxrwxrwx 1 root root 37 апр 9 21:25 httpd-default.conf -> ../extra-available/httpd-default.conf lrwxrwxrwx 1 root root 35 апр 9 21:25 httpd-icons.conf -> ../extra-available/httpd-icons.conf lrwxrwxrwx 1 root root 39 апр 9 21:25 httpd-languages.conf -> ../extra-available/httpd-languages.conf lrwxrwxrwx 1 root root 34 апр 9 21:25 httpd-mime.conf -> ../extra-available/httpd-mime.conf lrwxrwxrwx 1 root root 33 апр 9 21:25 httpd-mpm.conf -> ../extra-available/httpd-mpm.conf lrwxrwxrwx 1 root root 48 апр 9 21:25 httpd-multilang-errordoc.conf -> ../extra-available/httpd-multilang-errordoc.conf # cat /etc/httpd2/conf/extra-enabled/@A.zabbix.conf Alias /zabbix /var/www/webapps/zabbix/frontends/php <Directory "/var/www/webapps/zabbix"> Options FollowSymLinks AllowOverride AuthConfig Limit Order allow,deny Allow from all </Directory> # service httpd2 restart //или # systemctl restart httpd2
Редактирвать php
# mcedit /etc/php/5.x/apache2-mod_php/php.ini max_execution_time = 600 max_input_time = 600 memory_limit = 256М post_max_size = 32M upload_max_filesize = 20M date.timezone = Europe/Moscow always_populate_raw_post_data= -1 # service httpd2 restart # service httpd2 on //или # systemctl restart httpd2 # systemctl enable httpd2
Пользователь zabbix
Для управления zabbix-процессами, выделена специальная учётная запись, имя=zabbix
- Пользователь zabbix и группа zabbix создаётся автоматически, при установке zabbix-agent
# apt-get install zabbix-agent # id zabbix uid=xxx(zabbix) gid=xxx(zabbix) группы=xxx(zabbix),19(proc)
Ручная установка учётной записи имя=zabbix
# groupadd zabbix # useradd -g zabbix zabbix //Права на каталоги # namei -mol /var/log/zabbix/ drwxr-xr-x root root / drwxr-xr-x root root var drwxr-xr-x root root log drwxrwxr-t root zabbix zabbix # namei -mol /var/run/zabbix/ drwxr-xr-x root root / drwxr-xr-x root root var drwxr-xr-x root root run drwxr-xr-x zabbix zabbix zabbix
Установка пароля, только для серверной учётной записи, имя=zabbix
# passwd zabbix ........... Enter new password: zabbix Re-type new password: zabbix
Настройка MySQL
Запускаем mysql
# service mysqld start # chkconfig mysqld on //или # systemctl start mysqld # systemctl enable mysqld
Устанавливаем пароль mysql
# mysqladmin -u root password zabbix
Создание БД, имя zabbix
# mysql -uroot -pzabbix # mysql> create database zabbix character set utf8;
создание суперпользователя БД zabbix; имя zabbix, пароль zabbix
# mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; # mysql> exit
Импорт шаблонов zabbix в БД mysql
# ls -l /usr/share/doc //смотрим какая версия MySQL # cd /usr/share/doc/zabbix-server-mysql-x.x.x //или # cd /usr/share/doc/zabbix-common-database-mysql-x.x.xx
Выполняем импорт:
# mysql -uroot -pzabbix zabbix < schema.sql # mysql -uroot -pzabbix zabbix < images.sql # mysql -uroot -pzabbix zabbix < data.sql
Перегружаем mysql
# service mysqld restart //или # systemctl restart zabbix_mysql
Проверка БД
# mysqlcheck -uroot -pzabbix --auto-repair --check --all-databases
Размер БД
# mysql -uroot -pzabbix mysql> SELECT table_schema "databases name", sum( data_length + index_length) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ; +--------------------+----------------------+ | databases name | Data Base Size in MB| +--------------------+----------------------+ | information_schema | 0.15625000 | | mysql | 2.28296661 | | performance_schema | 0.00000000 | | sys | 0.01562500 | | zabbix | 1623.98437500 | +--------------------+----------------------+ 5 rows in set, 48 warnings (0,80 sec) mysql> quit
Переходим в режим GUI, заключительного этапа установки Zabbix
Запустите Firefox и введите адрес
- http://ip/zabbix/frontends/php
- Мастер предварительной настройки севера zabbix проведёт Вас по шагам и задаст вопросы.
- После того, как на все вопросы мастера настройки будут получены ответы, возникнет окно с приглашением ввести логин и пароль для первого входа
- логин admin
- пароль zabbix
- Не забудьте изменить пароль
Сохранение и Восстановление Zabbix
Для того, чтобы сделать резервную копию необходимо определить файловую структуру резервного копирования. Вероятнее всего нам потребуется сохранить БД, файл конфигурации Zabbix сервера и файл настроек серверного агента. Создадим инструкцию которая будет по расписанию crontab -e, примерно раз в неделю в 00ч 00м запускать файл chmod 744 zabb_bk
home]# chmod 744 zabb_bk
zabb_bk
#!/bin/bash TEMPDIR=/tmp/zb_bk/ BACKUPDIR=/home/ mkdir -p $TEMPDIR # Стор Apache2 systemctl stop httpd2 # Стоп zabbix mysql systemctl stop zabbix_mysql # Создать dump MySQL и копировать во временный каталог mysqldump -uroot -pzabbix -A > $TEMPDIR/all_bd.sql # Старт Apache2 systemctl start httpd2 # Старт zabbix mysql systemctl start zabbix_mysql # Копировать каталоги во временную директорию cp -r /etc/zabbix/zabbix_server.conf $TEMPDIR cp -r /var/www/webapps/zabbix/frontends/php/conf/zabbix.conf.php $TEMPDIR # Сжать и добавить дату создания(максимально до 31 дня месяца) tar -cjf $BACKUPDIR/zabbix_`date +%d`_back.tar.bz2 $TEMPDIR # Очистить временный каталог rm -rf /tmp/zb_bk
Созданный архив, zabbix_23_back.tar.bz2, также можно хранить на специальном сервере для резервных копий вашей компании Для восстановления Zabbix после краха в следствии природных, техногенных явлений или просто не выдержав санкционного давления, необходимо при установке нового сервера zabbix полностью восстановить имя сервера, IP сервера, пароль root mysql сервера после чего выполнить все вышеуказанные действия по установке вашего Zabbix сервера, лучше той же версии. всё поверить и приступить к восстановлению выполнив сле
Справочная информация
Конфиги
- Агент на сервере
# vim /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
- Агент на клиентах ALT(овых)
# vim /etc/zabbix/zabbix_agentd.conf ListenPort=10050 ServerActive=zabbix.ivn Hostname=zabbix
- Основной Zabbix конфиг
# vim /var/www/webapps/zabbix/frontends/php/conf/zabbix.conf.php <?php // Zabbix GUI configuration file. global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'zabbix'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; $ZBX_SERVER = 'localhost'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = 'zabbix'; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ?>
Службы Zabbix
- Сервер Zabbix
# service zabbix_mysql start|stop|restart|status //или # systemctl start|stop|restart|status zabbix_mysql
- Агент Zabbix для ALT(овых)
# service zabbix_agentd start|stop|restart|status //или # systemctl start|stop|restart|status zabbix_agentd
- Сервер MySql
# service mysqld start|stop|restart|status //или # systemctl start|stop|restart|status mysqld
- Сервер Appache2
# service httpd2 start|stop|restart|status //или # systemctl start|stop|restart|status httpd2
Журналы Zabbix
# tail -f /var/log/zabbix/zabbix_server.log //сервер # tail -f /var/log/zabbix/zabbix_agentd.log //агент # journalctl -f //OC
Порты zabbix
# netstat -tulpn|grep zabbix
Версия агента Zabbix
# zabbix_agentd -V
Каталоги для архивации
# mysqldump -uroot -pzabbix -A>zabb_bk.sql # /etc/php # /etc/zabbix # /var/www/webapps/zabbix
Основная документация Zabbix [1]