Главная

Tuesday, 2 June 2020

Оптимизация Zabbix.

Всем привет.

В последнее время приходится плотно заниматься системой Zabbix. Для оптимизации его работы в сети приводят рекомендации по изменению некоторых его параметров отличных от значений по умолчанию. Нижеследующие значения для вас не прописная истина а всего лишь предложение, которое необходимо тестировать в каждом конкретном случае. 

По ходу рекомендую к прочтению книгу James Turnbull "The Art of Monitoring", 2016. Она хоть и не про Zabbix, но толково освещает общие моменты мониторинга  в сети на примере Reimann, Graphite и ELK.

Ну а сегодня начнем с главного конфига Zabbix.
#sudo nano /etc/zabbix/zabbix_server.conf

Есть смысл править такие параметры, как объем рабочего кэша, количество параллельных процессов в опросах и таймауты:
StartPollers=50
StartPreproceessors = 60
StartPollersUnreachable=30
StartPingers=100
CacheSize=64M
HistoryCacheSize=32M
HistoryIndexCacheSize=16M
TrendCacheSize=16M
ValueCacheSize=32M
Timeout=15

Обратите внимание что если некий узел мониторинга недоступен, процессы опроса его параметров будут заняты промежуток времени, равный таймауту на опрос (например Timeout=15). Если вдруг окажутся недоступными, например, более сотни таких узлов, с каждого из которых Zabbix собирает более десятка параметров, то весь процесс опроса(ожидания ответа) займет ресурсы Zabbix и это может привести к его отказу в нормальной работе.

Не мене важным может оказаться база данных Zabbix. Переходим к конфигу БД Zabbix на примере MySQL.
#sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf


Для оптимизации БД MySQL есть смысл править такие параметры как:
max_connections = 400
tmp_table_size = 256M
max_heap_table_size = 256M
table_open_cache = 64M
join_buffer_size = 256K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
sort_buffer_size = 16M
key_buffer_size = 16M
thread_stack = 192K
thread_cache_size = 8
query_cache_limit = 2M
query_cache_size = 32M
table_open_cache = 64M

Другой вариант оптимизации БД заключается в использовании по одному innodb-файлу на каждую таблицу БД. Дело в том что по умолчанию MySQL хранит все таблицы внутри уникального файла данных. А в этом варианте все новые таблицы будут создаваться в собственных отдельных файлах. Это позволяет хранить файлы в разных файловых системах и делать дифференциальные резервные копии собранных данных. Для это надо править такие переменные:
innodb_file_per_table = 1
innodb_status_file = 1
innodb_buffer_pool_size = 2G
innodb_flush_log_at_trx_commit = 2
innodb_support_xa = 0
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M

Для периодической очистки БД в Zabbix встроен инструмент под названием Housekeeper, который решает задачу обслуживания БД. Настраивается он в конфигурационном файле Zabbix двумя параметрами:
#Частота запуска процедуры очистки (в часах, от 1 до 24):
HousekeepingFrequency = 1 

#Количество удаляемых за раз значений из БД (от 1 до 1000000):
MaxHousekeeperDelete = 1000000 

При этом глобальные параметры учета истории, трендов и прочего в панели администрирования выставляйте в разумных пределах. Если у вас предполагается большой парк узлов для мониторинга лучше сразу планируйте внедрение Zabbix на PostgreSQL или с использованием Zabbix-прокси.

Также в целях безопасности пару логин/пароль для доступа к базе данных нужно изменить, 
и создать новую пару, персонально для Zabbix, с необходимыми привилегиями.

Пароль для консоли базы данных меняется так:
#sudo mysqladmin -uroot –proot password new4rooter

То же касается и административной учетной записи zabbix/zabbix.

После произведенных изменений необходимо перезапускать сервис Zabbix:
#sudo service zabbix-server restart

Делайте это периодически чтобы отслеживать эффект от выполненных изменений.

Для повышения безопасности доступа к Zabbix по SSH в конфигурационный файл нужно внести небольшие изменения - указать время разрыва сессии при бездействии, и указать использование только 2-й версии протокола:
#sudo nano /etc/ssh/ssh_config
ConnectTimeout 600
Protocol 2

#sudo service ssh restart

Также предлагаю перенастроить доступ к фронтенд по https соединению. Как это делается я говорил ранее тут.

Успехов.

1 comment:

  1. Поддержка Internet Explorer 11 прекращена в Zabbix 5.

    ReplyDelete

А что вы думаете по этому поводу?