Friday, April 24, 2009

Server Maintainence Checklist

Recently I've been given this task to come up with a list for taking preventive measure to ensure that the server would run well (Windows 2003 server, that is). Be given it's water when it's wilting, to oil it when it starts creaking (Please don't take that literally or you'll damage your server!) At first, I thought all I need to do is do a simple google search and like magic, I will get the list I wanted. Unfortunately, such list don't exist. Well, it does exist in one place and that document was not free. I was surprise that nobody has ever come up with a simple check-up to do list for Windows server. The reason people give is that each company's server serves and performs different functions and hence it's impossible to actually list out what to do. I somewhat agree to that statement but don't you think that simple procedures that applies to all servers like checking hard disk space can be done? Hence, I've come up with a very simple to do checklist for Windows servers and hope people can benefit from this. Bear in mind that this list only lists very basic maintainence work. For a more detail one, you would have to look into your server's functionality like is it an FTP server? Then you might need to check it's connectivity from an outside source and how fast is it's read/write performance from an external source accessing the FTP server and things like that. Ok, without further ado, I present you my crappy list!

1. Check your servers hard disk space (like I mentioned before!)
This is especially more critical for data and backup servers as data and backup servers can fill up hard disk space in a short period of time. Do it on a daily basis for such servers. Clear off old unwanted data or if still wanna keep the old data, do a DVD backup or the likes of it. Tape backups? Pfffttt!!! Only when your data is expendable after 2 weeks. From the hard disk properties, there's also a valuable tool in freeing hard disk space which is the disk cleanup.
From 'My Computer', right click on the hard disk you wanna free hard disk space and click on 'properties' (I'm sure you'll know where to go anyway if you're suppose to manage servers.)
From there you'll see some options on what to clear and how much disk space you'll free up if you clear that particular item. Also if you're comfortable with it, you can delete off the $NTUninstallKB(some number here)$ hidden system folders. This is actually uninstall information for those windows update that is installed. Take note though that by deleting these you won't be able to uninstall the corresponding windows update through the control panel anymore.

2. Check running processes

If it's the first time around, better establish a baseline first on what process is running and how many processes are running. Then, just check against that to know whether is there any new processes running and what are they? This way, you'll know somethings fishy if an unknown process starts running. (By the way, this is accessed through your control-alt-del key and select task manager if you don't already know!)

3. Check event viewer log list

Many people busy with their work, often forget about this after awhile when they see everything's running fine but it's good to check everyday, even though the server's running fine to see whether is there any error message or even warning messages. The area to best check is the application and system area. This can be accessed from 'administrative tools' (control panel if it's not listed in the start menu) event viewer.

4. Check Antivirus
Yes, it's automated but ensure that the virus definition updates are successful. And ensure that the scanning does not indicate some threats in there that aren't cleared.

5. Windows update
This I highly recommend turning off automatic update and change to choose what I want to install instead so you can keep track of what windows update you install on which day and whether is it giving you problems in the server. Yes, I know there are log files created in the windows folder everytime it installs a particular update but I just love to consolidate everything into one file instead.

6. Backup
I'm sure most if not all companies have their own backup schedule to adhere to but it's good to once in a while have a full backup of the whole entire freaking server just in case. For me, I feel once a month doing this would be good and do a differential backup once a week. Take note that this is in addition to existing backups of critical data. Check daily whether the backups are successful and also it would be good if there are resources where you can test whether the restoration of backups would be successful. Don't forget, off-site backup is important too for disaster recovery!

7. Processor and RAM Usage

This can be viewed from the task manager as well in the performance tab. Check whether if it's low in memory or if CPU usage is high. You can navigate to the processes tab to see which process is hogging the CPU usage if that happens.

8. Disk Performance
It's best to use utility to monitor. Something like this one:

9. Windows Services
I'm still trying to figure out what are the most common windows services that are required to run. Some common ones are the DNS server/client, WINS, print spooler (if it requires printing) and some things to probably turn off might be telnet and remote registry if you don't use those services. Windows Services is access through 'Administrative Tools' ---> 'Services'.

10. Active Directory Users and Computers (or the local server users)

companies would have a standard in when to delete a user profile or account when the employee leaves so I'm not gonna delve on it.

11. Network Connectivity
Only need to check on whether is it accessible to the LAN computers and if it needs to access through the Internet, check whether it's accessible.

. Firewall Exception
It's good to have a weekly check on whether the firewall is allowing any peculiar exception through.

That's all I gather for the time being. Of course it can be more specific based on what the server was built for but this is just a general one where it applies to all servers!