Установим и настроим плагин boost для Cacti
Плагин boost позволяет уменьшить нагрузку на сервер cacti, обрабатывающий большое количество данных.
Он делает это путем введения четырех новых возможностей для Cacti. Эти функции разработаны, чтобы уменьшить нагрузку ввода/вывода (I/O), генерируемых огромное количество обновлений, необходимых для RRDfiles. Кроме того, плагин позволяет уменьшить загрузка процессора за счет кэширования часто просматриваемых графиков. Кроме того, он позволяет обновления RRDfile обрабатывать сервером обновлений. Наконец, он позволяет чтобы RRDfiles обновлялись по требованию.
Перед установкой Boost, необходимо убедиться что ваша система подходит по требованиям:
- Cacti 0.8.7 и выше.
- Cacti Plugin Architecture v2.x
- MySQL 5.0 и выше
- Есть довольно много оперативной памяти, доступной для базы данных.
Установка плагина ничем не отличается от стандартной установки плагинов в cacti, т. е. Качаем плагин http://docs.cacti.net/_media/plugin:boost-v5.1-1.tgz, кидаем его в папку plugins, заходим через браузер в Plugin Management https://your_cacti/cacti/plugins.php и запускаем.
Однако, если его запустить, то он не будет работать, т. к. он еще не настроен. Необходимо определить сколько строк мы будем держать в таблице boost, определить переменную max_heap_table_size в MySQL в файле my.cnf. max_heap_table_size — максимальный допустимый размер таблицы, хранящейся в памяти (типа MEMORY). Значение по умолчанию 16 МБ. Т.е. как видим надо сделать наши таблицы типом MEMORY.
У нас уже есть таблица poller_output_boost, которая создалась в момент запуска плагина. Как сказано в официальной доке так и делаем, а там сказано:
To determine how many records you can hold in the boost table, you need to know the following pieces of information:
-
The number of Data Source rows in your poller cache and how many you expect in the future
-
The maximum size of any result stored into the poller_output table as updates occur
-
Your current max_heap_table_size variable in MySQL
Once you know these two pieces of information, you can calculate how many rows will be able to maintain in the poller_output_boost table, and how you must modify poller_output_boost and poller_output tables.
Let's say, for example, that your poller cache contains 200k rows, and the maximum length of any row is 20 bytes, about the size of a 64bit counter. If you are running scripts, ones that return very long results, like the MySQL statistics plugin, you should consider carefully the next step.
In this case, we will assume that even though the largest value returned is 20 bytes, we will elect to maintain a maximum output column width of 50 bytes.
The important thing here is that memory tables store the full size of the column, even though the column type is varchar(). By default it's varchar(512). Therefore, if your system only needs 50 bytes, you will have 90% waste in your poller_output_boost table.
The next step would me to modify the structure of your poller_output and poller_output_boost tables. You would do this by doing the following:
alter table poller_output modify column output varchar(50) not null default '';
alter table poller_output engine=memory;
alter table poller_output_boost modify column output varchar(50) not null default '';
Изменяем аналогично наши таблицы
В своей инсталляции я сделал max_heap_table_size = 512M, надеясь на бОльший запас.
Идем настраивать сам boost plugin в https://your_cacti_server/cacti/settings.php?tab=boost
Путем чтения официальной доки http://docs.cacti.net/plugin:boost, проб и ошибок у меня заработала такая конфигурация, что на скриншоте
Прежде чем запустить плагин надо убедиться что Apache имеет права на запись в rra директорию, и что, создаваемые поллером poller.php rrd файлы также могут редактироваться Apache-ом.
Это достигается следующим путем:
1. В cron изменяем маску на создание файлов на 002, т. е. будут права rw-rw-r
*/1 * * * * umask 002; /usr/bin/php /mnt/cacti/poller.php > /dev/null 2>&1
2. В /etc/sysconfig/httpd добавляем в конец umask 002, т. е. Также заставляем Apache создавать файлы rrd с правами rw-rw-r
Теперь запускаем плагин и если выделенной бустеру памяти хватит то всё будет работать. В противном случае играемся с памятью и полем Maximum Data Source Items Per Pass в настройках плагина.
Обновлено 06.04.2016 21:24