MRTG cfgmaker - generating cfg file correctly

Hi all,

Having an issue generating the cfg file for MRTG. I believe it's because I simply don't understand the command, among other things. This is for the purpose of monitoring routers through MRTG configuration files accessed by Nagios.

The routers to be monitored are connected through point 2 point VPN tunnels, as,,, etc. 14 different locations need to be added to the configuration file for monitoring. The Ubuntu server running Nagios and MRTG has VPN tunnels active for all locations. Here's what I currently have:

./cfgmaker --global 'WorkDir: /home/httpd/mrtg' --global 'Options[_]: bits,growright' --ifref=ip --output /home/mrtg/cfg/MCP1_Sonicwall.cfg community@

In this example, I'm creating a cfg file for just the first router (location name is MCP1), but I understand that I can put every location in one file for Nagios to read from?

The errors I'm getting with the above example are:

WARNING: Skipping community@ as no info could be retrieved
ERROR: creating /home/mrtg/cfg/MCP1_Sonicwall.cfg: No such file or directory

If anybody could help with the exact syntax that could get me up and running with this, that would be really helpfull. Or even explaining to me what the things I'm doing wrong mean and what -should- be there. I'd actually prefer an explanation so that I can understand further.

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

cfgmaker tries to gather information from the target device.

The warning message you recieved "Skipping community@ as no info could be retrieved"  means that it got nothing back from that device using that community name.  So:

1) the commuity name is wrong.
2) the device is not running a snmp agent
3) the device has a firewall running on it and is not allowin inbound udp requestion to port 161 from the device you are running cfgmaker on
4) there is a firewall between the target device and your source computer blocking traffic.

I wil have to check, but I beleive the error is because cfgmaker could not get the snmp information.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
howejustinAuthor Commented:
Thanks giltjr, that helps. Turns out the firewall is what was stopping it. I had created the UDP rule, but it was disabled for some reason.

Now, I don't get any error messages when doing that, but I do when testing MRTG. After entering this:

env LANG=C  /usr/local/mrtg-2/bin/mrtg /home/mrtg/cfg/mrtg.cfg
(I added the env LANG=C because without it, it said I needed that as the LANG was set to UTF-8)

I get this as the output:

ERROR: Creating templock /home/mrtg/cfg/mrtg.cfg_l_20539: Permission denied at /usr/local/mrtg-2/bin/mrtg line 1968.

What do you think could be the problem?

Thanks again for your help, it seems you're the only one here who knows this stuff :)
Yo need to check the permissions on "/home/mrtg/cfg".  Whatever userid is running the mrtg command does not have write authority to it.

No, there are a LOT of people that know way more than I, its just I may be the only one that saw this.
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

howejustinAuthor Commented:
That's what I meant by the only person here, as in this post.

I didn't think that was the problem earlier, as I even ran it as sudo, but changing all other access to read and write did fix that problem. Now, I'm getting this:

Use of uninitialized value $first in pattern match (m//) at /usr/local/mrtg-2/bin/../lib/mrtg2/ line 631.
Use of uninitialized value $dir in concatenation (.) or string at /usr/local/mrtg-2/bin/mrtg line 2665.
Use of uninitialized value $dir in concatenation (.) or string at /usr/local/mrtg-2/bin/mrtg line 2683.
Use of uninitialized value $dir in concatenation (.) or string at /usr/local/mrtg-2/bin/mrtg line 2699.
ERROR: "WorkDir" not specified in mrtg config file
administrator@Justin-Ubuntu10:/usr/local/mrtg-2/bin$ sudo gedit /usr/local/mrtg-2/bin/mrtg

Funny thing is, the config file that the previous command at first created does specify the workdir as:

WorkDir: /home/httpd/mrtg

It's not commended out either.

If you want me to create a new topic for these new problems and award you the points for the initial reason, that's OK with me. Technically these are new problems and might be better suited for a broad topic of "Help with configuring MRTG" or something like that. Would you think that's best, or keep it here?
howejustinAuthor Commented:
FYI: the final line of my pasted script shows me opening the mrtg perl file, which I know is not the config file. That was just something I was looking up line numbers for to see if I could find the problems with uninitialized values.
Typically the mrtg commands are run from crontab under root, so I am suprised that running it with sudo failed.

No need to open a new question.  We can deal with it here.

Can you verify that /home/httpd/mrtg does exists and check to see what the permissions are?
howejustinAuthor Commented:
There's the problem, it doesn't. The /home/mrtg/ directory didn't exist either, or wasn't created when I installed MRTG, so I actually manually created that one as well as the cfg subdir. Looks like something may have gone wrong with the installationt then, since both the /mrtg and /httpd directories weren't created.

What would you suggest I do at this point? I don't mind starting over, if that's the best thing. I just never got any errors up until what you've seen me post here, so I figured everything went OK.

On a side note, I haven't used Linux in over ten years, and it's definitely showing. Windows has corrupted my brain :p
It is up to you.

It has been awhile since I last installed MRTG.  I use OpenSUSE and RedHat/Fedora and so I use RPM's.  I generally create the working directries where I want them instead of using what the RPM's use.

howejustinAuthor Commented:
Ok, thanks for the advice.

As far as the missing directories, do you see any harm in simply creating the files that it is not finding? I'm not sure if the program needs other files while it's running (that also aren't created automatically) that could stop it from working correctly.
howejustinAuthor Commented:
I ended up changing the working dir to a subdir in my nagios directory, and it worked. Now I can navigate to my nagios/mrtg folder through my URL and it views the graphs. Thanks for your help, it sparked the right direction for me to go.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Productivity Apps

From novice to tech pro — start learning today.