Zabbix alt

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Zabbix на Alt P10 jeos

Источник: здесь

Подготовка

apt-get update && apt-get -y dist-upgrade
apt-get install -y nano update-kernel
update-kernel -y
reboot

Postgresql

Установка

apt-get install -y postgresql16-server

Первоначальный запуск

/etc/init.d/postgresql initdb

ВНИМАНИЕ!

Два последующих конфигурационных файла будут созданы без лишних комментариев внутри только для ускорения процесса демонстрации. Поэтому предварительно для них будут созданы резервные копии, в которые настоятельно рекомендуется хотя-бы один раз заглянуть, чтобы понять, что параметров значительно больше чем необходимых и достаточных для работы!

Делаем резервные копии

cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.backup

Далее используем heredoc-синтаксис, потому что мы ленивы...

cat << 'EOF' > /var/lib/pgsql/data/pg_hba.conf 
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0            md5

# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
EOF
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf 
listen_addresses = '*'		# what IP address(es) to listen on;
max_connections = 100			# (change requires restart)
shared_buffers = 128MB			# min 128kB
dynamic_shared_memory_type = posix	# the default is usually the first option
max_wal_size = 1GB
min_wal_size = 80MB
log_destination = 'stderr'		# Valid values are combinations of
logging_collector = on		# Enable capturing of stderr, jsonlog,
log_directory = 'log'			# directory where log files are written,
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
log_file_mode = 0600			# creation mode for log files,
log_rotation_size = 10MB		# Automatic rotation of logfiles will
log_min_messages = warning		# values in order of decreasing detail:
log_checkpoints = off
log_connections = off
log_disconnections = off
log_timezone = UTC
datestyle = 'iso, mdy'
timezone = UTC
default_text_search_config = 'pg_catalog.english'
EOF
systemctl enable --now postgresql

Задать нормальные кодировки

psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='postgres';";
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template0';";
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template1';";

Создать пользователя, базу данных и задать пароль

psql -U postgres -c "CREATE USER zabbix_user WITH ENCRYPTED PASSWORD 'zabbix_pass';"
psql -U postgres -c "CREATE DATABASE zabbix_db;"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='zabbix_db';";
psql -U postgres -c "GRANT ALL ON DATABASE zabbix_db TO zabbix_user;"
psql -U postgres -c "ALTER DATABASE zabbix_db OWNER TO zabbix_user;"

Проверить

psql -U zabbix_user -W zabbix_db -c "\l"

Zabbix server

Установка пакетов

apt-get install -y zabbix-server-pgsql postgresql16 apache2 apache2-mod_php8.2 php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-pgsql php8.2-ldap php8.2-openssl zabbix-phpfrontend-apache2 zabbix-phpfrontend-php8.2

Развёртывание базы данных

См. предыдущий раздел. Там есть данные для доступа на сервер...

Предположим, что сервер postgresql у нас работает на ip адресе

10.207.146.169

Проверим: доступна ли база данных на нашем сервере с нашими данными для подключения

psql -h 10.207.146.169 -U zabbix_user -W zabbix_db -c "\l"

Если доступна, то развернём в неё дамп

psql -h 10.207.146.169 -U zabbix_user -f /usr/share/doc/zabbix-common-database-pgsql-6.0.22/schema.sql zabbix_db

вводим пароль

psql -h 10.207.146.169 -U zabbix_user -f /usr/share/doc/zabbix-common-database-pgsql-6.0.22/schema.sql zabbix_db

вводим пароль

psql -h 10.207.146.169 -U zabbix_user -f /usr/share/doc/zabbix-common-database-pgsql-6.0.22/data.sql zabbix_db

вводим пароль

База на месте.

Настраиваем веб-сервер

ВНИМАНИЕ!

Два последующих конфигурационных файла будут созданы без лишних комментариев внутри только для ускорения процесса демонстрации. Поэтому предварительно для них будут созданы резервные копии, в которые настоятельно рекомендуется хотя-бы один раз заглянуть, чтобы понять, что параметров значительно больше чем необходимых и достаточных для работы!

Делаем резервные копии

cp /etc/php/8.2/apache2-mod_php/php.ini /etc/php/8.2/apache2-mod_php/php.ini.backup
cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.backup

Настраиваем PHP

cat << 'EOF' > /etc/php/8.2/apache2-mod_php/php.ini
[PHP]
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 100
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = On
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 50M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
include_path = "./:/usr/share/php/pear/:/usr/share/php/modules/"
user_dir =
enable_dl = Off
file_uploads = On
upload_tmp_dir = /tmp
upload_max_filesize = 20M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
always_populate_raw_post_data = -1

[CLI Server]
cli_server.color = On

[Date]
date.timezone = Europe/Moscow

[filter]

[iconv]

[intl]

[Pcre]

[Phar]

[SQL]
sql.safe_mode = Off

[bcmath]

[browscap]
browscap = "/etc/php/8.2/apache2-mod_php/browscap.ini"

[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[Assertion]

[COM]

[sysvshm]
EOF

Настраиваем подключение к базе данных

Мы читали эту статью от начала и до этого места, поэтому знаем, что подключаться будем к серверу postgres:

10.207.146.169

под логином:

zabbix_user

с паролем:

zabbix_pass

к базе данных:

zabbix_db

Следовательно, конфигурационный файл мы создадим известным ленивым способом:

cat << 'EOF' > /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=10.207.146.169
DBName=zabbix_db
DBUser=zabbix_user
DBPassword=zabbix_pass
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
AllowUnsupportedDBVersions=1
EOF

Включаем дополнения к apache2

ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled/

Меняем владельца у каталога с конфигурационным файлом фронтэнда

chown apache2:apache2 /var/www/webapps/zabbix/ui/conf

Ставим сервисы в автозапуск и сразу запускаем их

systemctl enable --now zabbix_pgsql
systemctl enable --now httpd2

Тестируем

В браузере идём на страницу

http://<ip-сервера>/zabbix

и следуем инструкциям установщика.

Для входа в веб интерфейс используем логин

Admin

пароль

zabbix

Регистр в логине и пароле -- важен!

Zabbix agent

Если агент нужен на самом сервере zabbix, то ставим:

apt-get install -y zabbix-agent

и запускаем

systemctl enable --now zabbix_agentd

далее смотрим в веб интерфейс сервера и радуемся.

Если агент нужен на другом сервере, то смотрим и изучаем здесь