Установка и первоначальная настройка ZABBIX
Перед установкой Zabbix, у Вас должен быть настроен и запущен сервер PostgreSQL или MySQL, с созданным пользователем zabbix и созданной базой zabbix.
Для управления системой мониторинга и чтения данных используется веб-интерфейс, написанный на PHP, соответственно должен быть настроен и запущен веб-сервер (Apache, Nginx).
Установка
Установка Zabbix Server
Установка Zabbix Server с PostgreSQL
В p9 на данный момент поддерживается несколько версий PostgreSQL. В данной статье мы будем использовать версию postgresql 9.6.
Установить PostgreSQL, Zabbix Server и дополнительную утилиту fping:
# apt-get install postgresql9.6-server zabbix-server-pgsql fping
Подготовить к запуску и настроить службы PostgreSQL:
- создать системные базы данных:
# /etc/init.d/postgresql initdb
- включить по умолчанию и запустить службу:
# systemctl enable --now postgresql
Создать базу данных Zabbix:
- создать пользователя zabbix (пароль необходимо запомнить) и базу данных zabbix (под правами root):
# su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt zabbix' Введите пароль для новой роли: Повторите его: # su - postgres -s /bin/sh -c 'createdb -O zabbix zabbix' # service postgresql restart
- добавить в базу данные для веб-интерфейса (последовательность команд важна, в разных версиях путь будет отличаться, версия помечена звёздочкой):
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/schema.sql zabbix'
- если вы создаете базу данных для Zabbix прокси, следующие команды выполнять не нужно
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/images.sql zabbix' # su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/data.sql zabbix'
Установка Zabbix Server с использованием MySQL
Установить MySQL, Zabbix Server и дополнительную утилиту fping:
# apt-get install mariadb-server zabbix-server-mysql fping
Включить по умолчанию и запустить службу mysqld:
# systemctl enable --now mysqld
Создать базу данных Zabbix:
- создать пользователя zabbix и базу данных zabbix (пароль необходимо запомнить):
$ mysql -uroot -p Enter password: MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '<пароль>'; MariaDB [(none)]> quit;
- добавить в базу данные для веб-интерфейса (последовательность команд важна, в разных версиях путь будет отличаться, версия помечена звёздочкой):
$ mysql -uzabbix -p<пароль> zabbix < /usr/share/doc/zabbix-common-database-mysql-*/schema.sql
- если вы создаете базу данных для Zabbix прокси, следующие команды выполнять не нужно
$ mysql -uzabbix -p<пароль> zabbix < /usr/share/doc/zabbix-common-database-mysql-*/images.sql $ mysql -uzabbix -p<пароль> zabbix < /usr/share/doc/zabbix-common-database-mysql-*/data.sql
Установка Apache2
Установить необходимые пакеты:
# apt-get install apache2 apache2-mod_php7
Добавить в автозапуск и запустить apache2:
# systemctl enable --now httpd2
Установка PHP
Установить необходимые пакеты:
- если Zabbix устанавливается с PostgreSQL:
# apt-get install php7 php7-mbstring php7-sockets php7-gd2 php7-xmlreader php7-pgsql php7-ldap
- если Zabbix устанавливается с MySQL:
# apt-get install php7 php7-mbstring php7-sockets php7-gd2 php7-xmlreader php7-mysqlnd-mysqli php7-ldap
Изменить некоторые опции php в файле /etc/php/7.3/apache2-mod_php/php.ini (версия PHP может быть другой):
memory_limit = 256M
post_max_size = 32M
max_execution_time = 600
max_input_time = 600
date.timezone = Europe/Moscow (регион вписать свой)
always_populate_raw_post_data = -1
Перезапустить apache2:
# systemctl restart httpd2
Настройка и запуск Zabbix Server
Внести изменения в конфигурационный файл /etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Пароль от базы
Добавить Zabbix server в автозапуск и запустить его:
- если Zabbix устанавливается с PostgreSQL:
# systemctl enable --now zabbix_pgsql
- если Zabbix устанавливается с MySQL:
# systemctl enable --now zabbix_mysql
Установка веб-интерфейса Zabbix
Установить метапакет:
# apt-get install zabbix-phpfrontend-apache2-mod_php7
Включить аддоны в apache2:
# ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled/
Перезапустить apache2:
# service httpd2 restart
Изменить права доступа к конфигурационному каталогу веб-интерфейса, чтобы веб-установщик мог записать конфигурационный файл:
# chown apache2:apache2 /var/www/webapps/zabbix/ui/conf
# chown apache2:apache2 /var/www/webapps/zabbix/frontends/php/conf
В браузере перейти на страницу установки Zabbix сервера:
http://<ip-сервера>/zabbix
При первом заходе на страницу запустится мастер, который шаг за шагом проверит возможности веб-сервера, интерпретатора PHP и сконфигурирует подключение к базе данных.
Для начала установки необходимо нажать кнопку Next Step, что осуществит переход на страницу проверки предварительных условий:
Необходимо доустановить то, что требуется и перейти на следующую страницу.
Здесь необходимо ввести параметры подключения к базе данных (параметры подключения нужно указывать такие же, как у сервера Zabbix).
Если база в PostgreSQL, по умолчанию в качестве Database schema необходимо указать «public»:
На следующей странице можно задать имя сервера:
После окончания установки на экране будет отображаться форма входа в интерфейс управления системой мониторинга. Параметры доступа по умолчанию:
Логин: Admin
Пароль: zabbix
Войдя в систему, нужно сменить пароль пользователя, завести других пользователей и можно начать настраивать Zabbix.
Установка и первоначальная установка клиента Zabbix
Установить необходимый пакет:
# apt-get install zabbix-agent
Если Zabbix-агент устанавливается не на сам сервер мониторинга, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно задать следующие параметры:
Server=<ip-сервера>
ServerActive=<ip-сервера>
Hostname=freeipa.example.test
где freeipa.example.test — имя узла мониторинга, которое будет указано на сервере Zabbix;
<ip-сервера> — адрес сервера, которому разрешенно обращаться к агенту.
Добавить Zabbix-агент в автозапуск и запустить его:
# systemctl enable --now zabbix_agentd.service
Мониторинг CEPH
Настройка ноды
Установить на ноду CEPH необходимые пакеты:
# apt-get install zabbix-agent-sudo git
Загрузить необходимые файлы:
# git clone https://github.com/thelan/ceph-zabbix.git
Создать директорию и скопировать файлы:
# mkdir /etc/zabbix/zabbix_ceph
# cp ceph-status.sh /etc/zabbix/zabbix_ceph/
# cp zabbix_agent_ceph_plugin.conf /etc/zabbix/zabbix_agentd.conf.d/
Изменить путь расположения скрипта в файле zabbix_agent_ceph_plugin.conf:
# sed -i 's/\/opt/sudo \/etc\/zabbix\/zabbix_ceph/' /etc/zabbix/zabbix_agentd.conf.d/zabbix_agent_ceph_plugin.conf
Добавить скрипту права на запуск:
# chmod +x /etc/zabbix/zabbix_ceph/ceph-status.sh
Настройка ZABBIX сервера
В веб-интерфейсе сервера необходимо перейти на вкладку Configuration -> Templates -> Import
Импортировать файлы zbx_ceph_mon_template.xml zbx_ceph_osd_template.xml zbx_ceph_cluster_template.xml zbx_ceph_mds_template.xml из директории zabbix_templates, которая находится в склонированной раннее директории.
После импорта шаблонов необходимо их прикрепить к нужному хосту.
Возможные проблемы
Не работает обнаружение при помощи ICMP Ping
В журнале /var/log/zabbix/zabbix_server.log присутствуют различные ошибки касающиеся команд fping, fping6:
- failed: /usr/sbin/fping6: can't create raw socket (must run as root?) : Permission denied
- Для разрешение проблемы необходимо обеспечить запуск программ fping и fping6 с повышением привилегий. Так как сервер запускается от пользователя zabbix входящего в группу zabbix, то
chown root:zabbix /usr/sbin/fping chown root:zabbix /usr/sbin/fping6 chmod 710 /usr/sbin/fping chmod 710 /usr/sbin/fping6 chmod ug+s /usr/sbin/fping chmod ug+s /usr/sbin/fping6
- ping failed: *.*.*.*: Address family for hostname not supported
- Если вы не используете полноценно ipv6 в вашей сети, рекомендуется отключить использование fping6. Для этого в конфигурационном файле /etc/zabbix/zabbix_server.conf раскомментируйте и оставьте без значения параметр
Fping6Location=
- Также бывает полезно указать точное нахождение fping, в этом же файле директива:
FpingLocation=/usr/sbin/fping
Вы всегда можете проверить корректность работы команд fping и fping6 из терминала авторизовавшись пользователем zabbix
# su zabbix -s /bin/sh
$ fping 192.168.0.1
192.168.0.1 is alive
Разрешения выполнения команды fping, управляемой control:
# control fping help
public: Any user can execute /usr/sbin/fping
netadmin: Only "netadmin" group members can execute /usr/sbin/fping
restricted: Only root can execute /usr/sbin/fping
Переключить control для fping:
# control fping public
Каталоги для архива
mysqldump -uroot -pzabbix -A>zabb_bk.sql /etc/zabbix /var/www/webapps/zabbix /etc/httpd2/conf/addon.d /etc/httpd2/conf/sites-available /etc/php/x.x/apache2-mod_php/php.ini
Полезные ссылки
Zabbix 5.0 официальная документация: : https://www.zabbix.com/documentation/5.0/ru/manual