Ich habe mich mit dem Plugin beschäftigt und eine Lösung gesucht, bei der ich einen dedizierten Account für das Monitoring nutzen kann. Dabei sollte das sqlplus.mk so gestaltet werden, dass es in jeder Umgebung identisch ist.
Mit Hilfe eines Oracle-Wallets kann man sowas elegant lösen.
Was braucht man?
– Oracle-Agent für Check_MK
– einen Datenbankserver mit Oracle ab Standard Edition
– ORACLE_SID muß als ‘service_names’ deklariert sein, notfalls extra ergänzen.
Wie wird das konfiguriert?
– User DBSNMP frei schalten
alter user dbsnmp identified by geheim account unlock;
– Wallet erzeugen
als root:
. oraenv mkstore -wrl /etc/check_mk/oracle_wallet -create
– Kennwort im Wallet eintragen
mkstore -wrl /etc/check_mk/oracle_wallet -createCredential "localhost/<oracle_sid>" dbsnmp geheim
– sqlnet.ora erzeugen
vi /etc/check_mk/sqlnet.ora SQLNET.WALLET_OVERRIDE = TRUE WALLET_LOCATION = (SOURCE= (METHOD = FILE) (METHOD_DATA = (DIRECTORY=/etc/check_mk/oracle_wallet)) )
– sqlplus.sh editieren
ORACLE_BASE=/u01/app/oracle if [ ! -d ${ORACLE_BASE} ] then echo "ORACLE_BASE="${ORACLE_BASE}" not exiting!" exit 1 fi ORATAB=/etc/oratab ORACLE_HOME=`cat ${ORATAB} | grep "^"${ORACLE_SID}":" | cut -d":" -f2` SQLPLUS=${ORACLE_HOME}/bin/sqlplus if [ ! -x ${SQLPLUS} ] then echo "sqlplus not found or ORACLE_HOME wrong! " echo "SQLPLUS="${SQLPLUS} exit 1 fi export ORACLE_HOME export ORACLE_SID export TNS_ADMIN=/etc/check_mk ${SQLPLUS} -L -s /@localhost/${ORACLE_SID} - Wallet testen export TNS_ADMIN=/etc/check_mk export ORACLE_SID=tux11g sqlplus /@localhost/tux11g show user exit
Fazit:
Nun kann das Kennwort in jeder Datenbank individuell konfiguriert und sqlplus.sh kann so auf jedem Server identisch gehalten werden. Keine Klartextkennwörter mehr notwendig.
Lizenzen
Mittlerweile darf das Wallet in der Standard und Enterprise-Edition genutzt werden.
Endlich mal mit Profis! *hutab*
Danke für die Blumen 😉