Archive for the ‘ITM’ Category
As of ITM 6.2.1, there is a perceived capability to now rename situations within the editor.
However, the rename is actually a new attribute called ‘Full Name’ and only changes the TEPS display name for the situation; the EIF will still send the original situation name.
IBM responds this is “working as designed” — a load of crap if you ask me and a “feature” that should not have been introduced at all if it were to be so counter-intuitive.
Here’s IBM’s response:
Problem(Abstract)
Situation names that are less than 32 characters in length do not populate the “Fullname” field when running the ‘tacmd viewsit -s ‘ command.
Symptom
tacmd viewsit shows null Fullname Field
Cause
The Fullname field is only populated when the original situation name is 32 characters or greater or if a situation name is changed.
Resolving the problem
When a situation is created with a name less than 32 characters in length, the situation name is stored in the “Name” column. At this point, the “Name” column serves two purposes: a unique ID for the situation and the situation display name. The “Fullname” column is blank.
If an existing situation name is changed, the “Name” column still serves as the unique ID and will not be updated to reflect the situation name change.
The new situation name is stored in the “Fullname” column, the new name now assumes the role of situation display name. The length of the new name does not matter, the new name must be stored in the “Fullname” column, since the “Name” column containing the unique ID cannot be changed.
The only time we should expect the “Full Name” field to be populated is when the original situation name is 32 characters or greater or when a situation name has changed from it’s original name (regardless of the length of the new situation name).
Tags: aof, attribute, column, crap, eif, field, Fullname, itm, length, name, new situation, response problem, situation, situation name
Posted in ITM6.2.1, Non-Tivoli | Comments (0)
Situation
An ITM6 Unix (UX) or Linux (LZ) agent detects that its remote filesystems are unavailable, a “stale” connection.
Automate an action to remount it if possible
Methodology
Two (2) ITM situations are created where
- detects the mount point has become stale
- the other is triggered by the “correlated situation” condition of #1 being tr
Situation #1 : Detect “Stale” remote FS
Simple enough – if “Space Available” fails collection, there is an issue

Situation #2 : Remount Situation
Formula Conditions
Use the “Situation Comparison” for a condition against the situation above
Take Action
Note: the lines are strung together on one line in the Take Action field, to make it more legible here, newlines are after the semicolons
f=”&{Linux_Disk.Mount_Point}” ;
u=`umount -f $f 2>&1 && echo $f`;
m=`mount $f 2>&1 && echo $f`;
echo -e “umount: $u\nmount:$m” | mail -s “ITM ACTION: Remount $f” junkmail@JdsMedia.net

