Zabbix alt: различия между версиями
Vovan (обсуждение | вклад) (→Zabbix server) |
Vovan (обсуждение | вклад) (→Postgresql) |
||
(не показано 20 промежуточных версий этого же участника) | |||
Строка 17: | Строка 17: | ||
Установка | Установка | ||
− | apt-get install -y postgresql16-server | + | apt-get install -y postgresql16-server postgresql16-contrib |
Первоначальный запуск | Первоначальный запуск | ||
Строка 25: | Строка 25: | ||
ВНИМАНИЕ! | ВНИМАНИЕ! | ||
− | Два последующих конфигурационных файла будут созданы без лишних комментариев внутри только для ускорения процесса демонстрации. Поэтому предварительно для них будут созданы резервные копии, в которые настоятельно рекомендуется | + | Два последующих конфигурационных файла будут созданы без лишних комментариев внутри только для ускорения процесса демонстрации. Поэтому предварительно для них будут созданы резервные копии, в которые настоятельно рекомендуется хотя-бы один раз заглянуть, чтобы понять, что параметров значительно больше чем необходимых и достаточных для работы! |
Делаем резервные копии | Делаем резервные копии | ||
Строка 78: | Строка 78: | ||
systemctl enable --now postgresql | 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';"; | ||
Создать пользователя, базу данных и задать пароль | Создать пользователя, базу данных и задать пароль | ||
Строка 83: | Строка 89: | ||
psql -U postgres -c "CREATE USER zabbix_user WITH ENCRYPTED PASSWORD 'zabbix_pass';" | 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 "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 "GRANT ALL ON DATABASE zabbix_db TO zabbix_user;" | ||
psql -U postgres -c "ALTER DATABASE zabbix_db OWNER TO zabbix_user;" | psql -U postgres -c "ALTER DATABASE zabbix_db OWNER TO zabbix_user;" | ||
Строка 94: | Строка 101: | ||
Установка пакетов | Установка пакетов | ||
− | 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 | + | apt-get install -y ntpdate tzdata 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 |
+ | |||
+ | Настройка часового пояса | ||
+ | |||
+ | timedatectl set-timezone Europe/Moscow | ||
+ | ntpdate pool.ntp.org | ||
+ | |||
===Развёртывание базы данных=== | ===Развёртывание базы данных=== | ||
Строка 114: | Строка 127: | ||
вводим пароль | вводим пароль | ||
− | psql -h 10.207.146.169 -U zabbix_user -f /usr/share/doc/zabbix-common-database-pgsql-6.0.22/ | + | psql -h 10.207.146.169 -U zabbix_user -f /usr/share/doc/zabbix-common-database-pgsql-6.0.22/images.sql zabbix_db |
вводим пароль | вводим пароль | ||
Строка 126: | Строка 139: | ||
===Настраиваем веб-сервер=== | ===Настраиваем веб-сервер=== | ||
− | Ставим | + | ВНИМАНИЕ! |
+ | |||
+ | Два последующих конфигурационных файла будут созданы без лишних комментариев внутри только для ускорения процесса демонстрации. Поэтому предварительно для них будут созданы резервные копии, в которые настоятельно рекомендуется хотя-бы один раз заглянуть, чтобы понять, что параметров значительно больше чем необходимых и достаточных для работы! | ||
+ | |||
+ | Делаем резервные копии | ||
+ | |||
+ | 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 | ||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | Настраиваем подключение к базе данных | ||
+ | |||
+ | Мы читали эту статью от начала и до этого места, поэтому знаем, что подключаться будем к серверу postgres: | ||
+ | |||
+ | 10.207.146.169 | ||
+ | |||
+ | под логином: | ||
+ | |||
+ | zabbix_user | ||
+ | |||
+ | с паролем: | ||
+ | |||
+ | zabbix_pass | ||
+ | |||
+ | к базе данных: | ||
+ | |||
+ | zabbix_db | ||
+ | |||
+ | Следовательно, конфигурационный файл мы создадим известным ленивым способом: | ||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | Включаем дополнения к 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 | systemctl enable --now httpd2 | ||
+ | |||
+ | ===Тестируем=== | ||
+ | |||
+ | В браузере идём на страницу | ||
+ | |||
+ | http://<ip-сервера>/zabbix | ||
+ | |||
+ | и следуем инструкциям установщика. | ||
+ | |||
+ | Для входа в веб интерфейс используем логин | ||
+ | |||
+ | Admin | ||
+ | |||
+ | пароль | ||
+ | |||
+ | zabbix | ||
+ | |||
+ | Регистр в логине и пароле -- важен! | ||
==Zabbix agent== | ==Zabbix agent== | ||
+ | |||
+ | Если агент нужен на самом сервере zabbix, то ставим: | ||
+ | |||
+ | apt-get install -y zabbix-agent | ||
+ | |||
+ | и запускаем | ||
+ | |||
+ | systemctl enable --now zabbix_agentd | ||
+ | |||
+ | далее смотрим в веб интерфейс сервера и радуемся. | ||
+ | |||
+ | Если агент нужен на другом сервере, то смотрим и изучаем [https://www.altlinux.org/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_ZABBIX#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0_Zabbix здесь] |
Текущая версия на 17:19, 27 апреля 2024
Содержание
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 postgresql16-contrib
Первоначальный запуск
/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 ntpdate tzdata 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
Настройка часового пояса
timedatectl set-timezone Europe/Moscow ntpdate pool.ntp.org
Развёртывание базы данных
См. предыдущий раздел. Там есть данные для доступа на сервер...
Предположим, что сервер 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/images.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
далее смотрим в веб интерфейс сервера и радуемся.
Если агент нужен на другом сервере, то смотрим и изучаем здесь