[HOWTO] Use a remote script via SSH as Data Input, no SNMP

If you figure out how to do something interesting/cool in Cacti and want to share it with the community, please post your experience here.

Moderators: Developers, Moderators

michaelwjoyner
Cacti User
Posts: 52
Joined: Wed Apr 08, 2009 12:24 pm

Ah ha...........

Post by michaelwjoyner »

I was putting a \n.

------------- SNIP ---------------------
my $callsAvailable = $maxCallsTotal-$callsInProgress;
print "callsAvailable:$callsAvailable callsInProgress:$callsInProgress source:$source \n";
-----------------------------------------

I am having other problems, I cant seem to create the RRD. I don't know if it is related to the newline char.

I noticed in mySQL poller output that there is no rrd_name associated with the poll but I see:

+---------------+----------+---------------------+---------------------------------------+
| local_data_id | rrd_name | time | output |
+---------------+----------+---------------------+---------------------------------------+
| 142 | | 2009-04-15 18:35:07 | callsAvailable:345 callsInProgress:39 |
+---------------+----------+---------------------+---------------------------------------+

I am going crazy trying to figure out why the RRD isnt being created. I guess I would of had poller problems too since I had a newline char.

Thanks guys.
michaelwjoyner
Cacti User
Posts: 52
Joined: Wed Apr 08, 2009 12:24 pm

I read your post on the newline character

Post by michaelwjoyner »

1) Do I use SCRIPT/COMMAND Or choose other type for the data template
2) Do I create the output name EXACTLY the same as the return list?

For example if the return set is:
callsInProgress:15 callsTotal:400 source:level3

can the output variables be
calls_in_progress
call_total
source

I have different names in the data template.
michaelwjoyner
Cacti User
Posts: 52
Joined: Wed Apr 08, 2009 12:24 pm

I got it

Post by michaelwjoyner »

Yes...... the "Output Fields" in the Data Input Methods DO NEED TO BE THE SAME NAME. I took out the \n and that may of helped.

I was getting confused on whether or not I was doing a Script Command or a Script Query. I don't see a lot of documentation on the various data acquisition types. But SCRIPT/COMMAND worked. I looked at the example "Unix - Get Load Average" and that helped to see multiple return values.

I figure myself to be fairly intelligent, but it seems like learning cacti has been an endeavor. I would mainly say the terminology is a tad confusing, but once I got to moving around now things are making more sense.

Thanks WHITE-JEREON
User avatar
white-jeroen
Posts: 25
Joined: Sat Mar 22, 2008 10:35 am

Post by white-jeroen »

Yes Michael, learning to make custom scripts to feed Cacti with data is kind of a steep learning curve. But it is worth it! Is is beautiful to see a graph growing using the data your own script provided.
This is the main reasons why I've written some HOWTO's when I finally found out how to do things.
I've been working at a big Dutch hosting provider, and I used MRTG to draw graphs for quite a few servers. We had an enormous config file, and when we had some new servers we needed to copy lots of config lines to create all the graphs. Especially making custom graphs was complicated.
When I moved to my current job, at that time the company was buying its first servers. I didn't want the MRTG mysery again, so I looked for an alternative. Cacti is perfect for the job! With templates you can add a server in one minute!
Jeroen Vermeulen BVBA - freelance PHP, Perl & Magento expert - http://www.jeroenvermeulen.eu/
User avatar
gandalf
Developer
Posts: 22383
Joined: Thu Dec 02, 2004 2:46 am
Location: Muenster, Germany
Contact:

Post by gandalf »

white-jeroen wrote:Yes Michael, learning to make custom scripts to feed Cacti with data is kind of a steep learning curve. But it is worth it! Is is beautiful to see a graph growing using the data your own script provided.
You are aware of http://docs.cacti.net/manual:087 ?
Reinhard
User avatar
white-jeroen
Posts: 25
Joined: Sat Mar 22, 2008 10:35 am

Post by white-jeroen »

Yes... if all else fails...
Jeroen Vermeulen BVBA - freelance PHP, Perl & Magento expert - http://www.jeroenvermeulen.eu/
michaelwjoyner
Cacti User
Posts: 52
Joined: Wed Apr 08, 2009 12:24 pm

Yes, Gandalf.............

Post by michaelwjoyner »

Im giggling. I printed it, carried it around for a couple of days, and read thru it.

Im giggling because I see you always tell'n people to read it. One thing I noticed, being new to Cacti, is that I couldn't tell if something is working or not. The timing was totally new to me. Like for example, Im 2 hours into using Cacti, and I am getting an error say "No rrd", it took some time, but now I realize, that is queued in the poller.

The documentation is wonderful, you did a great job, and I just wanted to say thanks bro!
User avatar
white-jeroen
Posts: 25
Joined: Sat Mar 22, 2008 10:35 am

Post by white-jeroen »

When things are not working I go check:

System Utilities -> View Cacti Log File
To see if there are any yellow or red lines, the Host and DataSource numbers are clickable.

