The ICO 2.4 and 2.4.0.1 Deployment Server installers are definitely great pieces of software. They check prerequisites correctly and install without a hitch. They are really, really nice.
This post is about one of the options in the 'ds wizard' script options. Specifically, when you take the path:
[0] New IBM Cloud Orchestrator deployment.
[0] Demo
[1] All In One
[2] All In One IBM Cloud Orchestrator Deployment
- Deploys IBM Cloud Orchestrator all-in-one in one machine.
This path actually deploys the template sco-devstack (/opt/ico_install/topology_templates/sco_devstack.json), which does NOT install the IBM Workload Deployer component. The effect that this has is that you do NOT have a PATTERNS option in the Administrator GUI (https://machine.fqdn:8443/), and so you can't create, view or use any patterns.
So if you want an all-in-one deployment, you should take a different option. Specifically, the path you should take through the wizard is:
[0] New IBM Cloud Orchestrator deployment.
[0] Demo
[1] All In One
[2] All In One IBM Cloud Orchestrator Deployment
[0] All In One with addtional KVM compute node
- Deploys IBM Cloud Orchestrator all-in-one KVM topology with an additional KVM compute node where components use a shared
- internal database.
And when it asks you for the FQDNs of the three servers, specify the FQDN of the ONE server that you'll be using in each of those three places.
Thursday, January 29, 2015
Tuesday, January 27, 2015
A BIG note about running ICO 2.4.0.1
I successfully installed ICO 2.4.0.1 using 2 machines:
1: Deployment Server (where I could then run the 'ds wizard' command)
2: My all-in-one deployment to a KVM hypervisor.
Both machines are running RHEL 6.5 and have lots of CPU, RAM and disk.
My HUGE problem after install was that the Deployment Server automatically started an unnecessary dnsmasq process. And because of this, I could not create any new instances. Every time I tried, I got errors similar to the following in /var/log/nova/compute.log (and similar in network.log also):
2015-01-27 13:29:14.987 19521 ERROR oslo.messaging.rpc.dispatcher [-] Exception during message handling: Remote error: ProcessExecutionError Unexpected error while running command.
Command: sudo nova-rootwrap /etc/nova/rootwrap.conf env CONFIG_FILE=["/etc/nova/nova.conf"] NETWORK_ID=3 dnsmasq --strict-order --bind-interfaces --conf-file=/etc/dnsmasq.conf --pid-file=/var/lib/nova/networks/nova-br1002.pid --listen-address=10.10.1.3 --except-interface=lo --dhcp-range=set:franknet,10.10.1.3,static,255.255.255.0,120s --dhcp-lease-max=256 --dhcp-hostsfile=/var/lib/nova/networks/nova-br1002.conf --dhcp-script=/usr/bin/nova-dhcpbridge --leasefile-ro --domain=novalocal --no-hosts --addn-hosts=/var/lib/nova/networks/nova-br1002.hosts
Exit code: 2
Stdout: u''
Stderr: u"2015-01-27 13:29:13.983 10307 INFO nova.openstack.common.periodic_task [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Skipping periodic task _periodic_update_dns because its interval is negative\n2015-01-27 13:29:13.985 10307 INFO nova.network.driver [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Loading network driver 'nova.network.linux_net'\n2015-01-27 13:29:13.986 10307 DEBUG nova.servicegroup.api [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] ServiceGroup driver defined as an instance of db __new__ /usr/lib/python2.6/site-packages/nova/servicegroup/api.py:65\n2015-01-27 13:29:14.107 10307 DEBUG stevedore.extension [-] found extension EntryPoint.parse('file = nova.image.download.file') _load_plugins /usr/lib/python2.6/site-packages/stevedore/extension.py:156\n2015-01-27 13:29:14.121 10307 DEBUG stevedore.extension [-] found extension EntryPoint.parse('file = nova.image.download.file') _load_plugins /usr/lib/python2.6/site-packages/stevedore/extension.py:156\n\ndnsmasq: failed to create listening socket for 10.10.1.3: Address already in use\n"
[u'Traceback (most recent call last):\n', u' File "/usr/lib/python2.6/site-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply\n incoming.message))\n', u' File "/usr/lib/python2.6/site-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch\n return self._do_dispatch(endpoint, method, ctxt, args)\n', u' File "/usr/lib/python2.6/site-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch\n result = getattr(endpoint, method)(ctxt, **new_args)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/floating_ips.py", line 193, in deallocate_for_instance\n super(FloatingIP, self).deallocate_for_instance(context, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 563, in deallocate_for_instance\n instance=instance)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 246, in deallocate_fixed_ip\n address, instance=instance)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 980, in deallocate_fixed_ip\n self._teardown_network_on_host(context, network)\n', u' File "/usr/lib/python2.6/site-packages/nova/openstack/common/lockutils.py", line 249, in inner\n return f(*args, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 1906, in _teardown_network_on_host\n self.driver.update_dhcp(elevated, dev, network)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/linux_net.py", line 1004, in update_dhcp\n restart_dhcp(context, dev, network_ref)\n', u' File "/usr/lib/python2.6/site-packages/nova/openstack/common/lockutils.py", line 249, in inner\n return f(*args, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/linux_net.py", line 1118, in restart_dhcp\n _execute(*cmd, run_as_root=True)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/linux_net.py", line 1211, in _execute\n return utils.execute(*cmd, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/utils.py", line 165, in execute\n return processutils.execute(*cmd, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/openstack/common/processutils.py", line 196, in execute\n cmd=sanitized_cmd)\n', u'ProcessExecutionError: Unexpected error while running command.\nCommand: sudo nova-rootwrap /etc/nova/rootwrap.conf env CONFIG_FILE=["/etc/nova/nova.conf"] NETWORK_ID=3 dnsmasq --strict-order --bind-interfaces --conf-file=/etc/dnsmasq.conf --pid-file=/var/lib/nova/networks/nova-br1002.pid --listen-address=10.10.1.3 --except-interface=lo --dhcp-range=set:franknet,10.10.1.3,static,255.255.255.0,120s --dhcp-lease-max=256 --dhcp-hostsfile=/var/lib/nova/networks/nova-br1002.conf --dhcp-script=/usr/bin/nova-dhcpbridge --leasefile-ro --domain=novalocal --no-hosts --addn-hosts=/var/lib/nova/networks/nova-br1002.hosts\nExit code: 2\nStdout: u\'\'\nStderr: u"2015-01-27 13:29:13.983 10307 INFO nova.openstack.common.periodic_task [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Skipping periodic task _periodic_update_dns because its interval is negative\\n2015-01-27 13:29:13.985 10307 INFO nova.network.driver [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Loading network driver \'nova.network.linux_net\'\\n2
Once I killed the offending dnsmasq process, I could successfully create instances.
SOURCE: http://fedoraproject.org/wiki/QA:Testcase_launch_an_instance_on_OpenStack
1: Deployment Server (where I could then run the 'ds wizard' command)
2: My all-in-one deployment to a KVM hypervisor.
Both machines are running RHEL 6.5 and have lots of CPU, RAM and disk.
My HUGE problem after install was that the Deployment Server automatically started an unnecessary dnsmasq process. And because of this, I could not create any new instances. Every time I tried, I got errors similar to the following in /var/log/nova/compute.log (and similar in network.log also):
2015-01-27 13:29:14.987 19521 ERROR oslo.messaging.rpc.dispatcher [-] Exception during message handling: Remote error: ProcessExecutionError Unexpected error while running command.
Command: sudo nova-rootwrap /etc/nova/rootwrap.conf env CONFIG_FILE=["/etc/nova/nova.conf"] NETWORK_ID=3 dnsmasq --strict-order --bind-interfaces --conf-file=/etc/dnsmasq.conf --pid-file=/var/lib/nova/networks/nova-br1002.pid --listen-address=10.10.1.3 --except-interface=lo --dhcp-range=set:franknet,10.10.1.3,static,255.255.255.0,120s --dhcp-lease-max=256 --dhcp-hostsfile=/var/lib/nova/networks/nova-br1002.conf --dhcp-script=/usr/bin/nova-dhcpbridge --leasefile-ro --domain=novalocal --no-hosts --addn-hosts=/var/lib/nova/networks/nova-br1002.hosts
Exit code: 2
Stdout: u''
Stderr: u"2015-01-27 13:29:13.983 10307 INFO nova.openstack.common.periodic_task [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Skipping periodic task _periodic_update_dns because its interval is negative\n2015-01-27 13:29:13.985 10307 INFO nova.network.driver [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Loading network driver 'nova.network.linux_net'\n2015-01-27 13:29:13.986 10307 DEBUG nova.servicegroup.api [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] ServiceGroup driver defined as an instance of db __new__ /usr/lib/python2.6/site-packages/nova/servicegroup/api.py:65\n2015-01-27 13:29:14.107 10307 DEBUG stevedore.extension [-] found extension EntryPoint.parse('file = nova.image.download.file') _load_plugins /usr/lib/python2.6/site-packages/stevedore/extension.py:156\n2015-01-27 13:29:14.121 10307 DEBUG stevedore.extension [-] found extension EntryPoint.parse('file = nova.image.download.file') _load_plugins /usr/lib/python2.6/site-packages/stevedore/extension.py:156\n\ndnsmasq: failed to create listening socket for 10.10.1.3: Address already in use\n"
[u'Traceback (most recent call last):\n', u' File "/usr/lib/python2.6/site-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply\n incoming.message))\n', u' File "/usr/lib/python2.6/site-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch\n return self._do_dispatch(endpoint, method, ctxt, args)\n', u' File "/usr/lib/python2.6/site-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch\n result = getattr(endpoint, method)(ctxt, **new_args)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/floating_ips.py", line 193, in deallocate_for_instance\n super(FloatingIP, self).deallocate_for_instance(context, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 563, in deallocate_for_instance\n instance=instance)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 246, in deallocate_fixed_ip\n address, instance=instance)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 980, in deallocate_fixed_ip\n self._teardown_network_on_host(context, network)\n', u' File "/usr/lib/python2.6/site-packages/nova/openstack/common/lockutils.py", line 249, in inner\n return f(*args, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/manager.py", line 1906, in _teardown_network_on_host\n self.driver.update_dhcp(elevated, dev, network)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/linux_net.py", line 1004, in update_dhcp\n restart_dhcp(context, dev, network_ref)\n', u' File "/usr/lib/python2.6/site-packages/nova/openstack/common/lockutils.py", line 249, in inner\n return f(*args, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/linux_net.py", line 1118, in restart_dhcp\n _execute(*cmd, run_as_root=True)\n', u' File "/usr/lib/python2.6/site-packages/nova/network/linux_net.py", line 1211, in _execute\n return utils.execute(*cmd, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/utils.py", line 165, in execute\n return processutils.execute(*cmd, **kwargs)\n', u' File "/usr/lib/python2.6/site-packages/nova/openstack/common/processutils.py", line 196, in execute\n cmd=sanitized_cmd)\n', u'ProcessExecutionError: Unexpected error while running command.\nCommand: sudo nova-rootwrap /etc/nova/rootwrap.conf env CONFIG_FILE=["/etc/nova/nova.conf"] NETWORK_ID=3 dnsmasq --strict-order --bind-interfaces --conf-file=/etc/dnsmasq.conf --pid-file=/var/lib/nova/networks/nova-br1002.pid --listen-address=10.10.1.3 --except-interface=lo --dhcp-range=set:franknet,10.10.1.3,static,255.255.255.0,120s --dhcp-lease-max=256 --dhcp-hostsfile=/var/lib/nova/networks/nova-br1002.conf --dhcp-script=/usr/bin/nova-dhcpbridge --leasefile-ro --domain=novalocal --no-hosts --addn-hosts=/var/lib/nova/networks/nova-br1002.hosts\nExit code: 2\nStdout: u\'\'\nStderr: u"2015-01-27 13:29:13.983 10307 INFO nova.openstack.common.periodic_task [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Skipping periodic task _periodic_update_dns because its interval is negative\\n2015-01-27 13:29:13.985 10307 INFO nova.network.driver [req-0d06a702-1f2a-4b95-a8f3-0f8665d4c83b None None] Loading network driver \'nova.network.linux_net\'\\n2
Once I killed the offending dnsmasq process, I could successfully create instances.
SOURCE: http://fedoraproject.org/wiki/QA:Testcase_launch_an_instance_on_OpenStack
Saturday, January 24, 2015
How to remove a bridged network interface in Red Hat Linux
So ICO 2.4 requires the Deployment Server machine to have interface br0 defined as a bridge connected to eth0. However, ICO 2.4.0.1 does NOT want br0, but wants eth0. I had already created br0 using the virsh command, so I had to look up how to remove it, and it's very simple once you find it:
virsh iface-unbridge br0
and that's it. It puts all of the configuration back on eth0 and you're in business.
virsh iface-unbridge br0
and that's it. It puts all of the configuration back on eth0 and you're in business.
Friday, January 23, 2015
I'm giving up on ICO 24 on RHEL 6.6
After installing the Deployment Service (which gives you the ds command), I tried to deploy an all-in-one ICO environment, and it failed very badly. So badly that multiple components stopped running and there was no recovering from it. So I'm now starting over with RHEL 6.5.
Thursday, January 22, 2015
Getting IBM Cloud Orchestrator to install on Red Hat Enterprise Linux 6.6
This is probably fixed in ICO 2.4.1, but in 2.4, you need to modify a file to get the installation to work on RHEL 6.6 because it believes that only RHEL 6.4 and 6.5 are supported. You'll encounter an error when you run through the ds wizard command.
The file you need to update (after installing the Deployment Service) is:
/opt/ibm/cloud-deployer/precheck.json
In that file, you'll see multiple stanzas similar to this:
"os": {
"release": "Red Hat Enterprise Linux Server release",
"arch": "64",
"version": ["6.5","6.4"]
The file you need to update (after installing the Deployment Service) is:
/opt/ibm/cloud-deployer/precheck.json
In that file, you'll see multiple stanzas similar to this:
"os": {
"release": "Red Hat Enterprise Linux Server release",
"arch": "64",
"version": ["6.5","6.4"]
},
You need to update the line that contains "version" to be:
"version": ["6.6","6.5","6.4"]
And then the wizard can complete.
Some background:
I found this because I saw the error:
"DeployTaskFailed: Failed to execute deployment task: deploy-precheck, error message: precheck failed on ico24demo.mynet.foo: ico24demo.mynet.fooincorrect os version,expected:['6.5', '6.4']actually:6.6\n\n"
And I ran the following command in multiple directories:
grep -r "6\.5" *
until I found the file I needed to change.
Configuring RHEL prerequisites for IBM Cloud Orchestrator 2.4
Introduction
The first basic requirement for your systems when deploying ICO 2.4 is to have DNS name resolution working correctly. For some reason or another, this is the area that has the largest number and most frequent problems in every single enterprise. So this short post is meant to help you get something going quickly, normally in a test environment, until you can communicate with your networking team to get the problems solved permanently.My Simple Environment
My test environment is the demo configuration with one RHEL 6.6 server with 8 cores and 32GB of RAM, with KVM for virtualization.Setting Your Hostname
You need to set your hostname to a Fully Qualified Domain Name (FQDN), and in a test environment, the format just needs to be correct - the actual name doesn't have to be registered anywhere. For example, I named my host ico24demo.mynet.foo. I don't care if .foo is a valid root or not because I get to make the rules in my own environment.To permanently set your hostname to an FQDN if you didn't do it at install time, you need to edit the file:
/etc/sysconfig/network
and set:
HOSTNAME=your.full.fqdn
If you don't want to reboot to have it set, also run the following as root:
hostname your.full.fqdn
Update Your Hosts File
You also need to update your /etc/hosts file with your hostname and IP. So edit /etc/hosts and add that information for your host. In my environment, my hostname is ico24demo.mynet.foo and my static IP address is 192.168.1.250. So here's my /etc/hosts entry:192.168.1.250 ico24demo.mynet.foo ico24demo
Start dnsmasq
dnsmasq is a simple DNS server (and DHCP and some other things) that we'll configure locally for name resolution.
rpm -q -a | grep dnsmasq
If it's not installed, install it.
Assuming it is installed, make sure it's not already running with:
ps -ef | grep dnsmasq
If it is, kill it with:
service stop dnsmasq
The above may or may not work. If the process is still running kill it with the kill command.
And now that your /etc/hosts file has your host information, start dnsmasq with:
service start dnsmasq
Test Your New DNS Server
Probably the easiest way to test your server is to first edit your /etc/resolv.conf file to set your nameserver to your local machine. So my local IP is 192.168.1.250, and the IP address of my subnet's nameserver is 192.168.1.1. So in my /etc/resolv.conf file, I have the following:# Generated by NetworkManager
nameserver 192.168.1.250
nameserver 192.168.1.1
host 192.168.1.250
The correct output for me is:
250.1.168.192.in-addr.arpa domain name pointer ico24demo.mynet.foo.
If you get something different, go back over the steps above. But if it's correct, keep going.
Make the Nameserver Change Permanent
Go to System->Preferences->Network Connections to set your nameserver to be your local IP address.A non-GUI way to do this is to update your /etc/sysconfig/network-scripts/ifcfg-eth0 file to set the DNS server.
Good luck!
Monday, July 7, 2014
APM UI 7.7 - Creating Windows Services
If you've installed APM UI v7.7 on a Windows server, you probably have noticed that IBM doesn't create Windows services. As a result, none of the services start after a reboot, etc.
Below are the steps necessary to create Windows services for APM UI and SCR (Service Component Repository). In this scenario, we have the SCR database using DB2 vs. Derby.
We've also included the commands necessary to create the service for SCR on Derby (however, this hasn't been tested).
Assumptions
Our base install directory for the APM UI is C:\IBM\APMUI - your path may differ, adjust the commands below as appropriate.
Procedure
prunsrv //IS//SCR --Startup=auto --DisplayName="IBM APMUI - SCR" --Description="IBM WebSphere Liberty Profile SCR" ++DependsOn=Tcpip ++DependsOn=DB2-0 --LogPath=C:\IBM\APMUI\usr\servers\apmui\logs --StdOutput=auto --StdError=auto --StartMode=exe --StartPath=C:\IBM\APMUI --StartImage=C:\IBM\APMUI\bin\server.bat --StartParams=start#scr --StopMode=exe --StopPath=C:\IBM\APMUI --StopImage=C:\IBM\APMUI\bin\server.bat --StopParams=stop#scr
prunsrv //IS//APMUI --Startup=auto --DisplayName="IBM APMUI - APMUI" --Description="IBM WebSphere Liberty Profile APMUI" ++DependsOn=SCR --LogPath=C:\IBM\APMUI\usr\servers\apmui\logs --StdOutput=auto --StdError=auto --StartMode=exe --StartPath=C:\IBM\APMUI --StartImage=C:\IBM\APMUI\bin\server.bat --StartParams=start#apmui --StopMode=exe --StopPath=C:\IBM\APMUI --StopImage=C:\IBM\APMUI\bin\server.bat --StopParams=stop#apmui
The name specified after //IS// is effectively the "short name" for the service. So, you can issue commands such as "net start apmui", "net stop scrderby", etc. based on those names. As with all services, you can use the full Display Name if you enjoy typing (net start "IBM APMUI - APMUI", etc.)
The typical startup sequence would be:
The typical shutdown sequence would be:
Sample - APMUI Service
Below are the steps necessary to create Windows services for APM UI and SCR (Service Component Repository). In this scenario, we have the SCR database using DB2 vs. Derby.
We've also included the commands necessary to create the service for SCR on Derby (however, this hasn't been tested).
Assumptions
Our base install directory for the APM UI is C:\IBM\APMUI - your path may differ, adjust the commands below as appropriate.
Procedure
- Download the Apache Commons Daemon (link).
- Extract commons-daemon-1.0.15-bin-windows.zip and copy prunsrv.exe to C:\IBM\APMUI\bin\
- Open a Command Prompt and change into your C:\IBM\APMUI\bin directory
- Create the Windows service for SCR and have it depend on Tcpip and DB2 being up first.
prunsrv //IS//SCR --Startup=auto --DisplayName="IBM APMUI - SCR" --Description="IBM WebSphere Liberty Profile SCR" ++DependsOn=Tcpip ++DependsOn=DB2-0 --LogPath=C:\IBM\APMUI\usr\servers\apmui\logs --StdOutput=auto --StdError=auto --StartMode=exe --StartPath=C:\IBM\APMUI --StartImage=C:\IBM\APMUI\bin\server.bat --StartParams=start#scr --StopMode=exe --StopPath=C:\IBM\APMUI --StopImage=C:\IBM\APMUI\bin\server.bat --StopParams=stop#scr
- Create the Windows service for APMUI and have it depend on SCR being up first.
prunsrv //IS//APMUI --Startup=auto --DisplayName="IBM APMUI - APMUI" --Description="IBM WebSphere Liberty Profile APMUI" ++DependsOn=SCR --LogPath=C:\IBM\APMUI\usr\servers\apmui\logs --StdOutput=auto --StdError=auto --StartMode=exe --StartPath=C:\IBM\APMUI --StartImage=C:\IBM\APMUI\bin\server.bat --StartParams=start#apmui --StopMode=exe --StopPath=C:\IBM\APMUI --StopImage=C:\IBM\APMUI\bin\server.bat --StopParams=stop#apmui
Derby vs. DB2
If you have SCR running under Derby vs. DB2, you can create a third service for SCRDERBY. The start-up of SCR would then depend on SCRDERBY instead of DB2-0.- Create the Windows service for SCRDERBY and have it depend on TCPIP being up first
- In this case, have the SCR service depend on SCRDERBY instead of DB2.
The name specified after //IS// is effectively the "short name" for the service. So, you can issue commands such as "net start apmui", "net stop scrderby", etc. based on those names. As with all services, you can use the full Display Name if you enjoy typing (net start "IBM APMUI - APMUI", etc.)
The typical startup sequence would be:
- net start scrderby (if running Derby vs. DB2)
- net start scr
- net start apmui
The typical shutdown sequence would be:
- net stop apmui
- net stop scr
- net stop scrderby (if running Derby vs. DB2)
prunsrv Documentation/Usage:
Here's a link to the prunsrv documentation/usage.Sample - APMUI Service
Sample - APMUI Service Dependencies
Wednesday, January 29, 2014
MongoDB Setup and Monitoring with Application Insight
Introduction
MongoDB might be new to you. It certainly was new to us, so when we took some time to experiment with IBM SmartCloud Monitoring - Application Insight of a MongoDB, our first hurdle was setting up MongoDB! It should be noted that stand-alone DB instances are not currently supported by the monitoring agent, so we needed to build up a clustered/replicated MongoDB configuration. This is common in a production environment, but a bit more than we expected to need in the lab.
MongoDB Setup Overview
Our MongoDB setup was accomplished using a single virtual machine. While this isn't a recommended setup for a production environment, it is perfectly fine for this testing. Our setup included the following overall steps:
A special thanks to the following website for providing some demo database data and a nice presentation on MongoDB and Ruby apps. Also thanks to the MongoDB docs for creating a cluster.
You may ask, why 3 databases, aren't 2 enough? This is because the recommended MINIMUM number of databases for a Replica Set is 3. If your setup only has 2 databases, Application Insight will flag the Global MongoDB Status as a Warning.
- Create 3 databases, each configured to use unique paths and ports (ports: 37017, 37018, 37019)
- Connect to the "soon-to-be" primary database (port 37017) and configure the replica set.
- Add second (port 37018) and third (port 37019) databases to the replica set.
- Installed a demo database using JSON import
- Started a Configuration Server (port 37020)
- Started mongos, pointing at Configuration Server and listening on port 37021
- Connected to mongos (port 37021)
- Added replica set to Shard
- Enabled Sharding on our demodb
- Enabled Sharding on the collection (aka table)
A special thanks to the following website for providing some demo database data and a nice presentation on MongoDB and Ruby apps. Also thanks to the MongoDB docs for creating a cluster.
You may ask, why 3 databases, aren't 2 enough? This is because the recommended MINIMUM number of databases for a Replica Set is 3. If your setup only has 2 databases, Application Insight will flag the Global MongoDB Status as a Warning.
MongoDB Setup
VM hostname is "openpulse".
Replica Set is named "rs1".
Download MongoDB (we used 64-bit Linux) from here.
Untar file. Location of files will be referred to as $MEDIA
The remaining commands assume the $MEDIA/bin directory are in your path.
mkdir -p /srv/mongodb/rs1-0 /srv/mongodb/rs1-1 /srv/mongodb/rs1-2
# Start up 3 databases
Replica Set is named "rs1".
Download MongoDB (we used 64-bit Linux) from here.
Untar file. Location of files will be referred to as $MEDIA
The remaining commands assume the $MEDIA/bin directory are in your path.
mkdir -p /srv/mongodb/rs1-0 /srv/mongodb/rs1-1 /srv/mongodb/rs1-2
# Start up 3 databases
mongod --port 37017 --dbpath /srv/mongodb/rs1-0 --replSet rs1 --smallfiles --oplogSize 128
mongod --port 37018 --dbpath /srv/mongodb/rs1-1 --replSet rs1 --smallfiles --oplogSize 128
mongod --port 37019 --dbpath /srv/mongodb/rs1-2 --replSet rs1 --smallfiles --oplogSize 128
# Connect to to-be-primary
# Connect to to-be-primary
mongo --port 37017
#Give Primary a configuration for a replication set
rsconf = {
_id: "rs1",
members: [
{
_id: 0,
host: "openpulse:37017"
}
]
}
#Initiates the replica set
rs.initiate( rsconf )
#Displays Replication set
rs.conf()
#Add 2nd db - NOTE: you might need to wait for prompt to change to PRIMARY before continuing.
rs.add("openpulse:37018")
#Add 3rd db
rs.add("openpulse:37019")
#Display Replication set, confirm three are listed
rs.conf()
#Install DemoDB
curl -L http://c.spf13.com/OSCON/venuesImport.json | mongoimport --port 37017 -d demodb -c venues
#Start a config server
mkdir /data/configdb2
mongod --configsvr --dbpath /data/configdb2 --port 37020
#Start mongos pointing at config server
mongos --port 37021 --configdb openpulse:37020
#Connect to mongos
mongo --host openpulse --port 37021
#Add replica set to shard
sh.addShard( "rs1/openpulse:37017" )
#Shows replica set and other stats
db._adminCommand("connPoolStats");
#Connect to mongos
mongo --host openpulse --port 37021
#Enable sharding for the DB
sh.enableSharding("demodb")
#switch DB
use demodb
#Set index for sharding
db.venues.ensureIndex( { _id : "hashed" } )
db.venues.getIndexes()
#Setup sharding of the collection (table)
sh.shardCollection("demodb.venues", { "_id": "hashed" })
MongoDB Agent Setup
Reference IBM documentation here.
Our monitoring instance is named "Pulse21"
mongodb-agent.sh install
mongodb-agent.sh config pulse21
Agent configuration started...
Edit "Monitoring Agent for MongoDB" settings? [ 1=Yes, 2=No ] (default is: 1):
Agent Configuration :
Configuration variables for agent start up
The directory where the Java runtime is located. This value is optional. The agent will use the built in Java by default. Use this to over ride the Java to be used.
Java (default is: ):
Allows the user to say whether these system is a cluster or single replication set. This value is optional. By default the agent will monitor a cluster.
Type [ 1=Cluster, 2=Single Set ] (default is: 1):
Port Number for the router of a MongoDB cluster or a mongod instance of a MongoDB replication set being monitored. This value is optional. The agent will automatically discover the cluster location if only one is present on the system. This is used to over ride discovery of a cluster or explicitly monitor a replication set.
Port (default is: ): 37021 (Note: this is the port of the mongos process, not the individual databases)
The ip address for the host system of the router or the mongod instance. This value is optional. The agent will automatically discover the default ip address. This is used to select a particular interface on a system where MongoDB is bound to only one of several addresses.
Host (default is: ):
Agent configuration completed...
As a reminder, you should restart appropriate instance(s) for new configuration settings to take effect.
./mongodb-agent.sh start pulse21
Processing. Please wait...
Starting Monitoring Agent for MongoDB ...
Monitoring Agent for MongoDB started
Application Insight Screenshots
Thanks,
Anthony Segelhorst and Jamie Carl
Monday, January 6, 2014
Creating ITM deployment packages for IBM Endpoint Manager
A question
came up on the IBM Endpoint Manager forum on how to deploy ITM agents using
IEM. This is not something that I have done in IEM, but have done with TCM (Configuration
Manager) and TPM (Provisioning Manager). I did recall that ITM had a switch
that allowed for the creation of SPD (Software Package Definitions) or SPB
(Software Package Blocks), so thought I would look at this for IEM.
Now there
are a few ways of using the SPB/SPD or even just create the bundle with no
export format. If you use the SPD format, you will get the command line that
would need to be used in the IEM action script. So for this example. I am going
to use the SPD export. Just to note though, IEM also supports the import of SPB
files, so this could be another option.
Assumption: The particular bundle that you desire is
already in the ITM depot.
The high
level steps would be as follows:
- Create IEM Download File
- Determine the sha1 information.
- Review the SPD file and determine install command and options for the NT_Silent_Install.txt
- Use the BFArchive tool to ZIP the bundle directory and upload to the IEM server.
- Determine relevance method
- Create the fixlet
Create the Bundle
ITM uses
the “tacmd” command with the “exportBundles” switch to create a silent
installation folder. For this example, I am using the “-o SPD” switch to define
that I want the export to also create the SPD file to determine the command
line an contents of the NT_Silent_Install.txt file.
tacmd exportBundles -o SPD -t nt -e
e:\data\bundle
KUICEB023I: Are you sure you want to export the
following bundles to the e:\data\bundle directory?
Product Code : NT
Deployable
: True
Version
: 063000000
Description
: Monitoring Agent for Windows OS
Host Type
: WINNT
Host Version : WINNT
Prerequisites:
Product Code : NT
Deployable
: True
Version
: 063000000
Description
: Monitoring Agent for Windows OS
Host Type
: WIX64
Host Version : WIX64
Prerequisites:
KUICEB024I: Enter Y for yes or N for no: y
KUICEB020I: Exporting bundles to the
e:\data\bundle directory. The time required to complete this operation depends
on the number and size of the exported bundles.
KUICEB022I: The following bundles were
successfully exported to the e:\data\bundle directory:
Product Code : NT
Deployable
: True
Version
: 063000000
Description
: Monitoring Agent for Windows OS
Host Type
: WINNT
Host Version : WINNT
Prerequisites:
Product Code : NT
Deployable
: True
Version
: 063000000
Description
: Monitoring Agent for Windows OS
Host Type
: WIX64
Host Version : WIX64
Prerequisites:
Create IEM Download File
Use the
BFArchive tool (https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli%20Endpoint%20Manager/page/BFArchive%20Tool)
to compress the bundle
directory to a single file.
BFArchive-8.0.0.0.exe -a e:\data\bundle\NT_063000000_WINNT
e:\data\NT_063000000_WINNT.tmp
Determine sha1 information
The SHA1
tool (https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli%20Endpoint%20Manager/page/SHA1%20Tool) can be used to determine the SHA1
value and also will provide a template for the “prefetch” command.
Sha1.exe -r e:\data\NT_063000000_WINNT.tmp
prefetch NT_063000000_WINNT.tmp
sha1:32685b95f970e8f61e187d8433360072f213dba8 size:85360201
http://EXAMPLEURL/REPLACEME.exe
Use the
sha1 value as the folder name and create a folder under “E:\Program Files
(x86)\BigFix Enterprise\BES Server\wwwrootbes\Uploads\” (this is the directory
on my TEM server), then copy the TMP
file to the new folder. For this example the folder would be “E:\Program Files
(x86)\BigFix Enterprise\BES Server\wwwrootbes\Uploads\32685b95f970e8f61e187d8433360072f213dba8”
Review the SPD file and
determine install command and options for the NT_Silent_Install.txt
If you do
not already have a silent install response file, this can be created by
reviewing the information in the SPD file. This is no different than the
response file used for non-IEM deployments. This also goes for the command
line.
The SPD
file does contain quite a bit of information in it and if you are not familiar
with them, you might be better off reading the ITM install guides on how to
create the response file.
Most of
what is needed is either in the “default_variables” or in the “add_text_file_objects”.
These sections will show the variables that are used and the command line
required to execute the install.
default_variables
LOG_MODE = "LOGMODE"
SOURCE_DIR =
"e:\data\bundle\NT_063000000_WINNT"
TEMS_HOSTNAME = "localhost"
CANDLEHOME = "C:\IBM\ITM"
FIREWALL = "NO"
NETWORK_PROTOCOL = "IP.PIPE"
IP_PIPE_PORT_NUMBER = "1918"
CANDLE_ENCRIPTION_KEY =
"IBMTivoliMonitoringEncryptionKey"
ARGS_INSTALL_CMD = '/c start /wait
$(CANDLEHOME)\spbInstall\setup.exe /w
/z"/sf$(CANDLEHOME)\spbInstall\NT_Silent_Install.txt" /s /f2"$(DEST_SILENT_INSTALL_LOG)"'
DEST_SILENT_INSTALL_LOG = "$(temp_dir)\Silent_NT.log"
DEST_SILENT_UNINSTALL_LOG =
"$(temp_dir)\Silent_NT.log"
ARGS_UNINSTALL_CMD = '/c start /wait
$(CANDLEHOME)\spbInstall\setup.exe /w
/z"/sf$(CANDLEHOME)\spbInstall\NT_Silent_Uninstall.txt" /s /f2"$(DEST_SILENT_UNINSTALL_LOG)"'
end
add_text_file_objects
replace_if_existing = y
file =
$(CANDLEHOME)\spbInstall\NT_Silent_Install.txt
stop_on_failure = n
add_command_line
replace_if_existing = y
text = ";Install
Directory=C:\IBM\ITM"
command = "Install Directory"
key = "C:\IBM\ITM"
position = begin
pattern = "Install
Directory=C:\IBM\ITM"
end
add_command_line
replace_if_existing = y
text =
";EncryptionKey=IBMTivoliMonitoringEncryptionKey"
command = "EncryptionKey"
key =
"IBMTivoliMonitoringEncryptionKey"
position = begin
pattern =
"EncryptionKey=IBMTivoliMonitoringEncryptionKey"
end
add_line
replace_if_existing = y
text = "Install
Directory=$(CANDLEHOME)"
position = before_first
pattern = ";Install
Directory=C:\IBM\ITM"
end
add_line
replace_if_existing = y
text =
"EncryptionKey=$(CANDLE_ENCRIPTION_KEY)"
position = before_first
pattern =
";EncryptionKey=IBMTivoliMonitoringEncryptionKey"
end
add_line
replace_if_existing = y
text = "[CMA_CONFIG]"
position = end
end
add_line
replace_if_existing = y
text = "FTO Flag=N"
position = end
end
add_line
replace_if_existing = y
text = "AUDIT=Y"
position = end
end
add_line
replace_if_existing = y
text
= "Protocol1=$(NETWORK_PROTOCOL)"
position = end
end
add_line
replace_if_existing = y
text =
"IPPIPE_Port=$(IP_PIPE_PORT_NUMBER)"
position = end
end
add_line
replace_if_existing = y
text =
"IPPIPE_Host=$(TEMS_HOSTNAME)"
position = end
end
add_line
replace_if_existing = y
text = "CONNECT=Y"
position = end
end
end
With this
information, I am able to build the action script. Of course there will be
different paths for some items, but that goes with knowing the IEM environment.
My command
line will look something like this:
waithidden "C:\IBM\Install\setup.exe"
/w /z"sfc:\IBM\install\IEM_NT_Silent_Install.txt" /s
/f2"c:\IBM\Install\Silent_NT.log"
During my
download, I will extract the .TMP file and then copy the files to “C:\IBM\Install”.
This is not required as they can be executed from the “__Download” folder, but
I just wanted the code to be kept local. I am also going to create the response
file called “IEM_NT_Silent_Install.txt” using the appendfile command.
Here is
what my action script looks like
=======================================================================
prefetch NT_063000000_WINNT.tmp
sha1:32685b95f970e8f61e187d8433360072f213dba8 size:85360201
http://winbfsrv:52311/Uploads/32685b95f970e8f61e187d8433360072f213dba8/NT_063000000_WINNT.tmp
extract NT_063000000_WINNT.tmp
dos mkdir "c:\IBM\install"
delete "__Download\NT_063000000_WINNT.tmp"
dos xcopy /s/e/v/q/y "__Download\*.*"
"C:\IBM\Install"
parameter
"TEMS_HOSTNAME"="temhub"
parameter "Install
Directory"="C:\IBM\ITM"
parameter "FIREWALL"="NO"
parameter
"NETWORK_PROTOCOL"="IP.PIPE"
parameter "IP_PIPE_PORT_NUMBER"="1918"
delete __appendfile
appendfile [INSTALLATION SECTION]
appendfile
;---------------------------------------------------------------------
appendfile AgentDeploy=yes
appendfile License Agreement=I agree to use the
software only in accordance with the installed license.
appendfile Install Directory={parameter
"Install Directory"}
appendfile Install Folder=IBM Tivoli Monitoring
appendfile
EncryptionKey=IBMTivoliMonitoringEncryptionKey
appendfile [FEATURES]
appendfile KNTWICMA=Monitoring Agent for
Windows OS
appendfile [CMA_CONFIG]
appendfile FTO Flag=N
appendfile AUDIT=Y
appendfile Protocol1={parameter
"NETWORK_PROTOCOL"}
appendfile IPPIPE_Port={parameter
"IP_PIPE_PORT_NUMBER"}
appendfile IPPIPE_Host={parameter
"TEMS_HOSTNAME"}
appendfile CONNECT=Y
appendfile FIREWALL={parameter
"FIREWALL"}
delete
"c:\IBM\Install\IEM_NT_Silent_Install.txt"
copy __appendfile
"c:\IBM\Install\IEM_NT_Silent_Install.txt"
waithidden "C:\IBM\Install\setup.exe"
/w /z"sfc:\IBM\install\IEM_NT_Silent_Install.txt" /s
/f2"c:\IBM\Install\Silent_NT.log"
=======================================================================
Now this
action script does work and would be ok if you always had the same TEMS/RTEMS,
but I am sure that is not realistic. If you want to add to it, I would look at
possibly prompting for the TEMS/RTEMS host name with the “action parameter
query”.
For example, you would
replace the:
parameter
"TEMS_HOSTNAME"="temhub"
with:
action parameter query "Primary RTEMS
Hostname" with description "Please enter the Primary RTEMS
Hostname:" with default value "ITMHUB"
Determine relevance method
There are
many ways to check the relevance, this really comes down to your preferred
method. Here are a couple options:
Files:
C:\IBM\ITM\INSTALL\ver\ KINWIINSMSTR.VER
C:\IBM\ITM\properties\version\knt.IBM_Tivoli_Monitoring_-_Windows_OS_Agent-6.3.0.swtag
Services:
KNTCMA_Primary
KNTCMA_Watchdog
For simplicity,
I will just use the service “KNTCMA_Primary”. The relevance will look like:
not exists service “KNTCMA_Primary”
Create the fixlet
With all
the information gathered and the TMP file copied to the Uploads folder, the
fixlet can be created and used to deploy ITM agents. The fixlet can be created
by putting the following into a text file with the BES extension and then use
the Import function from the IEM Console to import the file to the desired
site.
=================================================================
<?xml version="1.0"
encoding="UTF-8"?>
<BES
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="BES.xsd">
<Fixlet>
<Title>Deploy:
IBM Tivoli Monitoring Agent for Winnt</Title>
<Description><![CDATA[Created:
Jan 5, 2014<BR>Created By: Martin Carnegie, Gulf Breeze Software
Partners<BR>Comment: Sample Fixlet for deploying ITM
agent.]]></Description>
<Relevance>(name
of it contains "Win") of operating system </Relevance>
<Relevance>not
exists service "KNTCMA_Primary"</Relevance>
<Category></Category>
<Source>Internal</Source>
<SourceID></SourceID>
<SourceReleaseDate>2014-01-05</SourceReleaseDate>
<SourceSeverity></SourceSeverity>
<CVENames></CVENames>
<SANSID></SANSID>
<MIMEField>
<Name>x-fixlet-modification-time</Name>
<Value>Mon,
06 Jan 2014 04:57:48 +0000</Value>
</MIMEField>
<Domain>BESC</Domain>
<DefaultAction
ID="Action1">
<Description>
<PreLink>Click
</PreLink>
<Link>here</Link>
<PostLink>
to deploy this action.</PostLink>
</Description>
<ActionScript
MIMEType="application/x-Fixlet-Windows-Shell">prefetch
NT_063000000_WINNT.tmp sha1:32685b95f970e8f61e187d8433360072f213dba8
size:85360201 http://winbfsrv:52311/Uploads/32685b95f970e8f61e187d8433360072f213dba8/NT_063000000_WINNT.tmp
extract NT_063000000_WINNT.tmp
dos mkdir "c:\IBM\install"
delete
"__Download\NT_063000000_WINNT.tmp"
dos xcopy /s/e/v/q/y "__Download\*.*"
"C:\IBM\Install"
action parameter query "Primary RTEMS
Hostname" with description "Please enter the Primary RTEMS
Hostname:" with default value "ITMHUB"
parameter
"TEMS_HOSTNAME"="temhub"
parameter "Install
Directory"="C:\IBM\ITM"
parameter "FIREWALL"="NO"
parameter "NETWORK_PROTOCOL"="IP.PIPE"
parameter
"IP_PIPE_PORT_NUMBER"="1918"
delete __appendfile
appendfile [INSTALLATION SECTION]
appendfile
;---------------------------------------------------------------------
appendfile AgentDeploy=yes
appendfile License Agreement=I agree to use the
software only in accordance with the installed license.
appendfile Install Directory={parameter
"Install Directory"}
appendfile Install Folder=IBM Tivoli Monitoring
appendfile EncryptionKey=IBMTivoliMonitoringEncryptionKey
appendfile [FEATURES]
appendfile KNTWICMA=Monitoring Agent for
Windows OS
appendfile [CMA_CONFIG]
appendfile FTO Flag=N
appendfile AUDIT=Y
appendfile Protocol1={parameter
"NETWORK_PROTOCOL"}
appendfile IPPIPE_Port={parameter
"IP_PIPE_PORT_NUMBER"}
appendfile IPPIPE_Host={parameter
"TEMS_HOSTNAME"}
appendfile CONNECT=Y
appendfile FIREWALL={parameter
"FIREWALL"}
delete
"c:\IBM\Install\IEM_NT_Silent_Install.txt"
copy __appendfile
"c:\IBM\Install\IEM_NT_Silent_Install.txt"
waithidden "C:\IBM\Install\setup.exe"
/w /z"sfc:\IBM\install\IEM_NT_Silent_Install.txt" /s
/f2"c:\IBM\Install\Silent_NT.log"
</ActionScript>
</DefaultAction>
</Fixlet>
</BES>
=================================================================
After Thoughts
There are
many ways that this could be done and some people may prefer to use the SPD/SPB
file or even the IEM Software Distribution Wizards rather than this sort of
manual method that I have here. Once you have the response files created and
the command lines to use, the SPD file section will not be required.
I think it
would also be interesting to use the “SWTAG” files “C:\IBM\ITM\properties\version”
on Windows or the “VER” files in “C:\IBM\ITM\INSTALL\ver” as part of an
analysis as there is some useful information in there to query the ITM
environment. This would have to be explored more on the various agents to see
where these files are and if they are there for all agents.
Hope you
were able to get some useful information out of this. Please let me know if you
come across an issue or a possible enhancement to this process.
Thanks
Martin
Carnegie.
Wednesday, December 18, 2013
APM UI 7.7 and Mobile Support
APM UI 7.7 and Mobile Support
If you currently using APM UI 7.6.x on mobile devices, I would currently recommend keeping the APM UI 7.6.x around and running. Keeping both running should not be an issue, since APM UI 7.6 uses TIP and APM UI 7.7 uses Liberty.
When testing APM UI 7.7 on an IPAD running IOS 7.0.4 the user interface was not usable. I saw the following issues:
1. Everything was not visible on the screen right to left on IBM provided widgets. This was even after collapsing the left pane.
2. I could not scroll down to see the data on all widgets.
Based on the following Dev Works post from IBM, I believe true mobile support is not expected till March.
https://www.ibm.com/developerworks/community/forums/html/topic?id=4f6fef3a-b945-4d1b-9bf1-09fb70942e87#2cad1b7a-e075-47c8-b74e-4f7dfbf5634f
NOTE: We also found the following in the manuals:
To avoid conflicts with the SCR of Tivoli Business Service Manager, do not install SmartCloud Application Performance Management UI and Tivoli Business Service Manager on the same computer.
This is probably due to the fact the TBSM schema and APM UI are very similar.
Source --> http://publib.boulder.ibm.com/infocenter/tivihelp/v63r1/topic/com.ibm.apm.doc_7.7/apm_ui_docs/apmui_77/install_using_im.html
Sunday, December 15, 2013
APM UI 7.7 is GA
APMUI 7.7 is GA
APMUI 7.7 is GA as of 12/13/13.
Part Numbers for download:
- Windows - CIR57ML
- AIX - CIR58ML
- Linux X - CIR59ML
- Linux Z - CIR5AML
User's Guide --> http://publib.boulder.ibm.com/infocenter/tivihelp/v63r1/topic/com.ibm.apm.doc_7.7/apm_ui_docs/apmui_77/fac_landing_user.html
Quick Highlights:
1. Requires use of derby or DB2 database
2. Uses Tivoli Blaze
3. WebSphere Liberty Core
4. Does NOT use TIP 2.x as the Application Server anymore.
New Widgets:
1. DataPower
2. Exchange 2013 Server
3. .NET Framework
4. Plus more ....
New Features Overview:
I will update the GBS blog over the next few days once we get this up and running in the lab.
Tuesday, November 5, 2013
Repairing WMI Errors on Windows systems with IBM Endpoint Manager
One of the issues that I have seen on customer sites are problems with WMI (Windows Management Instrumentation). One of the (many) good things about IEM is that it really does not need WMI to function as IBM uses custom built inspectors to do almost everything. The only issues are mainly around some data collection points (some hardware information for example), but this does not cause the agent to fail and still allows for actions to be taken on the targets. This is a huge advantage for IEM, as other vendor products will not even function if WMI is broken.
To identify systems with WMI issues is pretty simple with a Web Report:
1. In Web Reports go to Explore Data
2. Click the Edit Columns and add the column "Computer Model - Windows" (part of the hardware analysis)
3. Add the filter "Computer" "Computer - Model - Windows (Hardware Information (Windows))" "contains" "Windows Error"
This will show all systems with errors which should be ones with WMI issues. The thing to note is that there are different error codes and some are easier to fix than others.
Now to repair the WMI issues, I created a fixlet that can be used. This seems to address some of the errors that I have seen, but not all. Some systems are so far gone, that it will require manual intervention or even a rebuild of the OS.
I have made this available on the BigFix.me site for downloading and comments:
http://bigfix.me/fixlet/details/3652?force=true
Please note that this has been tested but only in a limited amount as I do not have many systems available to me and I could not simulate all the possible WMI errors.
Let me know how this works for you and we will see if we can get this to fix all errors.
Martin
To identify systems with WMI issues is pretty simple with a Web Report:
1. In Web Reports go to Explore Data
2. Click the Edit Columns and add the column "Computer Model - Windows" (part of the hardware analysis)
3. Add the filter "Computer" "Computer - Model - Windows (Hardware Information (Windows))" "contains" "Windows Error"
This will show all systems with errors which should be ones with WMI issues. The thing to note is that there are different error codes and some are easier to fix than others.
Now to repair the WMI issues, I created a fixlet that can be used. This seems to address some of the errors that I have seen, but not all. Some systems are so far gone, that it will require manual intervention or even a rebuild of the OS.
I have made this available on the BigFix.me site for downloading and comments:
http://bigfix.me/fixlet/details/3652?force=true
Please note that this has been tested but only in a limited amount as I do not have many systems available to me and I could not simulate all the possible WMI errors.
Let me know how this works for you and we will see if we can get this to fix all errors.
Martin
Tuesday, October 29, 2013
Using JScrollPane in Java and getting the contents to actually scroll
This has almost nothing to do with Tivoli, but I hit this stupid problem every few years, and it takes me 30 minutes to figure out the solution each time. So I thought I would post it here:
When creating a fat GUI in Java, you may have a portion of your window that is a JScrollPane, which has a ViewPort and a ViewPortView (often a JPanel) . A common need is to add components to your JPanel (the ViewPortView). However, when you do this, you'll notice that whatever you do with the JScrollPane's scrollbars, it won't scroll in one or both directions. Well, the problem is that the addition of new components does NOT increase the value of the ViewPortView's PreferredSize attribute. So as you add more components, you need to manually update this attribute with code similar to:
myJScrollPane.getViewPort().getView().setPreferredSize(myNewDimension);
I've tried setViewSize(), and that doesn't seem to do anything - setPreferredSize is what you've got to do.
When creating a fat GUI in Java, you may have a portion of your window that is a JScrollPane, which has a ViewPort and a ViewPortView (often a JPanel) . A common need is to add components to your JPanel (the ViewPortView). However, when you do this, you'll notice that whatever you do with the JScrollPane's scrollbars, it won't scroll in one or both directions. Well, the problem is that the addition of new components does NOT increase the value of the ViewPortView's PreferredSize attribute. So as you add more components, you need to manually update this attribute with code similar to:
myJScrollPane.getViewPort().getView().setPreferredSize(myNewDimension);
I've tried setViewSize(), and that doesn't seem to do anything - setPreferredSize is what you've got to do.
Wednesday, October 23, 2013
TCR 3.1.x and Launch --> Administration and Browser Fun
After installing JazzSM 1.1.0.1, I learned AGAIN all browsers are not created equal.
The browser, version, and java version are becoming more and more important today within the IBM product set and here is another example.
So after having a completed JazzSM/TCR install I went to configure the DB connection for TDW via Launch > Administration and found the following screen appears. Where is the rest of it?
The troubleshooting starts:
1. Maybe the installer said the install was SUCCESS, but it really failed. Better check the logs.
2. Maybe I need to cycled the application.
3. Let me check the user permissions.
4. Lets create another user.
5. Did the Cognos content store DB get created.
After talking to Venkat Saranathan (the GBS resident TCR expert), he suggests trying I.E (his favorite browser) instead of Chrome.
If you use Firefox or I.E the gui draws correctly or at least the buttons are now there. I.E. had other issues since I was using version 10 and version 10 is not supported for TCR. So after trying Firefox I was able to complete the configuration.
If you want to see what browsers and version are supported for JazzSM 1.10.1 check out the following link:
http://publib.boulder.ibm.com/infocenter/prodguid/v1r0/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1315519207893&osPlatform=Windows#
--> Then Select prerequisites
The browser, version, and java version are becoming more and more important today within the IBM product set and here is another example.
So after having a completed JazzSM/TCR install I went to configure the DB connection for TDW via Launch > Administration and found the following screen appears. Where is the rest of it?
The troubleshooting starts:
1. Maybe the installer said the install was SUCCESS, but it really failed. Better check the logs.
2. Maybe I need to cycled the application.
3. Let me check the user permissions.
4. Lets create another user.
5. Did the Cognos content store DB get created.
After talking to Venkat Saranathan (the GBS resident TCR expert), he suggests trying I.E (his favorite browser) instead of Chrome.
If you use Firefox or I.E the gui draws correctly or at least the buttons are now there. I.E. had other issues since I was using version 10 and version 10 is not supported for TCR. So after trying Firefox I was able to complete the configuration.
If you want to see what browsers and version are supported for JazzSM 1.10.1 check out the following link:
http://publib.boulder.ibm.com/infocenter/prodguid/v1r0/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1315519207893&osPlatform=Windows#
--> Then Select prerequisites
Wednesday, October 16, 2013
Gulf Breeze Software Partners is the first IBM Jaguar Hotspot in the US
Mark Poulson gave a great presentation on our company and what this achievement means. Click here to view the PDF of that presentation.
Tuesday, October 15, 2013
Exporting and Importing TEPS WorkSpaces
Exporting and Importing TEPS WorkSpaces
I have never had great success with exporting and importing workspaces that I have custom built. I spent some time last night to work through a process that appears to work well.
The key item I have found it is to import the workspace without the queries in place. This requires you to import any custom queries in advance though. This allows the IBM provided queries you used to not be touched.
#Admin and Author mode setup for my user on both TEPS servers
#Export WorkSpace with the queries
tacmd exportWorkspaces -x GBS_LZ_HealthCheck_RealTime.queries -w GBS_LZ_HealthCheck_RealTime -t lz -q
#Export WorkSpace with NO queries
tacmd exportWorkspaces -x GBS_LZ_HealthCheck_RealTime -w GBS_LZ_HealthCheck_RealTime -t lz
#Determine Custom Queries
cat GBS_LZ_HealthCheck_RealTime.queries |grep "query name"
<query name="G_LZ_DiskUsedPercent" type="candle.fw.model.PBasedModel">
<query name="System Statistics" name_key="Klz:KLZ6828" type="candle.fw.model.PBasedModel">
<query name="CPU" name_key="Klz:KLZ6802" type="candle.fw.model.PBasedModel">
<query name="VM Statistics (623)" name_key="Klz:KLZ6844" type="candle.fw.model.PBasedModel">
<query name="G_LZ_ProcessTop10" type="candle.fw.model.PBasedModel">
#NOTE: All of the queries I built start with G_ (so they are easy to find)
#Export the Cusom Queries:
tacmd exportqueries -x G_LZ_DiskUsedPercent -q G_LZ_DiskUsedPercent -t lz
tacmd exportqueries -x G_LZ_ProcessTop10 -q G_LZ_ProcessTop10 -t lz
#Transfer Files to the other TEPS
scp * <user>@<host>:/tmp/workspace
#Import the Queries
tacmd importQueries -x ./G_LZ_DiskUsedPercent
tacmd importQueries -x ./G_LZ_ProcessTop10
#Import the WorkSpace without the Queries
tacmd importWorkspaces -x ./GBS_LZ_HealthCheck_RealTime
Subscribe to:
Posts (Atom)