Zabbix заметки

Материал из ALT Linux Wiki

Администрирование ИТ предприятия невозможно без современных средств мониторинга и анализа, позволяющих реагировать на критические ситуации, отслеживать динамику работы серверов, рабочих станций и приложений. Из доступных СПО для мониторинга можно выделить 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 после краха в следствии природных, техногенных явлений или просто не выдержав санкционного давления, необходимо при установке нового сервера 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]