Оглавление
Необходимо установить Zabbix 4 с использованием базы данных postgresql9.6
Установку будем производить из репозитория разработчика При этом необходимо использовать последний релиз, так как с версией 4.0, например у меня, были проблемы, вида — discovery rule «dc02:service.discovery» became not supported: Cannot find the «data» array in the received JSON object. В данном примере используем версию 4.2
Первоначальная настройка системы
1 2 3 4 5 6 7 8 9 10 11 12 |
systemctl stop tuned systemctl disable tuned sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/^#\?UseDNS yes/UseDNS no/' /etc/ssh/sshd_config systemctl restart sshd yum -y install epel-release yum -y install htop zip mc wget sudo nmtui bzip2 net-tools bzip2 bind-utils yum -y update reboot |
1 2 3 4 |
linux16 /vmlinuz-3.10.0-957.5.1.el7.x86_64 root=/dev/mapper/centos_node-root ro rd.lvm.lv=centos_node/root zswap.enabled=1 zswap.max_pool_percent=30 elevator=noop transparent_hugepage=never LANG=ru_RU.UTF-8 selinux=0 |
Установка пакетов
1 2 3 4 5 6 |
rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm yum -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm yum -y install postgresql96-server |
Запуск WEB сервера и сервера базы данных
Инициализируем базу
1 2 3 |
/usr/pgsql-9.6/bin/postgresql96-setup initdb |
Приведем файл /var/lib/pgsql/9.6/data/pg_hba.conf к следующему виду
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 password # IPv6 local connections: host all all ::1/128 ident # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 ident #host replication postgres ::1/128 ident |
Запускаем сервер базы данных
1 2 3 4 |
systemctl enable postgresql-9.6 systemctl start postgresql-9.6 |
Установим временную зону date.timezone = Europe/Moscow в файле /etc/php.ini
1 2 3 4 |
systemctl enable httpd systemctl start httpd |
Создание пользователя и установка пароля
1 2 3 4 5 |
sudo -u postgres createuser --pwprompt zabbix Enter password for new role: Enter it again: |
Создание БД и выдача разрешений
1 2 3 |
sudo -u postgres createdb -O zabbix zabbix |
Проверяем авторизацию на SQL сервере
1 2 3 |
psql -h 127.0.0.1 -W -U zabbix |
Ели не удалось подключиться, смотрим ошибку. Если peer, то файл pg_hba.conf, если неверный пароль, то подключаемся и меняем
1 2 3 |
ALTER USER zabbix WITH PASSWORD 'zabbix'; |
Заливаем БД
1 2 3 |
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix |
Откроем порт WEB сервера
1 2 3 4 5 6 7 |
firewall-cmd --permanent --zone=public --add-port=80/tcp success firewall-cmd --reload success |
Запускам Zabbix
1 2 3 4 5 6 7 8 |
vi /etc/zabbix/zabbix_server.conf DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=<username_password> |
1 2 3 4 |
systemctl start zabbix-server systemctl enable zabbix-server |
Создание конфигурационного файла
Для этого переходим http://ip_address_zabbix_server/zabbix
По умолчание имя пользователя Admin, пароль zabbix
Дополнительно
Можно выполнить небольшой тюнинг ОС и настроек PGSQL, такие как использование RAM раздела для временной статистики сервера БД, настройка параметров в соответствии с количеством ядер процессора и количества ОП, а так же использование новых релизов PGSQL
«Приведем файл /var/lib/pgsql/9.6/data/pg_hba.conf к следующему виду»
и
«Инициализируем базу и запускаем сервер базы данных»
нужно поменять местами
Ну почему же? Сначала вносим правки в файл отвечающий за доступ, а уже за тем запускаем сервер. Вроде так…
при инициализации базы создается этот файл который мы пытаемся создать и править. и установка ругается.
опять не корректно написал. при /usr/pgsql-9.6/bin/postgresql96-setup initdb оный ругается на созданный файл /var/lib/pgsql/9.6/data/pg_hba.conf. (:
Все верно. Если ранее инициализация была выполнена, то система должна написать — Data directory is not empty!
Т.е. перед повторной инициализацией необходимо очистить директорию, НО, на сколько я помню, файл настроек сохраняется.
Спасибо, поправил
date.timezone = «Europe/Moscow»
В CentOS без кавычек, или что то другое имелось ввиду?
извиняюсь. Без кавычек в центосе не работает.
Коллега, проверил на нескольких инсталляциях — все параметры без кавычек
мало думаю много пишу, извините.. дело было в — ;
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Moscow
в таком виде все заработало.
Для тех кто будет корректировать /etc/php.ini не забывайте systemctl restart httpd(в зависимости от оси)
Спасибо большое, отличная статья. Установка прошла отлично, за исключением того что написал. После установки в веб морде внизу «Сервер Zabbix не запущен: отображаемая информация может быть неактивной», наверно тут дело уже в настройках.
Спасибо за оценку! )
Да, скорее всего в настройках
1. SELinux иногда подкидывает проблем
2. Отсутствует подключение к БД, например, не запущен сервер или указаны параметры авторизации, не позволяющие выполнить подключение.
3. Конфигурационный файл самого Zabbix-server
Может опытному взгляду сразу станет понят понятно в чем дело? Мы еще маленькие, месяц на никсах (: selinux отключен. В логах: 3196:20190619:110702.432 database is down: reconnecting in 10 seconds 3196:20190619:110710.760 Got signal [signal:15(SIGTERM),sender_pid:9630,sender_uid:0,reason:0]. Exiting … 3196:20190619:110710.766 [Z3001] connection to database ‘zabbix’ failed: [0] FATAL: Ident authentication failed for user «zabbix» 3196:20190619:110710.766 Cannot connect to the database. Exiting… 9636:20190619:110710.792 Starting Zabbix Server. Zabbix 4.2.3 (revision 3685611ba5). 9636:20190619:110710.792 ****** Enabled features ****** 9636:20190619:110710.792 SNMP monitoring: YES 9636:20190619:110710.792 IPMI monitoring: YES 9636:20190619:110710.792 Web monitoring: YES 9636:20190619:110710.792 VMware monitoring: YES 9636:20190619:110710.792 SMTP authentication: YES 9636:20190619:110710.792 Jabber notifications: NO 9636:20190619:110710.793 Ez Texting notifications: YES 9636:20190619:110710.793… Подробнее »
Не проходит авторизация — connection to database ‘zabbix’ failed: [0] FATAL: Ident authentication failed for user “zabbix”
У вас указан метод IDEN! А должен быть PASSWORD
И проверить метод авторизации в /var/lib/pgsql/9.6/data/pg_hba.conf
Должен быть
host all all 127.0.0.1/32 password
Если при настройке был указан не 127.0.0.1, то необходимо скорректировать настройки в pg_hba.conf и перезапустить SQL сервер
Все по образцу с данного сайта.
Хорошо )
Покажите /var/lib/pgsql/9.6/data/pg_hba.conf (даже можно привести его к виду — host all all 0.0.0.0/0 password) и в /etc/zabbix/zabbix_server.conf строки DBHost DBName DBUser
Пробуем подключиться
psql -h 127.0.0.1 -W -U zabbix
Ели не удалось подключиться, смотрим ошибку. Если peer, то файл pg_hba.conf, если неверный пароль, то подключаемся и меняем
ALTER USER zabbix WITH PASSWORD ‘zabbix’;
# TYPE DATABASE USER ADDRESS METHOD
# «local» is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
psql -h 127.0.0.1 -W -U zabbix — заходит
# DBUser=
DBUser=zabbix
# DBHost=127.0.0.1
# DBName=
DBName=zabbix
Хорошо, а чего # DBHost=127.0.0.1 закомментирован?
И попробуем так настроить
local all all password
host all all 127.0.0.1/32 password
ой, все затикало забегало как. Работает, все зелененькое ((: Спасибище!
опять эти комменты.. почему с ними не работает?
пошел дальше читать Эви Немета..
Отлично )
Так все просто, если не указывать на какой хост выполнять подключении к БД, то, я так думаю берется имя из файла hosts, в котором указан адрес IPv6, а для него в pg_hba.conf написано — iden