Skip to content

Latest commit

 

History

History
141 lines (105 loc) · 4.78 KB

How-To-Poller-5-to-1-min.md

File metadata and controls

141 lines (105 loc) · 4.78 KB

Change poller interval from 5 minutes to 1 minute

This howto describes all necessary steps for convert your cacti to 1 minute poller interval. This cause one gap in graphs during the convert. Gap size depends on count of your rrd files.

Prerequisites and default values used in this howto

  • Cacti installation directory is /usr/local/share/cacti/
  • PHP binary is /usr/local/bin/php
  • RRD files are in /usr/local/share/cacti/rra
  • Poller is running by user cacti
  • Not structured RRDfile paths (Configuration->Settings-> Data -> Structured RRDfile Paths). With structured path you will have more works with splice rrd files. You need change splice script.
  • Crontab row looks like
*/5    *       *       *       *       cacti   /usr/local/bin/php /usr/local/share/cacti/poller.php 2>&1

Backup your Cacti

Before this operation, backup Cacti database and all data in rra folder

RRDCleaner (optional step)

You can run rrdcleaner and delete unused RRD files. It can decrease converting time. System Utilities

Stop poller

Disable your poller in Crontab or via GUI Console -> Configuration -> Settings -> Poller tab -> Data Collection Enabled

Prepare directory structure for RRD file convert

mkdir -p /tmp/cacti/rrd_old
mkdir -p /tmp/cacti/rrd_new
mkdir -p /tmp/cacti/rrd_fin

Make sure that you have enought space on temporary disk. You need more than twice of rra directory size.

Move rrd files

mv /usr/local/share/cacti/rra/* /tmp/cacti/rrd_old/

Check or create Presets -> Data profiles

Go to Console -> Presets -> Data Profiles. Here should be at least 5 Minute Collection profile (because you are using it until now) and 1 Minute Collection profile. If the second is missing, create it. Presets

Remember Data profile ID - Edit your 1 minute collection again and in URL will be .../data_source_profiles.php?action=edit&id=3

Switch to 1 min

Console -> Configuration -> Settings -> Poller tab

  • Poller interval = Every minute
  • Cron/Daemon interval = Every minute

Update database records

Run these SQL queries:

UPDATE data_template_data SET rrd_step=60 WHERE rrd_step=300;
UPDATE data_template_rrd SET rrd_heartbeat=600;

Here replace X with ID from Step "Check or create Presets -> Data profiles":

UPDATE data_template_data SET data_source_profile_id=X;

Rebuild poller cache

Console -> Utilities -> System utilities -> Rebuild Poller Cache

Set 1 min Data Profile as default

Console -> Presets -> Data Profiles

Edit profile 1 min Collection, checkbox default.

Presets

Change profile for all Data templates

Console -> Templates -> Data Source

Select all -> Change Profile

Presets

Run the poller once

New rrd files with correct 1 min profile will be created in /usr/local/share/cacti/rra directory. Cacti log shouldn't contain errors.

Move new rrd files to temporary folder

mv /usr/local/share/cacti/rra/* /tmp/cacti/rrd_new/

Run splice

You need run splice command for each rrd file. This could be time consuming, depends on number of files. You can use some tool for parallel tasks. The splice_rrd.php file is designed to allow two RRDfiles to be merged. This utility can effectively change the resolution/step of an RRDfile so long as the new RRDfile already has the correct step.

Basic script:

#!/bin/sh

cd /tmp/cacti/rrd_old/
for f in *.rrd
do
    echo $f
    /usr/local/bin/php /usr/local/share/cacti/cli/splice_rrd.php --oldrrd=/tmp/cacti/rrd_old/$f --newrrd=/tmp/cacti/rrd_new/$f --finrrd=/tmp/cacti/rrd_fin/$f
done

Run script and wait. My experience - 5200 files took 100 minutes without paralelisation. Script will be output sometning like:

fortigate_1_-_fg200e4q17911506_traffic_in_7317.rrd
NOTE: Using Native Arrays due to lack of SQLite.
NOTE: Using RRDtool Version 1.8.0
NOTE: RRDfile will be written to '/tmp/cacti/rrd_fin/fortigate_1_-_fg200e4q17911506_traffic_in_7317.rrd'
NOTE: Re-Importing '/tmp/fortigate_1_-_fg200e4q17911506_traffic_in_7317.dump.27482713' to '/tmp/cacti/rrd_fin/fortigate_1_-_fg200e4q17911506_traffic_in_7317.rrd'
NOTE: Time:0.88, RUsage:18 MB

Move spliced files back to cacti

mv /tmp/cacti/rrd_fin/* /usr/local/share/cacti/rra/

File owner should be cacti

chown cacti /usr/local/share/cacti/rra/*

Enable poller in Cron again

Change your cron settings from 5 minutes to 1 minute and enable (uncomment). Old row:

#*/5    *       *       *       *       cacti   /usr/local/bin/php /usr/local/share/cacti/poller.php 2>&1

New row

*    *       *       *       *       cacti   /usr/local/bin/php /usr/local/share/cacti/poller.php 2>&1