Tags: Action, action script, amp, filesystems, itm, junkmail, Linux, linux disk, mail, remount, semicolons, situation, umount
Posted in ITM6.x | Comments (0)
ITM v6 log files use a hexadecimal timestamp (to save space? who the hell knows), which adds unnecessary effort when the reason you’re looking at the logs is to determine an issue in the first place. In any case… Here’s the script I wrote when I first encountered the nonsense in ITM v6 logs a few years ago:
#!/bin/perl
foreach (<STDIN>) {
if (/^[^\s\d\w]+([\w\d]*)/) {
@t=localtime(hex($1));
$time=sprintf(“%02d:%02d:%02d %02d/%02d/%04d”,
$t[2],$t[1],$t[0],$t[4]+1,$t[3],$t[5]+1900);s/^[^\s\w\d]+[\w\d]*/$time/;}print $_;}
Here’s a one-liner that Venkat.Saranathan at Gulfsoft.com cranked out, rendering my script pretty much obsolete
perl -lane ‘if ($_ =\ /^(.)([\dA-F]+)(\..*)/) { printf “%s%s%s”, $1, scalar(localtime(oct(“0x$2″))),$3; }’
Tags: foreach, hexadecimal, itm, localtime, perl, printf, script, stdin, time, time print, unnecessary effort
Posted in ITM6.x | Comments (0)
In a nutshell: use the ‘eventcreate‘
I had an issue with ITM Windows Agent creating events which I was then sending out email alerts via a UNIX script.
The simple problem was backslashes in windows paths where the “Take Action” notification script was literalizing characters which might be part of the EventLog Description
For example:
"c:\Damned these\nagging\slashes\argh"
became
c:\Damned these
agging\slashesrgh
Yes, simply quoting my string would have solved most of my problem, IT DID HOWEVER lead me to a handy windows command for testing, called ‘eventcreateid‘
Example : eventcreate /ID 101 /SO FooBar /D “Test Message for ITM” /T ERROR /L Application
Tags: Damned, eventcreate, example, issue, itm, L Application, notification script, Problem, script, slashes, T ERROR, test message, unix, unix script, windows command
Posted in ITM6.x, WindozeMiscellaneous | Comments (0)
My PMR to IBM Tivoli support
I’d be surprised if there wasn’t already an ER for this, but if you
don’t mind, please submit one.
Do you know if anybody else has asked or criticized this major
limitation.
Its hard to believe that there isn’t something that emulate what a
simple one line script would accomplish.
In the ER, I would expect support for perl regex pattern, where patterns
can be indexed to return the matching index as a displayable value.
match process string against /opt/IBM*\s+(\S+java*\)s+server1 pattern and return pattern matching (\S+java*\)
IBM’s Response
Yes, we already have an ER opened for this case, please note down the
request number: MR0108092213
****
ITM 6 has limitations when monitoring processes.
Customer needs to monitor processes with very long names, in this case
the WebSphere NodeAgent process with 4999 characters. The unique string
“nodeagent” is at the very end of the process name and the Unix OS agent
cannot find this process: The attribute command_name is limited to 100
characters and for command_name_U to 768 Bytes.
Cust needs a possibility to monitor such long process names using the
standard ITM 6 OS agent.
****
It is already a recognized request. You can follow up on the progress of
the request with your IBM Rep. Please let me know if you have any other
questions.
Tags: ibm, java ibm, line script, name, pattern, process, regex pattern, Rep. Please, Request, request number, server1, STRING, unix os
Posted in ITM6.x | Comments (0)
Obtaining Product Codes for IBM Tivoli Monitoring (ITM v6)
Local method:
Parse the proddsc.tbl file on a UNIX/Linux system to get the list by doing this:
UNIX
awk -F\| '/^[^*#]/ {print $1,$2}' ${CANDLEHOME}/registry/proddsc.tbl | sort | uniq
Or, IBM’s site http://www-01.ibm.com/support/docview.wss?rs=2366&context=SSZ8F3&dc=DB520&dc=DB560&uid=swg21265222&loc=en_US&cs=UTF-8&lang=en&rss=ct2366tivoli
Tags: Codes, ibm, Linux, linux system, Obtaining, proddsc, Product, tbl, Tivoli, uniq, unix, unix awk, unix linux, utf 8, wss
Posted in ITM6.x | Comments (0)
ITM v6 log files use a hexadecimal timestamp (to save space? who the hell knows), which adds unnecessary effort when the reason you’re looking at the logs is to determine an issue in the first place. In any case…
Here’s the script I wrote when I first encountered the nonsense in ITM v6 logs a few years ago:
#!/bin/perl
foreach (<STDIN>) {
if (/^[^\s\d\w]+([\w\d]*)/) {
@t=localtime(hex($1));
$time=sprintf("%02d:%02d:%02d %02d/%02d/%04d",
$t[2],$t[1],$t[0],$t[4]+1,$t[3],$t[5]+1900);
s/^[^\s\w\d]+[\w\d]*/$time/;
}
print $_;
}
Here’s a one-liner that Venkat.Saranathan at Gulfsoft.com cranked out, rending my script pretty much obsolete
perl -lane 'if ($_ =\ /^(.)([\dA-F]+)(\..*)/) { printf "%s%s%s", $1, scalar(localtime(oct("0x$2"))),$3; }'
Tags: foreach, gulfbreeze, hexadecimal, itm, localtime, logs, perl, printf, script, stdin, time, time print, timestamp, unnecessary effort
Posted in ITM6.x | Comments (0)
Synopsis
A nice feature which isn’t publicized too much in ITM for Linux and Unix agents is the ping capability.
They’re refrerred to as “Host Availability” for Linux and “Ping Attributes” for Unix
Both will accept an input file containing a list of servers to “ping”, and both will return status and response time.
Enabling the ping hosts file
Linux
$CANDLEHOME/config/lz.ini: KLZ_PINGHOSTLIST=<path_to_list>
# e.g. KLZ_PINGHOSTLIST=$CANDLEHOME/config/my_hostlist
# Add this to the lz.config if you want to avoid having to reconfig the agent
Unix
$CANDLEHOME/config/ux.ini: KUX_PINGHOSTLIST=<path_to_list>
# e.g. KUX_PINGHOSTLIST=$CANDLEHOME/config/my_hostlist
# Add this to the lz.config if you want to avoid having to reconfig the agent
Extra feature difference
One minor, but important, difference is that the Linux component will only ping servers in the list, while the Unix component has the additional feature using a situation to ping any target host from any managed system.
This makes every managed system (agent) a ping source to target critical servers.
Attribute Group: UNIX Ping
Situation Definitions: System_Name == $NODE$, Target_Host == webserver1
Tags: CANDLEHOME, config, critical servers, input file, kux, Linux, list, Ping, ping source, target host, unix, unix ping
Posted in ITM6.x | Comments (0)
As a Tivoli consultant, I’ve had to tweak, torque and tune ITM v6 to fulfill requirements not met out of the box. Several of my clients have felt ripped off by IBM for having paid for a product billed as covering best practices out of the box, only to discover, there is significant development costs involved.
I’m going to itemize and update the shortcomings as I think or run across them, and in all fairness, update if ITM fills the void.
Situations
- Attributes, values and situation specific data is not passed to the ‘Take Action” command
- Typically this is passed in the shell’s environment
- However, these important pieces of info ARE passed to the EIF
- Inability to determine what situations are running on which systems, or reversed, inability to derive which situations are running on any particular system
Windows Agent
- No regular expressions for directory/file matching
Unix Agent
- No regular expressions for directory/file matching (Unix and Linux)
Oracle Agent (ITMfDatabases)
- (<= v6.2.0) Does not detect listeners if dynamically configured
Tags: Agent, best practices, box, directory, fairness, file, Inability, itm, linux oracle, listeners, oracle agent, regular expressions, shortcomings, system windows, Tivoli, unix and linux
Posted in ITM6.x | Comments (0)
Not that there is a lot to the TDW layout, but knowing the schema assists in the documentation process and developing queries and procedures of the TDW (Tivoli Data Warehouse).
Make short work of this by using the opensource tools of SchemaSpy and Graphviz
SchemaSpy is a jar file that supports over 21 DBs, including the 3 supported by ITM TDW (Oracle, Sybase, MSSQL) and is run from the command line to generate a html directory of content about the interrogated schema.
jdsmedia@deant61p /usr/local/bin
$ java -jar ./schemaspy.jar -t ora -db testtdw -s ITMUSR -dp c:\\OraClient11g\\jdbc\\lib\\ojdbc5_g.jar -u XXX -p XXX -o c:/cygwin/tmp/tdw
Using database properties:
[./schemaspy.jar]/net/sourceforge/schemaspy/dbTypes/ora.properties
Connected to Oracle – Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – 64bit Production
With the Partitioning, OLAP and Data Mining options
Gathering schema details………………………………………………..
………………………………. |
Tags: cygwin, Data, data mining, data warehouse, database, database properties, dbs, Documentation, dp, file, graphviz, html directory, jar, jar file, java jar, jdbc, layout, lot, mssql, olap, opensource, ora, oracle, oracle database, oracle sybase, process, schema, SchemaSpy, tdw, Tivoli, tivoli data, tmp, warehouse, work
Posted in ITM, TDW2.x | Comments (0)