Установка и первоначальная настройка ZABBIX: различия между версиями
Keller (обсуждение | вклад) (Добавлены инструкции по бэкапу БД Zabbix) |
|||
(не показано 25 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
Перед установкой Zabbix, у Вас должен быть настроен и запущен сервер PostgreSQL или MySQL, с созданным пользователем zabbix и созданной базой zabbix. | |||
Для управления системой мониторинга и чтения данных используется веб-интерфейс, написанный на PHP, соответственно должен быть настроен и запущен веб-сервер (Apache, Nginx). | |||
== Установка Zabbix сервера == | |||
== | === Создание базы данных === | ||
В процессе установки Zabbix сервера должна быть создана база данных Zabbix. | |||
== | ==== PostgreSQL ==== | ||
В репозитории [[p10]] на данный момент поддерживается несколько версий PostgreSQL. В данной статье мы будем использовать версию postgresql 16. | |||
Установить PostgreSQL, Zabbix сервер и дополнительную утилиту {{pkg|fping}}: | |||
<source lang="text" highlight="1"># apt-get install postgresql16-server zabbix-server-pgsql fping</source> | |||
== | {{Note| В [[p9]] можно использовать postgresql 12: | ||
<source lang="text" highlight="1"># apt-get install postgresql12-server zabbix-server-pgsql fping</source>}} | |||
== | Подготовить к запуску и настроить службы PostgreSQL: | ||
*создать системные базы данных: | |||
< | *:<source lang="text" highlight="1"> | ||
# /etc/init.d/postgresql initdb | |||
</source> | |||
*включить по умолчанию и запустить службу: | |||
*:<source lang="text" highlight="1"> | |||
# systemctl enable --now postgresql | |||
</source> | |||
== | Создать базу данных Zabbix: | ||
*создать пользователя zabbix (пароль необходимо запомнить) и базу данных zabbix (под правами root): | |||
*:<source lang="text" highlight="1,4"> | |||
# 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' | |||
</source> | |||
*добавить в базу данные для веб-интерфейса (последовательность команд важна, в разных версиях путь будет отличаться, версия помечена звёздочкой *, какая версия установлена можно посмотреть командой rpm -ql zabbix-common-database-pgsql | grep schema.sql ): | |||
*:<source lang="text" highlight="1"> # su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/schema.sql zabbix'</source> | |||
*:если вы создаете базу данных для Zabbix прокси, следующие команды выполнять не нужно | |||
*:<source lang="text" highlight="1,2"> | |||
# 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' | |||
</source> | |||
== | ==== MySQL/MariaDB ==== | ||
Установить сервер MySQL или MariaDB (в данном случае MariaDB), Zabbix сервер и дополнительную утилиту {{pkg|fping}}: | |||
<source lang="text" highlight="1"># apt-get install mariadb-server zabbix-server-mysql fping</source> | |||
Включить по умолчанию и запустить службу mysqld: | |||
<source lang="text" highlight="1"> | |||
# systemctl enable --now mysqld | |||
</source> | |||
Создать базу данных Zabbix: | |||
*создать пользователя zabbix и базу данных zabbix (пароль необходимо запомнить): | |||
*:<source lang="text" highlight="1,3-5"> | |||
$ 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; | |||
</source> | |||
*добавить в базу данные для веб-интерфейса (последовательность команд важна, в разных версиях путь будет отличаться, версия помечена звёздочкой): | |||
*:<source lang="text" highlight="1"> $ mysql -uzabbix -p<пароль> zabbix < /usr/share/doc/zabbix-common-database-mysql-*/schema.sql</source> | |||
*:если вы создаете базу данных для Zabbix прокси, следующие команды выполнять не нужно | |||
*:<source lang="text" highlight="1,2"> | |||
$ 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 | |||
</source> | |||
== Установка | === Установка Apache2 === | ||
Установить необходимые пакеты: | |||
<source lang="text" highlight="1"> | |||
# apt-get install apache2 apache2-mod_php8.2 | |||
</source> | |||
== Каталоги для архива | {{Note|Для [[p9]]: | ||
<source lang="text" highlight="1"># apt-get install apache2 apache2-mod_php7</source>}} | |||
Добавить в автозапуск и запустить apache2: | |||
<source lang="text" highlight="1"> | |||
# systemctl enable --now httpd2 | |||
</source> | |||
=== Установка PHP === | |||
{{Note|Начиная с Zabbix 5.0 для веб-интерфейса требуется PHP версии 7.2 или выше. }} | |||
{{Note| Начиная с версии php 8.0, пакеты модулей именуются следующим образом: | |||
php<мажорная>.<минорная версии>-<имя модуля> | |||
Все пакеты php можно устанавливать и эксплуатировать в одной системе одновременно, за исключением пакетов apache2-mod_php<версия> — они не умеют работать в одном адресном пространстве. | |||
В данной статье для [[p10]] используется версия php8.1.}} | |||
Установить необходимые пакеты: | |||
*если Zabbix устанавливается с PostgreSQL: | |||
*:<source lang="text" highlight="1"> | |||
# apt-get install php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-pgsql php8.2-ldap php8.2-openssl | |||
</source> | |||
*если Zabbix устанавливается с MySQL: | |||
*:<source lang="text" highlight="1"> | |||
# apt-get install php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-mysqlnd-mysqli php8.2-ldap php8.2-openssl | |||
</source> | |||
{{Note|Для [[p9]]: | |||
*если Zabbix устанавливается с PostgreSQL: | |||
*:<source lang="text" highlight="1"> | |||
# apt-get install php7 php7-mbstring php7-sockets php7-gd2 php7-xmlreader php7-pgsql php7-ldap | |||
</source> | |||
*если Zabbix устанавливается с MySQL: | |||
*:<source lang="text" highlight="1"> | |||
# apt-get install php7 php7-mbstring php7-sockets php7-gd2 php7-xmlreader php7-mysqlnd-mysqli php7-ldap | |||
</source>}} | |||
Изменить некоторые опции php в файле {{path|/etc/php/8.2/apache2-mod_php/php.ini}} (версия PHP может быть другой): | |||
<source lang="text"> | |||
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 | |||
</source> | |||
Перезапустить apache2: | |||
<source lang="text" highlight="1"> | |||
# systemctl restart httpd2 | |||
</source> | |||
=== Настройка и запуск Zabbix сервера === | |||
Внести изменения в конфигурационный файл {{path|/etc/zabbix/zabbix_server.conf}}: | |||
<source lang="text"> | |||
DBHost=localhost | |||
DBName=zabbix | |||
DBUser=zabbix | |||
DBPassword=Пароль | |||
</source> | |||
В параметре DBPassword используйте пароль от MySQL базы данных Zabbix; пароль пользователя PosgreSQL для PosgreSQL. | |||
Добавить Zabbix server в автозапуск и запустить его: | |||
*если Zabbix устанавливается с PostgreSQL: | |||
*:<source lang="text" highlight="1"> | |||
# systemctl enable --now zabbix_pgsql | |||
</source> | |||
*если Zabbix устанавливается с MySQL: | |||
*:<source lang="text" highlight="1"> | |||
# systemctl enable --now zabbix_mysql | |||
</source> | |||
=== Установка веб-интерфейса Zabbix === | |||
Установить метапакеты: | |||
<source lang="text" highlight="1"> | |||
# apt-get install zabbix-phpfrontend-apache2 zabbix-phpfrontend-php8.2 | |||
</source> | |||
{{Note|Для [[p9]]: | |||
<source lang="text" highlight="1"> | |||
# apt-get install zabbix-phpfrontend-apache2-mod_php7 zabbix-phpfrontend-php7 | |||
</source>}} | |||
Включить аддоны в apache2: | |||
<source lang="text" highlight="1"> | |||
# ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled/ | |||
</source> | |||
Перезапустить apache2: | |||
<source lang="text" highlight="1"> | |||
# service httpd2 restart | |||
</source> | |||
Изменить права доступа к конфигурационному каталогу веб-интерфейса, чтобы веб-установщик мог записать конфигурационный файл: | |||
<source lang="text" highlight="1"> | |||
# chown apache2:apache2 /var/www/webapps/zabbix/ui/conf | |||
</source> | |||
{{Note| Если устанавливается Zabbix4, команда будет такой: | |||
<source lang="text" highlight="1"> | |||
# chown apache2:apache2 /var/www/webapps/zabbix/frontends/php/conf | |||
</source>}} | |||
В браузере перейти на страницу установки Zabbix сервера: | |||
http://<ip-сервера>/zabbix | |||
{{note|Если при входе на страницу у Вас будет 403 ошибка (доступ запрещен), обратитесь к [[Zabbix_заметки#Настройка_Apache2]]}} | |||
При первом заходе на страницу запустится мастер, который шаг за шагом проверит возможности веб-сервера, интерпретатора PHP и сконфигурирует подключение к базе данных. | |||
[[Файл:Zabbix-1.png|Страница установки zabbix]] | |||
Для начала установки необходимо нажать кнопку «Далее» («Next Step»), что осуществит переход на страницу проверки предварительных условий (версия PHP может быть другой): | |||
[[Файл:Zabbix-2.png|Страница проверки предварительных условий zabbix]] | |||
Необходимо доустановить то, что требуется и перейти на следующую страницу. | |||
Здесь необходимо ввести параметры подключения к базе данных (параметры подключения нужно указывать такие же, как у сервера Zabbix). | |||
Если база в PostgreSQL, по умолчанию в качестве Database schema необходимо указать «public»: | |||
[[Файл:Zabbix-3.png|Параметры подключения к базе данных PostgreSQL]] | |||
{{Note|Параметры подключения к базе данных MySQL: | |||
[[Файл:Zabbix-mysql.png|Zabbix. Параметры подключения к базе данных MySQL]] | |||
}} | |||
На следующей странице можно задать имя сервера: | |||
[[Файл:Zabbix-4.png|Настройки zabbix сервера]] | |||
После окончания установки на экране будет отображаться форма входа в интерфейс управления системой мониторинга. Параметры доступа по умолчанию: | |||
<source lang="text"> | |||
Логин: Admin | |||
Пароль: zabbix | |||
</source> | |||
[[Файл:Zabbix-7.png|Форма входа в интерфейс управления системой мониторинга]] | |||
Войдя в систему, нужно сменить пароль пользователя ({{nav|Administration|Users}}), завести других пользователей и можно начать настраивать Zabbix. | |||
[[Файл:Zabbix-8.png|800px|Интерфейс управления системой мониторинга]] | |||
{{Note|В профиле пользователя можно настроить некоторые функции веб-интерфейса Zabbix, такие, как язык интерфейса, цветовая тема, количество отображаемых строк в списках и т.п. Сделанные в профиле изменения будут применены только к пользователю, в профиле которого были сделаны эти изменения. }} | |||
=== Обновление с Zabbix4 до Zabbix5 === | |||
После обновления необходимо изменить права доступа к новой директории с zabbix и изменить путь в конфигурационном файле: | |||
<source lang="text" highlight="1-3"> | |||
# chown -R apache2:apache2 /var/www/webapps/zabbix/ui/conf | |||
# sed -i 's|/var/www/webapps/zabbix/frontends/php|/var/www/webapps/zabbix/ui|' /etc/httpd2/conf/extra-enabled/A.zabbix.conf | |||
# systemctl restart httpd2 | |||
</source> | |||
Для того, чтобы из System information убрать предупреждение Database history tables upgraded: No необходимо остановить zabbix и обновить базу данных: | |||
<source lang="text" highlight="1-2"> | |||
# systemctl stop zabbix_pgsql | |||
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/double.sql zabbix' | |||
</source> | |||
В файл {{path|/var/www/webapps/zabbix/ui/conf/zabbix.conf.php}} добавить параметр $DB['DOUBLE_IEEE754'] = 'true'; и запустить zabbix: | |||
<source lang="text" highlight="1-2"> | |||
# echo "\$DB['DOUBLE_IEEE754'] = 'true';" >>/var/www/webapps/zabbix/ui/conf/zabbix.conf.php | |||
# systemctl start zabbix_pgsql | |||
</source> | |||
== Установка и первоначальная настройка клиента Zabbix == | |||
Установить необходимый пакет: | |||
<source lang="text" highlight="1"> | |||
# apt-get install zabbix-agent | |||
</source> | |||
Если Zabbix-агент устанавливается не на сам сервер мониторинга, то в файле конфигурации агента {{path|/etc/zabbix/zabbix_agentd.conf}} нужно задать следующие параметры: | |||
<source lang="text"> | |||
Server=<ip-сервера> | |||
ServerActive=<ip-сервера> | |||
Hostname=freeipa.example.test | |||
</source> | |||
где freeipa.example.test — имя узла мониторинга, которое будет указано на сервере Zabbix; | |||
<ip-сервера> — адрес сервера, которому разрешено обращаться к агенту. | |||
{{Note|Если параметр Hostname будет пустой или закомментирован, то узел добавится под системным именем. }} | |||
Добавить Zabbix-агент в автозапуск и запустить его: | |||
<source lang="text" highlight="1"> | |||
# systemctl enable --now zabbix_agentd.service | |||
</source> | |||
{{Note|Для настройки Zabbix-агента можно также воспользоваться модулем [[ЦУС]] [[Alterator-zabbix-agent|Агент наблюдения]].}} | |||
== Мониторинг CEPH == | |||
=== Настройка ноды === | |||
Установить на ноду CEPH необходимые пакеты: | |||
<source lang="text" highlight="1"> | |||
# apt-get install zabbix-agent-sudo git | |||
</source> | |||
Загрузить необходимые файлы: | |||
<source lang="text" highlight="1"> | |||
# git clone https://github.com/thelan/ceph-zabbix.git | |||
</source> | |||
Создать директорию и скопировать файлы: | |||
<source lang="text" highlight="1-3"> | |||
# 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/ | |||
</source> | |||
Изменить путь расположения скрипта в файле {{path|zabbix_agent_ceph_plugin.conf}}: | |||
<source lang="text" highlight="1"> | |||
# sed -i 's/\/opt/sudo \/etc\/zabbix\/zabbix_ceph/' /etc/zabbix/zabbix_agentd.conf.d/zabbix_agent_ceph_plugin.conf | |||
</source> | |||
Добавить скрипту права на запуск: | |||
<source lang="text" highlight="1"> | |||
# chmod +x /etc/zabbix/zabbix_ceph/ceph-status.sh | |||
</source> | |||
=== Настройка Zabbix сервера === | |||
В веб-интерфейсе сервера необходимо перейти на вкладку {{nav|Configuration|Templates}}, нажать кнопку ''Import''. | |||
Импортировать файлы {{path|zbx_ceph_mon_template.xml}} {{path|zbx_ceph_osd_template.xml}} {{path|zbx_ceph_cluster_template.xml}} {{path|zbx_ceph_mds_template.xml}} из директории {{path|zabbix_templates}}, которая находится в склонированной раннее директории. | |||
После импорта шаблонов необходимо их прикрепить к нужному хосту. | |||
== Возможные проблемы == | |||
=== Не работает обнаружение при помощи ICMP Ping === | |||
В журнале {{path|/var/log/zabbix/zabbix_server.log}} присутствуют различные ошибки касающиеся команд {{cmd|fping}}, {{cmd|fping6}}: | |||
*'''failed: /usr/sbin/fping6: can't create raw socket (must run as root?) : Permission denied''' | |||
*:Для разрешения проблемы необходимо обеспечить запуск программ {{cmd|fping}} и {{cmd|fping6}} с повышением привилегий. Так как сервер запускается от пользователя zabbix входящего в группу zabbix, то | |||
*:<source lang="text" highlight="1-6"> | |||
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 | |||
</source> | |||
*'''ping failed: *.*.*.*: Address family for hostname not supported''' | |||
*:Если вы не используете полноценно ipv6 в вашей сети, рекомендуется отключить использование {{cmd|fping6}}. Для этого в конфигурационном файле {{path|/etc/zabbix/zabbix_server.conf}} раскомментируйте и оставьте без значения параметр | |||
*:<source lang="text"> | |||
Fping6Location= | |||
</source> | |||
*:Также бывает полезно указать точное нахождение {{cmd|fping}}, в этом же файле директива: | |||
*:<source lang="text"> | |||
FpingLocation=/usr/sbin/fping | |||
</source> | |||
Вы всегда можете проверить корректность работы команд {{cmd|fping}} и {{cmd|fping6}} из терминала авторизовавшись пользователем zabbix: | |||
<source lang="text" highlight="1-2"> | |||
# su zabbix -s /bin/sh | |||
$ fping 192.168.0.1 | |||
192.168.0.1 is alive | |||
</source> | |||
Разрешения выполнения команды {{cmd|fping}}, управляемой control: | |||
<source lang="text" highlight="1"> | |||
# 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 | |||
</source> | |||
Переключить control для {{cmd|fping}}: | |||
<source lang="text" highlight="1"> | |||
# control fping public | |||
</source> | |||
== Создание резервных копий == | |||
'''Каталоги для архива''' | |||
<pre> | <pre> | ||
/etc/zabbix | /etc/zabbix | ||
/var/www/webapps/zabbix | /var/www/webapps/zabbix | ||
Строка 105: | Строка 368: | ||
/etc/httpd2/conf/sites-available | /etc/httpd2/conf/sites-available | ||
/etc/php/x.x/apache2-mod_php/php.ini | /etc/php/x.x/apache2-mod_php/php.ini | ||
</pre> | |||
'''Бэкап базы данных''' | |||
Создание бэкапа PostgreSQL: | |||
<pre> | |||
pg_dump -U postgres -Fc zabbix > zabbix.dump | |||
</pre> | |||
Восстановление бэкапа PostgreSQL: | |||
<pre> | |||
pg_restore -U zabbix -d zabbix zabbix.dump | |||
</pre> | |||
Создание бэкапа MySQL: | |||
<pre> | |||
mysqldump -uroot -pzabbix -A>zabb_bk.sql | |||
</pre> | |||
Восстановление бэкапа MySQL: | |||
<pre> | |||
mysql -uroot -pzabbix < zabb_bk.sql | |||
</pre> | </pre> | ||
== Полезные ссылки == | == Полезные ссылки == | ||
Zabbix: | Zabbix 5.0 официальная документация: https://www.zabbix.com/documentation/5.0/ru/manual | ||
Zabbix | Zabbix 6.0 официальная документация: https://www.zabbix.com/documentation/6.0/ru/manual | ||
== Примечания == | == Примечания == |
Текущая версия от 15:28, 1 ноября 2024
Перед установкой Zabbix, у Вас должен быть настроен и запущен сервер PostgreSQL или MySQL, с созданным пользователем zabbix и созданной базой zabbix.
Для управления системой мониторинга и чтения данных используется веб-интерфейс, написанный на PHP, соответственно должен быть настроен и запущен веб-сервер (Apache, Nginx).
Установка Zabbix сервера
Создание базы данных
В процессе установки Zabbix сервера должна быть создана база данных Zabbix.
PostgreSQL
В репозитории p10 на данный момент поддерживается несколько версий PostgreSQL. В данной статье мы будем использовать версию postgresql 16.
Установить PostgreSQL, Zabbix сервер и дополнительную утилиту fping:
# apt-get install postgresql16-server zabbix-server-pgsql fping
# apt-get install postgresql12-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'
- добавить в базу данные для веб-интерфейса (последовательность команд важна, в разных версиях путь будет отличаться, версия помечена звёздочкой *, какая версия установлена можно посмотреть командой rpm -ql zabbix-common-database-pgsql | grep schema.sql ):
# 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'
MySQL/MariaDB
Установить сервер MySQL или MariaDB (в данном случае MariaDB), Zabbix сервер и дополнительную утилиту 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_php8.2
# apt-get install apache2 apache2-mod_php7
Добавить в автозапуск и запустить apache2:
# systemctl enable --now httpd2
Установка PHP
php<мажорная>.<минорная версии>-<имя модуля>
Все пакеты php можно устанавливать и эксплуатировать в одной системе одновременно, за исключением пакетов apache2-mod_php<версия> — они не умеют работать в одном адресном пространстве.
В данной статье для p10 используется версия php8.1.
Установить необходимые пакеты:
- если Zabbix устанавливается с PostgreSQL:
# apt-get install php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-pgsql php8.2-ldap php8.2-openssl
- если Zabbix устанавливается с MySQL:
# apt-get install php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-mysqlnd-mysqli php8.2-ldap php8.2-openssl
- если 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/8.2/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 сервера
Внести изменения в конфигурационный файл /etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Пароль
В параметре DBPassword используйте пароль от MySQL базы данных Zabbix; пароль пользователя PosgreSQL для PosgreSQL.
Добавить Zabbix server в автозапуск и запустить его:
- если Zabbix устанавливается с PostgreSQL:
# systemctl enable --now zabbix_pgsql
- если Zabbix устанавливается с MySQL:
# systemctl enable --now zabbix_mysql
Установка веб-интерфейса Zabbix
Установить метапакеты:
# apt-get install zabbix-phpfrontend-apache2 zabbix-phpfrontend-php8.2
# apt-get install zabbix-phpfrontend-apache2-mod_php7 zabbix-phpfrontend-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»), что осуществит переход на страницу проверки предварительных условий (версия PHP может быть другой):
Необходимо доустановить то, что требуется и перейти на следующую страницу.
Здесь необходимо ввести параметры подключения к базе данных (параметры подключения нужно указывать такие же, как у сервера Zabbix).
Если база в PostgreSQL, по умолчанию в качестве Database schema необходимо указать «public»:
На следующей странице можно задать имя сервера:
После окончания установки на экране будет отображаться форма входа в интерфейс управления системой мониторинга. Параметры доступа по умолчанию:
Логин: Admin
Пароль: zabbix
Войдя в систему, нужно сменить пароль пользователя (Administration ▷ Users), завести других пользователей и можно начать настраивать Zabbix.
Обновление с Zabbix4 до Zabbix5
После обновления необходимо изменить права доступа к новой директории с zabbix и изменить путь в конфигурационном файле:
# chown -R apache2:apache2 /var/www/webapps/zabbix/ui/conf
# sed -i 's|/var/www/webapps/zabbix/frontends/php|/var/www/webapps/zabbix/ui|' /etc/httpd2/conf/extra-enabled/A.zabbix.conf
# systemctl restart httpd2
Для того, чтобы из System information убрать предупреждение Database history tables upgraded: No необходимо остановить zabbix и обновить базу данных:
# systemctl stop zabbix_pgsql
# su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/double.sql zabbix'
В файл /var/www/webapps/zabbix/ui/conf/zabbix.conf.php добавить параметр $DB['DOUBLE_IEEE754'] = 'true'; и запустить zabbix:
# echo "\$DB['DOUBLE_IEEE754'] = 'true';" >>/var/www/webapps/zabbix/ui/conf/zabbix.conf.php
# systemctl start zabbix_pgsql
Установка и первоначальная настройка клиента 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
Создание резервных копий
Каталоги для архива
/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
Бэкап базы данных
Создание бэкапа PostgreSQL:
pg_dump -U postgres -Fc zabbix > zabbix.dump
Восстановление бэкапа PostgreSQL:
pg_restore -U zabbix -d zabbix zabbix.dump
Создание бэкапа MySQL:
mysqldump -uroot -pzabbix -A>zabb_bk.sql
Восстановление бэкапа MySQL:
mysql -uroot -pzabbix < zabb_bk.sql
Полезные ссылки
Zabbix 5.0 официальная документация: https://www.zabbix.com/documentation/5.0/ru/manual
Zabbix 6.0 официальная документация: https://www.zabbix.com/documentation/6.0/ru/manual