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 です。