System Utilities -> View Poller Cache
To see the commandlines of the scripts executed, so I can do it in Shell, being the user that runs cacti.
It the commandline seems to be outdated I click:
System Utilities -> Rebuild Poller Cache
Jeroen Vermeulen BVBA - freelance PHP, Perl & Magento expert - http://www.jeroenvermeulen.eu/
michaelwjoyner
Cacti User
Posts: 52
Joined: Wed Apr 08, 2009 12:24 pm

Thanks White Jeroen.......

Post by michaelwjoyner »

For some reason I didn't pick that up in reading the docs. That was very useful when I picked it up.

Part of my biggest problem was figuring out why a RRD was not being generated. Being totally new, I thought because I created a graph it should show, but thats not true. The RRD is created on the next poll.

Hrm......... I wonder if the RRD statement shows in the poller cache.

But thanks, your tid-bits on debugging help me understand what to look for.

Best Regards!
User avatar
white-jeroen
Posts: 25
Joined: Sat Mar 22, 2008 10:35 am

Post by white-jeroen »

You can see the RRD command in Graph debug mode:
  • Click "Graph Management" from the left bar
    Click the graph you want to know the RRD command from
    On the right top of the screen click "Turn On Graph Debug Mode", you might need to scroll left to see it
    You will see the RRD command in the bottom right of your screen
You can execute the command in Shell being the user that runs cacti. The command outputs raw PNG data.
To test the command yourself:
  • Log into shell being the user that runs cacti
    Past the command you copied from the debug mode
    Type behind it (without quotes): " > /tmp/test.png "
    Execute the cmmand
    Move the /tmp/test.png to a httpdocs dir of a website where you can view it
Jeroen Vermeulen BVBA - freelance PHP, Perl & Magento expert - http://www.jeroenvermeulen.eu/
michaelwjoyner
Cacti User
Posts: 52
Joined: Wed Apr 08, 2009 12:24 pm

Thanks!

Post by michaelwjoyner »

It worked. I will remember that.
ilunne
Posts: 1
Joined: Tue Jun 26, 2012 12:55 pm

Re: [HOWTO] Use a remote script via SSH as Data Input, no SN

Post by ilunne »

I'm tried to follow your how-to.
I need to graph a number of ppp conections of a mikrotik router.
I'm using the command:

Code: Select all

echo -n "usuarios:"$(ssh acesso@<hostname> -p 2223 pp act p c)
In the shell, the command runs normally and returns the expected value.

I created the data template an the graph template, but the result is a graph empty.

The cacti log says ok, and the debug output is:

Code: Select all

/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-300 \
--title='Usurios Conectados' \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit=0 \
--vertical-label='' \
--slope-mode \
--font TITLE:12: \
--font AXIS:8: \
--font LEGEND:10: \
--font UNIT:8: \
DEF:a="/var/lib/cacti/rra/rb1000_pppactive_95.rrd":pppactive:AVERAGE \
AREA:a#35962BFF:"" 
how should I proceed?
User avatar
white-jeroen
Posts: 25
Joined: Sat Mar 22, 2008 10:35 am

Re: ppp conections of a mikrotik router

Post by white-jeroen »

Hi Ilunne,

If you can do it, Cacti should be able to do it too.
A few things that might help you:
  • Did you test the command being the same user that Cacti's cron job is executed under?
  • The "Graph Debug" does not provide any help about if the RRD (Data Source) receives data or not
  • What does provide help:
    • Go to: Console > Settings > General and switch the Poller Logging Level to HIGH
    • Wait 10 minutes so the cron did run a few times
    • Go to: Console > System Utilities > View Cacti Log File
    • Search for your command and check the output
I hope this helps you to debug your data source.

Kind regards, Jeroen Vermeulen
Jeroen Vermeulen BVBA - freelance PHP, Perl & Magento expert - http://www.jeroenvermeulen.eu/
Un4Seen
Posts: 8
Joined: Sat Dec 08, 2012 7:57 pm
Contact:

Re: [HOWTO] Use a remote script via SSH as Data Input, no SN

Post by Un4Seen »

Thank you for this great tutorial! It's just what I was looking for :)

This might sound like a very amateur question, but how can I determine what user Cacti uses on the Cacti host to run the Cron job? In the tutorial you assume it's the user "cacti", but I have no such user.

Thanks!
User avatar
white-jeroen
Posts: 25
Joined: Sat Mar 22, 2008 10:35 am

Re: [HOWTO] Use a remote script via SSH as Data Input, no SN

Post by white-jeroen »

how can I determine what user Cacti uses on the Cacti host to run the Cron job?
You can try the following command to find the cron job (as root):

Code: Select all

grep -ir 'cacti' /var/spool/cron/crontabs
If it returns anything, the file in the directory "crontabs" has the same name as the user the cron jobs runs under.
For example: /var/spool/cron/crontabs/[USER]: */5....

If you didn't find it you can try (as root):

Code: Select all

grep -ir 'cacti' /etc/cron*
If this command returns anything, the name of the user is probably showing after 4 stars.
For example: * * * * [USER]
Jeroen Vermeulen BVBA - freelance PHP, Perl & Magento expert - http://www.jeroenvermeulen.eu/
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests