2004-01-16 Hotfix for MonitorWare Agent 2.0 released

Hotfix for MonitorWare Agent 2.0 released

During code review, Adiscon has found a potential bug in MonitorWare Agent which can lead to an agent abort (addressing fault) when the “discard” action is used. We have not yet received any customer reports on this problem. However, we advise all customers to apply the hotfix. Please note that this bug is not depending on the data from processed events, so it can not be exploited as a security weakness. Continue reading “2004-01-16 Hotfix for MonitorWare Agent 2.0 released”

What is the difference between MonitorWare Agent Workstation and Server?

What is the difference between MonitorWare Agent Workstation and Server?

Created 2004-01-13 by Rainer Gerhards

What is the difference between MonitorWare Agent Workstation (WS) and Server (SRV)?

The basic difference is based on the operating system the product runs on. If it is a workstations operating system like Windows XP, you need MonitorWare Agent Workstation. If it is a server Operating System like Windows Server 2003, you need the Server version. Other than that, some limits are different for the different editions.

To learn these exact differences, please visit the MonitorWare Agent Edition Comparison sheet. Please note that in that sheet “WS” means the workstation version while “SRV” means the server version.

Performance Optimizing Syslog Server

Performance Optimizing Syslog Server


Do you want to receive syslog in a Windows environment? Take a look at WinSyslog!

Receive, process and store your syslog data from routers, firewalls or linux/unix servers with this easy to configure application in your Windows environment. Troubleshoot network problems or be alerted, all quickly and easily.

Take a Quick Tour to WinSyslog to know more about its exciting features or directly download the free and full-featured 30 day trial version.


Article created 2004-01-09 by Rainer Gerhards.

We are quite often asked how many syslog message per second MonitorWare Agent can receive. The answer is not as simple as it may look. It largely depends. So I finally thought I write this brief article on the factors that influence syslog server performance. Obviously, you can also use it as a rough guide to optimizing your setup.

Let me try to outline a few factors influencing the performance.

To get started, you should know that MonitorWare Agent is optimized for large traffic bursts. A little understanding on how it is done helps to understand hardware sizing issues. MonitorWare Agent is multithreaded. There are threads that receive messages and there are threads that process them. These two thread types are loosely coupled via an in-memory queue. The receiver threads (by default) have a higher priority than the processing threads. So what happens when a lot of traffic comes in is that the receiver threads very fast receive the messages and store them in memory. The messages are only processed by the processing threads when no receiving thread is using the system. So on a busy system, an in-memory queue of received but unprocessed messages is build up. Obviously, if the machine continuously receives messages at a very high rate the in-memory buffer fills up and received data begins to get lost. However, this design guarantees that as many messages can be received as the machine is capable of. At least for traffic bursts, this de-couples the receive ability from the speed of the rule set actions.

This – the rule set – is another very important factor in deciding how many messages a given system can process. Naturally, writing received messages to a file is much less performance-intense than writing to a database. A small rule set with only a single rule, no filters and a single action is also faster to process than a complex rule set with many rules, complex filters and actions. Of course, MonitorWare Agent is optimized to process complex rule sets quickly… but even this takes time. So If you would like to squeeze the most out of a given machine (or need to process vast amounts of incoming messages), it is worth tweaking the rule set. If you would like to build a high-traffic central syslog server for creating a central archive… just do that. Create a rule set with a single rule, no filters and just a “write to file” (NOT “write to database”!) action. This will give you the optimal performance.

For a highest performance, you will obviously dedicate a machine just to MonitorWare Agent. Most importantly, if you must log to a database, make sure the database server is on a different hardware! Database server software needs considerable CPU resources and you will definitely not like to take them away from your syslog server. If you use a remote database, however, you will make sure that the network connection to it is well. So you should invest in a good 1 GB ethernet board and create an exclusive connection between your syslog and your database server (you may use an otherwise not connected ethernet switch).

OK, now we have arrived at hardware. Of course, the faster the box, the better. Add plenty of memory to take care for traffic bursts. The more physical memory the machine has, the better it can process traffic bursts. If you do not expect traffic bursts, memory is not that important. However, it is advisable to add some extra memory just for the case of unusual amounts of messages, e.g. caused by a malware outbreak or other exceptional situations.

A fast CPU is obviously important. Multiple fast CPUs are better. Due to our threading nature, multiple CPUs are very efficiently used. However, do not add CPUs without reason. If you have a central server wich just runs one syslog service (eg at standard port 514) and one rule that writes the messages to a file, you actually have 2 “real” threads running (plus a little overhead). So it obviously is a good idea to have at least two CPUs. A third CPU may bring some extra performance, but I would expect only a moderate increase. A fourth or any more CPU will not do any good – at best, they idle, at worst they add OS overhead. So for a typical configuration, a dual-CPU system is the best fit. If you run multiple listeners, additional CPUs help to improve performance greatly. They scale more or less one-to-one. Adding CPUs does not equally well work to improve complex ruleset performance. This stems back to some of the internal ordered queue handling and the need to keep things in order. So as another general advise, it is good to add CPUs for additional listeners but does seldomly make sense to take care of for complex rule set.

If your store data locally, you would obviously like to have as fast hard disk as you like. If you plan for highest performance, stay away from raid-5 arrays. They have bad write performance. Use RAID 0 + 1 instead. Use it at the hardware level! Make sure that the disk is defragmented – this is often overlooked. On a fast, defragmented disk, MonitorWare Agent’s file monitor can actually “stream” messages right to the hardware. It does not need to seek on disk, so you can expect performance close to the disk’s physical maximum.

You intend to shuffle a lot of data through the system – make sure you motherboard is well designed. We have seen bad motherboards slowing down an otherwise well-capable system.

Most importantly, make sure the system can talk nicely to the network. Use a brand, high performance busmastering NIC (network interface card). I am in favor of brand hardware because of the drivers. Most brand products come with drivers that actually allow you to leverage the hardware. Some (but definitely not all) non-brand cards may come with more or less the same hardware, but too slow drivers. If you expect high traffic make sure your card can handle this. If in doubt, add a second or third card. If you do, make sure it is connected to a different switch, otherwise the switch may become the bottleneck.

In general, make sure that the network is capable of carrying the traffic. This is especially important if log data is flowing in via the WAN.

Another factor greatly influencing MonitorWare’s performance is the syslog protocol used. UDP provides the lowest overhead, but for obvious reasons messages which can not be received are lost. TCP based logging comes with some overhead, but it will guarantee that all messages are received – at least until the sender is internally overrun). So TCP based protocols lower the absolute reception rate, but are often a better choice because they offer a much better guarantee that no data is lost (there is no 100% guarantee, but this is finally beyond the scope of this discussion). Please note that there are multiple options for TCP delivery nowadays – “plain” TCP (not standardized) and RFC 3195 compliant “syslog-reliable”. The later is more reliable but unfortunately very seldomly found in actual devices today. Even “plain” TCP is implemented only in few devices, so this may limit your choices to UDP in the actual case. Keep in mind, however, that MonitorWare Agent can run multiple listeners. So you could, for example, run three listeners, one for RFC 3195, one for “plain” TCP and one for UDP (as a reminder, a 4 CPU system would play nicely with that). Using multiple listeners brings you the best of all worlds. Please note that by default the TCP based listeners have a lower thread priority, so this also gives you a little more headroom when it comes to UDP bursts.

Finally, think about the message sender (the “device”, may of course also be another server emitting syslog messages). In rare circumstances (worm outbreak) it may happen that the sender itself exhausts its resources and is not capable to actually send all messages over the network. With UDP, this may simply happen because the (not very large) IP stack send buffer overflows. Even with TCP it can happen – it just can’t happen at the protocol level. But the application emitting syslog messages may overflow its internal buffers so that the data never makes it to the TCP queue. While sender overrun is seldomly experienced (and even more seldomly detected as such!), it has happened in reality and may happen to you.

The especially bad thing about an sender emitting massive amounts of data is that it may also overrun other parts of the whole network, thus affecting otherwise unaffected systems. Recent Internet worms have provided good examples of this in the wild. So if you can tune the sender, try to place some safeguards in there. For example, you could limit the amount of messages of a specific type that are sent within a specific period of time. Or, as another example, you can set MonitorWare’s Windows event log monitor to emit only 10 messages per second. If you do this, you may loose some message from the Windows box in case some malware takes it over, but you keep the rest of your syslog system healthy.

I hope this clarifies at least many of the important factors behind syslog server performance. And now back to the basic question: how many messages can MonitorWare Agent handle? Honestly, I don’t know. You may now better understand why I do not. It depends on what you do with it. I know, however, that we have quite some customers processing vast amounts of data, including burst traffic with our products. On the other extreme, in our lab, I have configured MonitorWare Agent to write log data to an Microsoft Access database on a diskette drive… It could handle large bursts, but it took hours to write the messages to the database… 😉

2004-01-06 MonitorWare Agent 2.0 released

MonitorWare Agent 2.0 Released

Adiscon today announced the immediate availability of MonitorWare Agent 2.0.
“I am pleased to announce the new 2.0 version” says president Rainer Gerhards “With this release, we managed to even further increase the fexibility of our flagship monitoring agent” Continue reading “2004-01-06 MonitorWare Agent 2.0 released”

2003-12-15 MonitorWare Agent 2.0 Beta

MonitorWare Agent 2.0 Beta

  • Now available in three different editions – to tailor it to your exact needs.
  • SNMP Trap functionality – MonitorWare Agent 2.0 brings the ability to receive SNMP Traps.
  • SETP Server: SSL Encryption – The SETP server now offers SSL and TLS encryption.
  • Send SETP action – Supports SSL and TLS encryption now. Continue reading “2003-12-15 MonitorWare Agent 2.0 Beta”

Timestamp in field “ReceivedAt” and “DeviceReportedTime” stored in the database is wrong ?

Timestamp in field “ReceivedAt” and “DeviceReportedTime” stored in the database is wrong ?

Updated 2003-12-05 by Tamsila-Q-Siddique

The local PC-Time and other reported device time is correct but the the time stamp in “RecievedAt” and “DeviceReportedTime” field stored in the database is wrong ?

The time in field “ReceivedAt” and “DeviceReportedTime” which is stored in the Database Table (e.g. MySQL, SQL Server) isn’t actually wrong. In the database logging action (the one you had defined) the value for these fields are set to UTC by default. Because of this setting you would see a time difference in the database. For example a person living in UK, won’t even notice this because he is actually on UTC!

Please do the following if you face this situation:
1. Go into the action that you had defined for Database Logging.
2. Set the time for “ReceivedAt” and “DeviceReportedTime” to “Localtime”.

Does UNC Pathes work for WinSyslog, EventReporter and MonitorWare Agent ?

Does UNC Pathes work for WinSyslog, EventReporter and MonitorWare Agent ?

Created 2003-11-21 by Tamsila-Q-Siddique.

When UNC (\\severname\sharename\path) was given in the file path (in your defined “Write to File” action) Winsyslog, Eventreporter and MonitorWare Agent didn’t work?

Yes, UNC works for Winsyslog, Eventreporter and MonitorWare Agent, but due to Windows design you must meet some pre-requisites to enable them to actually work. They do NOT work in the default configuration. This is because WinSyslog, EventReporter and MonitorWare Agent are installed to be running under the Windows local system account. This account is restricted from network I/O by Windows design. To use a UNC name from a service (like WinSyslog, EventReporter and MonitorWare Agent ), please do the following:

  1. Create an account that has permissions to actually access the UNC share
  2. Then, you must grant it “log on a service” rights so that the service can use it.
  3. Also make sure that it has permissions to access all local resources needed.
  4. Then, go to Windows Services Manager and change the service account to the new one.
  5. Now you are able to access the UNC share.

Records are not displayed on the Web when MYSQL was the underline database ?

Records are not displayed on the Web when MYSQL was the underline database ?

Created 2003-11-19 by Tamsila-Q-Siddique

Records are not displayed on the web when I use MySQL ? Records aren’t displayed on the web when I use MySQL. The data isn’t retrieved even though the database is being populated and logs are being generated.

Note that MySQL under Linux requires “case sensitive” in the most cases. MySQL database tables and, field names should match with the ones defined in your “Data Base Logging Action”. That’s why records aren’t displayed on the web when MySQL is the underline database. For doing this do the following:
* Ruleset – > Actions – > Data Base Logging.
* MySQL -> (Databases)… -> Database -> YourDataBase (where YourDatabase could be any name).
* Check that the table names and the field names defined in the Data Base Logging and YourDataBase should match exactly.

Error on startup (Error event ID: 7026) explained.

Error on startup (Error event ID: 7026) explained.

Created  2003-11-06 by Andre Lorbach.

Many Adiscon products (e.g. WinSyslog, EventReporter or MonitorWare Agent) are available in a 30 days trial version.
After this time, the Service will stop working and if you are not logged on interactive, you will not see an error message. However, an error message in the application eventlog is generated by the system. It looks like the following:

Event Type: Error 
Event Source: Service Control Manager 
Event Category: None 
Event ID: 7023 
Date: xx/x/xxxx
Time: x:xx:xx AM 
User: N/A 
Computer: MYCOMPUTER
Description: 
The service terminated with the following error: 
The system could not find the environment option that was entered.

The reason why you get this error is, because your trial is expired.
The Service will skip initialization and the system will catch this with the error above.
What to do if you purchased the software, entered the license name / key and you still get this error?

1. Check the license name, it has to spelled correctly and to be case sensitive. Otherwise the license will not work.
2. Contact support@adiscon.com for further assistance.

Trouble with a non-Adiscon product? Then see this description of event 7026!


Do you want to control your Windows Server/Workstation events and get alerted on errors?
Take a look at the EventReporter product website!

Analysis, monitoring, near-real-time alerting of the Windows event log can be done with EventReporter.

Take a Quick Tour to EventReporter to know more about its exciting features or directly download the free and full-featured 30 day trial version.