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

zabbix 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 после краха, необходимо полностью

Справочная информация

Конфиги

  • Агент на сервере
# 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]