One extremely annoying thing to get alerted about in the Windows application logs are the Perflib errors: The Open Procedure for service “pcAnywhere” in DLL “C:\Program Files\ Symantec\pcAnywhere\PcaPerfCtrs.dll” failed. Performance data for this service will not be available. Status code returned is data DWORD 0. or: The Open Procedure for service “ISAPISearch” in DLL “QPerf.dll” […]
Disabling Performance Counters on Windows
A Simple Perl Load Monitoring Script
I wondered how to monitor load on my GNU/Linux boxen. Sure, there are a lot of canned apps out there. But what if I wanted to use Perl? (IUD SIS, you must use Perl, cuz Perl’s the best… Readin’ from my Camel book like you wanted me… script the pain away…) Anyhoo… I wanna use […]
Monitoring Windows CPU Performance With Perl
The Win32::PerfLib module is a glorious way to extract performance data from Windows boxen. Check out this site for more information. We used perl 5.6.1. Here is a script that shows how to use this module: use Win32::PerfLib; $processor = 238; $proctime = 6; while (6 ne 9){ if(my $perflib = new Win32::PerfLib(‘srv-48’)){ $proc_ref0 = […]
Troubleshooting Slowness/Lockups Over a WAN or VPN
One problem with network monitoring is that latency and router performance do not tell the whole story. What you really want to know is if you can transfer data at the application level across the WAN/VPN. This is particularly useful if you are skimping on your connection to your remote offices by using DSL or […]
AreWeDown TCP Latency Tester
There is a service we wrote available at AreWeDown.com that will measure the network health of TCP connections. It does this by issuing two insert commands via a MySQL ODBC connection from a system service at 30 second intervals. The idea is that this can be loaded on XP workstations at client sites on the […]
Monitoring Java VM Performance With JConsole
J2SE 5.0 includes monitoring. For more details on management of Java-based systems, see this article. The JDK 5.0 includes a tool called JConsole that will provide performance information. In this article we will use JConsole to monitor a Geronimo server. The first step is to call the jar file for the app you want to […]
Installing SNMP via RPMs on CentOS 4
SNMP is the primary protocol for monitoring networking equipment; however, due to security and performance considerations, it was often a bad choice for servers. SNMP v 3 now has security improvements that make this a possibility for servers. For more on this, see RFC 3414. We have used Big Brother and Big Sister in the […]
Setting up SNMPv3 Users
[Note: for a Windows version of these instructions, see this article] SNMP version 3 has the capability of using authentication. It can be configured so that you need a user name and password before you can request information from a particular agent. For binary folks, make sure you have the net-snmp-devel package. We used yum […]
Installing SNMP on Windows Server 2003 Using Net-SNMP
Net-SNMP is an open source SNMP project that is released under a BSD license. Installing SNMP will allow you to further Monitor your Servers or Network devices via a Centralized software or management console as well as monitoring bandwidth usage and utilization. To install on Windows Server, grab the .exe from here. Simply run the […]
Configuring SNMPv3 Security On Windows Server 2003
In this article we set up SNMP using the Net-SNMP package. We showed how to set up user security for GNU/Linux on our Centos 4 box in this article. The procedure is a little different for Windows, because the net-snmp-config command is not available. The userid and passphrase need to be in the snmpd.conf file: […]
Live Graph of Apache Processes – Part 1 – Introduction
There are 3 parts to this article: Part 1 – Part 2 – Part 3 One benchmark that we are interested in while monitoring Apache on GNU/Linux is the number of httpd processes running. Here is an example graph of the number of httpd processes running that is created by the scripts in this article: […]
Live Graph of Apache Processes – Part 2 – Displaying Scale
There are 3 parts to this article: Part 1 – Part 2 – Part 3 In the introduction to this series we showed a graph of Apache processes (httpd). This article will show how to create the scale of the graph and the initial fig file entries. See Xfig.org for more details on the graphing […]
Live Graph of Apache Processes – Part 3 – Counting and Displaying
There are 3 parts to this article: Part 1 – Part 2 – Part 3 In this article we introduced this graph and showed how it looks live, and in this article we created the scale. Finally, we will get to the part that creates the blue bars that comprise the graph. Here is the […]
Monitoring Systems With Zabbix – Initial Configuration – Part 1
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 Zabbix is an open source (GPL) monitoring system with a database back end. The system can be configured via a web browser. We used CentOS 4 for this install. Do set this up in a lab, first. Read […]
Monitoring Systems With Zabbix – Initial Configuration – Part 2
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 We are going to configure this as a server, without SNMP support, and with MySQL as a database: [root@srv-1 data]# cd .. [root@srv-1 create]# cd .. [root@srv-1 zabbix-1.1beta8]# ./configure –enable-server –with-mysql checking for a BSD-compatible install… /usr/bin/install -c […]
Monitoring Systems With Zabbix – Initial Configuration – Part 3
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 Start the server: [root@srv-1 zabbix-1.1beta8]# cd /usr/local/bin [root@srv-1 bin]# ./zabbix_server [root@srv-1 bin]# cat /tmp/zabbix_server.log 027362:20060418:104022 Starting zabbix_server. ZABBIX 1.1beta8. 027364:20060418:104022 server #1 started [Alerter] 027366:20060418:104022 server #2 started [Timer] 027368:20060418:104022 server #3 started [ICMP pinger] 027373:20060418:104022 server #4 […]
Monitoring Systems With Zabbix – Initial Configuration – Part 4
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 Run make [root@srv-1 zabbix-1.1beta8]# make Making all in src make[1]: Entering directory `/usr/local/src/zabbix-1.1beta8/src’ Making all in libs make[2]: Entering directory `/usr/local/src/zabbix-1.1beta8/src/libs’ Making all in zbxcommon . . . gcc -g -O2 -o zabbix_sender zabbix_sender.o ../libs/zbxcommon/libzbxcommon.a -lresolv -lnsl make[3]: […]
Monitoring Systems With Zabbix – Initial Configuration – Part 5
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 The agent files also end up in /usr/local/bin by default: [root@srv-1 zabbix-1.1beta8]# cd /usr/local/bin/ [root@srv-1 bin]# ls zab* zabbix_agent zabbix_agentd zabbix_get zabbix_sender zabbix_server [root@srv-1 bin]# ls -l zab* -rwxr-xr-x 1 root root 179347 Apr 18 10:56 zabbix_agent -rwxr-xr-x […]
Monitoring Systems With Zabbix – Initial Configuration – Part 6
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 When first logging on to Zabbix, the login name is admin, and the password is blank: Change the admin password as soon as you can: Use configuration/hosts to add a host. Make sure you link with the correct […]
Monitoring HTTP Connections
Here is a perl script that determines the number of HTTP connections on a server, and displays the rusults on one of the seven segment displays on the NetAdminWorld console: open (HC, “ssh -p <port> root\@example.com ‘netstat | grep http | wc -l ‘|”); while (<HC>){ $count=$_/6 } use IO::Socket; my $sock = new IO::Socket::INET […]