![]() |
JARRIX SYSTEMS Pty.Ltd. |
· What actually is eEMU ?
A great consolidator and framework for messages. There are heaps of scripts around to monitor various resources, but where does the output of those scripts goes ? Into log files, mail, printer etc. Now we have a single view of all happenings on our systems.
· How does eEMU maintain status of a resource ?
Status is maintained by the time-to-live concept. No status needs to be maintained in the agent which makes it very light-weight and simple. Sometimes I wonder if agents can be simpler. If we stop getting an alarm, we assume that the problem has been fixed and the status of a resource has changed.
· But what if there is a network outage or cron is dead ?
Using the concept of heart-beats is very powerful. It has by a few orders of magnitude lesser bandwidth requirements than SNMP-style polling. No discovery needs to be done for new systems, they just come up and send their first heart-beat. Therefore, use this powerful concept for monitoring the health of agents. All that is necessary is getting the agent to send one heart-beat on each poll.
· I have started eEMU but no messages appear in the browser
To troubleshoot the above situation do the following:
1. check that the emu server and cleaner are running:
$ps axw | grep emu
(The emu <port> and emucleaner <port> processes should show)
2. check that the emu server is listening on the specified port:
$netstat -a | grep <port>
3. monitor the log file to see if messages are comming through
$cd /usr/local/emu/<port>/logs
$tail -f <date>.log
4. make sure the password is correct
5. if the above fails, enable debugging in emu (or emu cleaner).
$vi emu (set DEBUG to 1; do not forget to set it back to 0 after you finish)
$emu <port> (messages will display on standard output)
· emsg1 seems to hang
emsg1 takes 7 attempts to connect to the emu server. This is to allow for network problems but also the emu server may be busy processing other requests. The 7 attempts take around 2 minutes. The attempt intervals are geometrically spaced to minimize collisions.
So, if it appears hung, either the emu server is down, busy or the port is specified incorrectly. If emsg1 cannot get through within all the 7 attempts, something is wrong with the server.
· xeb v2.x appears to be hung
xeb v2.0 has emsg1 integrated in it. It uses a request message to pull down
messages. The query option used by emsg1 uses an undocumented feature, namely
$emsg1 ... -o query -m "_FILE <profile>"
_FILE behaves just like FILE but the file is not removed from the out
directory on download.
The same as in question "emsg1 seems to hang" applies here.
· Nothing is displayed in xeb even though there should be
if you are using xeb v2.x, perharps the password is wrong. Remeber that if the password is incorrect, the emu server discards the message. Check the profile message file in the out directory, perharps the file generator doesn't work properly. In xeb v1.5, make sure EMUSELECT selects messages properly. To check EMUSELECT, do the following:
$cat /usr/local/emu/<port>/db/<port>db.txt | <EMUSELECT assignment>
messages after selection should display.
· What is the easiest way to start with xeb profiles ?
Just create a symbolic link in the out directory pointing to the text file in the db directory. Below, the profile is called "all" and eEMU listens on port 2345 on host "emuserver", password is "test":
$ln -s /usr/local/emu/db/db2345.txt /usr/local/emu/2345/out/all
In xeb, when prompted for profile details, specify:
server:emuserver
port: 2345
profile: all
password: test
Of course messages will not be order in any specific way. For that to happen, have a look in xeb_scripts.tar.
· What is class for ?
Class is there for distributing or escalating messages. It can also classify resources along the lines of /OS/CPU/IDLE, /OS/CPU/USR, /OS/CPU/SYS etc. If used for escalation purposes, the watchdog is routed to the group responsible for the resource and platform and whatever other information is made standard part of the class.
· How do I make messages stay in the browser until the problem is fixed ?
set time-to-live (ttl) sufficiently greater than the polling interval. This is to insure that even in the case there is a slight delay delivering a message, the previous message refresh is still sitting in the database.
|----|----|----|----|----| polling
|------| ttl
· emsg1 will not compile on Solaris
Use the cc compiler in /usr/ucb/cc
· I want to send a page but only for messages of serverity 1
Get your output.sh script to page only if the E_SEV environment variable is equal to 1:
if [ $E_SEV -eq 1 ];then
<page script>
fi
· What is the input script for ?
To possibly filter out messages as they arrive. For example messages from a certain host can be dropped, or a script can be run before a message is put in the database. Some may use the input script to implement a calendar.
· When installing eEMU, the setup script complains it cannot create files or directories
There is just one file whose location is hardcoded in eEMU. it is similar to /etc/oratab in oracle. eEMU components assume the the config file for a server running on a particular port is in /usr/local/emu/conf. If installing eEMU as an ordinary user, ask the administrator to create /usr/local/emu/conf and give you read/write/execute permissions to it. Alternatively, the administrator can create a symbolic link called /usr/local/emu/conf pointing to another location.