# dnf -y update # dnf -y install epel-release # dnf -y install net-tools vim mc wget unzip bash-completion glibc-langpack-ru
Отключаем или настраиваем SELinux в /etc/selinux/config, заодно можно сразу же настроить firewall-cmd на открытие нужных портов (http, https, 10051)
Установим TimescaleDB и PostgreSQL12
# dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL [timescale_timescaledb] name=timescale_timescaledb baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 EOL # dnf -y update # dnf module disable postgresql # dnf -y install postgresql12-server postgresql12 timescaledb-postgresql-12 # /usr/pgsql-12/bin/postgresql-12-setup initdb
В автоматизированном режиме тюним PostgreSQL12. И в дальнейшем если будем менять ресурсы сервера, то нужно будет запускать заново tune, ну или в ручную редактировать конфиг.
# timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config # systemctl start postgresql-12 # systemctl enable postgresql-12
Создаем пользователя в PSQL и базу zabbix
# sudo -u postgres createuser --pwprompt zabbix # sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix # zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix # echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix # wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.0.tar.gz # tar -zxvf zabbix-5.0.0.tar.gz # cat /zabbix-5.0.0/database/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix
Добавим разрешение на подключение zabbix к psql, для этого добавим в файл /var/lib/pgsql/12/data/pg_hba.conf строку:
host zabbix zabbix 127.0.0.1/32 md5
# systemctl restart postgresql-12
Настроим nginx и php-fpm
# dnf -y install nginx
В /etc/nginx/conf.d/ создадим файл для нашего сервера zabbix.conf. У меня примерно такой конфиг:
server { listen 80; root /usr/share/zabbix; access_log /var/log/nginx/zabbix.com.ru.log; server_name zabbix.com.ru; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/zabbix.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } server { listen 443 default ssl; # SSL Certificate, Key and Settings ssl_certificate /etc/nginx/ssl/cert.pem ; ssl_certificate_key /etc/nginx/ssl/key.pem; ssl_session_cache shared:SSL:10m; root /usr/share/zabbix; access_log /var/log/nginx/zabbix.com.ru.log; server_name s-zabbix.com.ru; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/zabbix.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Настроен http и https (не забудьте положить сертификаты или сгенерировать), а так же настроен php-fpm через сокет (/etc/php-fpm.d/zabbix.conf)
В /etc/php-fpm.d/zabbix.conf раскомментим последнюю строку и впишем свой регион.
php_value[date.timezone] = Europe/Moscow
Установим Zabbix 5.0
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm # dnf -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent
В конфиг zabbix пропишем параметры для подключения к базе. В /etc/zabbix/zabbix_server.conf:
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=пароль
На этом всё, можно запускать и донастраивать через web интерфейс
# systemctl start nginx php-fpm zabbix-server zabbix-agent # systemctl enable nginx php-fpm zabbix-server zabbix-agent
Если возникли проблемы с базой, подключитесь под учеткой zabbix и проверьте, что всё ок:
# psql -U zabbix -d zabbix -h 127.0.0.1 zabbix=> \l
Так же не забывайте про firewall и логи:
# firewall-cmd --list-all # netstat -ntulp # cat /var/log/zabbix/zabbix_server.log
Ваша статья не подразумевает удаленное подключение к базе
находим postgresql.conf
Находим и редактируем следующее:
listen_addresses = ‘*’
И это логично, база и zabbix на одном сервере.
Открывать базу на удаленное подключение чревато утечками информации, поэтому если и открывать, то нужно и парольно нормально защитить и фаерволом ограничить хосты подключения.
Пароль на вход в zabbix
Admin
zabbix
Спасибо за пост! Тоже перехожу на Timescaledb, надоела такак же проблема!
я правильно пнимаю что при его использовании housekeeper можно не влючать?
И если его включить то он будет использовать надскройки Timescaledb для очистки а не свои скрипты=)
housekeeper всё равно работает, но по другому механизму, чистка происходит не записями, а блоками.
В настройках Zabbix можно задать период очистки.
доброго времени.
почему пошли ошибки в доступе ?
[root@zabbix ~]# sudo -u postgres createuser —pwprompt zabbix
could not change directory to «/root»: Отказано в доступе
Enter password for new role:
Enter it again:
[root@zabbix ~]# sudo -u postgres createuser —pwprompt zabbix
could not change directory to «/root»: Отказано в доступе
Enter password for new role:
Enter it again:
createuser: error: creation of new role failed: ERROR: role «zabbix» already exists
[root@zabbix ~]# psql
psql: ошибка: FATAL: role «root» does not exist
[root@zabbix ~]# su postgres
bash-4.4$ sudo -u postgres createuser —pwprompt zabbix
postgres is not in the sudoers file. This incident will be reported.
bash-4.4$ exit
exit
[root@zabbix ~]# sudo -u postgres createuser —pwprompt zabbix
could not change directory to «/root»: Отказано в доступе
Enter password for new role:
Enter it again:
createuser: error: creation of new role failed: ERROR: role «zabbix» already exists
[root@zabbix ~]# sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
could not change directory to «/root»: Отказано в доступе
[root@zabbix ~]# sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
could not change directory to «/root»: Отказано в доступе
createdb: error: database creation failed: ERROR: database «zabbix» already exists
[root@zabbix ~]# -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
-bash: -u: команда не найдена
[root@zabbix ~]# sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
could not change directory to «/root»: Отказано в доступе
createdb: error: database creation failed: ERROR: database «zabbix» already exists
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix
gzip: /usr/share/doc/zabbix-server-pgsql/create.sql.gz: No such file or directory
sudo: неизвестный пользователь: zabbix
sudo: не удаётся инициализировать модуль политики
[root@zabbix ~]# su postgres
bash-4.4$ psql
could not change directory to «/root»: Отказано в доступе
psql (12.5)
Type «help» for help.
postgres=# showdatabases;
ERROR: syntax error at or near «showdatabases»
СТРОКА 1: showdatabases;
^
postgres=# show databases;
ERROR: unrecognized configuration parameter «databases»
postgres=# show database;
ERROR: unrecognized configuration parameter «database»
postgres=# \q
bash-4.4$ exit
exit
[root@zabbix ~]# sudo -i -u postgres psql
psql (12.5)
Введите «help», чтобы получить справку.
postgres=# dt
postgres-# \dt
Отношения не найдены.
postgres-# \l
Список баз данных
Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа
————+———-+————+————-+————-+————————
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
zabbix | zabbix | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 строки)
Насколько я вижу базу и пользователя вы все таки создали.
Можно использовать такую конструкцию sudo -i -u postgres psql и все будет ок.
Ошибки с доступом к каталогу могут быть связаны с тем, что команда из этого каталога и запускалась. Как вариант можно было сделать cd /var и запустить еще раз команду.