Du kannst mehrere Templates im Konfigfile haben. Wenn du dann check_logfiles mit --tag=TT aufrufst, wird intern bei jedem Search das template-Attribut durch ein tag-Attribut ersetzt (mit dem Wert template+tag, damit sich die Dateinamen der Seekfiles unterscheiden, in denen ja der Tag vorkommt).
Mit ist aber noch was eingefallen, was dir helfen könnte:
Du hast ja variable Teile in der Datei, die SID, den Hostnamen und den kleingeschriebenen Hostnamen, ORACLE_HOME, Version. Die kannst du von aussen übergeben.
 |
Quellcode
|
1
2
3
4
5
6
7
|
check_logfiles --config oracle.cfg --macro ORA__SID=CONF --macro CL_DBSRV=H00018L --macro CL_DBSRVKLEIN=h00018l --macro ORA_ROOT=/opt/oracle --macro ORA_VER=10.2.0
= ({
tag => 'oerr',
logfile => '$ORA_ROOT$/$ORA_SID$/db/tech_st/$ORA_VER$/admin/$ORA_SID$_$CL_DBSRVKLEIN$/bdump/alert_$ORA_SID$.log',
....
});
|
--macro NAME=WERT hat den gleichen Effekt wie
 |
Quellcode
|
1
2
|
$MACROS = {
NAME => "WERT",
|
Gerhard
p.s. blöd ist natürlich, daß man in der Servicedefinition beim check_command zwar CL_DBSRV=$HOSTNAME$ schreiben kann, aber Nagios kein Macro in Kleinbuchstaben bietet, so daß man den Namen hart reinkodieren muss. Wenn du den Service an eine Hostgruppe vergeben willst, ginge eventuell ein Konstrukt wie
--macro DBSRV=$HOSTNAME$ --macro DBSRVKLEIN=`echo $HOSTNAME$|tr 'A-Z' 'a-z'`