読者です 読者をやめる 読者になる 読者になる

MRTG::WorkDirの仕様について

ドキュメント読まないヤツはエンジニアではないッッ!!
って言われてしまいそうですが、取り敢えず実経験でわかったことをメモ。。。

o includeする場合はWorkDirを同一の場所に設定しなければならない

例えば mrtg.cfg とかに

- mrtg.cfg

Include: /etc/mrtg/conf/web.cfg
Include: /etc/mrtg/conf/db.cfg

Include: /etc/mrtg/conf/stg.cfg

とかで読み込む時に、間違っても各WorkDirを

- /etc/mrtg/conf/web.cfg

WorkDir: /var/www/html/mrtg/web/

- /etc/mrtg/conf/db.cfg

WorkDir: /var/www/html/mrtg/db/

- /etc/mrtg/conf/stg.cfg

WorkDir: /var/www/html/mrtg/stg/

なんて設定してMRTGに読み込ませたってエラーなんて一切出さずに
アップデートされないという悲劇が起こるんですね。
で、何でだろうって思いながら前にひっかかったことを思い出したんですね。

o WorkDirを個別に指定しても
"contains a duplicate definition for target"のエラーが出る

で、多分ここがキモなんですよね。

ドキュメント読んだりソースファイル見てないので

仮説のみというなんともな感じなのですが。。。

例えば eth のトラフィックなんかを取得したい時に

- /etc/mrtg/conf/web.cfg

Target[eth0]: 2:adminnetwork@192.168.0.101:
SetEnv[eth0]: MRTG_INT_IP="192.168.0.3" MRTG_INT_DESCR="eth0"
Options[_]: growright, bits
MaxBytes[eth0]: 12500000
Title[eth0]: Traffic Eth0
PageTop[eth0]:

Traffic Eth0


- /etc/mrtg/conf/db.cfg

Target[eth0]: 2:adminnetwork@192.168.0.201:
SetEnv[eth0]: MRTG_INT_IP="192.168.0.201" MRTG_INT_DESCR="eth0"
Options[_]: growright, bits
MaxBytes[eth0]: 12500000
Title[eth0]: Traffic Eth0
PageTop[eth0]:

Traffic Eth0


とかっていう設定をブっこんでいたとするじゃないですか。
で、先の通りWorkDirを個別のディレクトリに設定していれば
ファイル名もかぶらないし大丈夫だろうと思ってズバっとですね
includeしまくっているcfgファイルをぶっ叩くとですね

  contains a duplicate definition for targetって出るわけなんですよね。

結局のところWorkdirを個別に設定しない方がいい。
っていう一点に尽きるんですけど、にわか技術者な私みたいなのは
ことごとくひっかかってしまうわけなんですね。。。

トホホ・・・

本件のお話のMRTGのバージョンは 2.14.5 です。