Create a GPO that applies to the servers you want to monitor and under Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Audit Policy, enable "Audit logon events" on Success and/or Failure depending on your requirements.
Don't enable Audit account logon events if the servers you are monitoring are DCs. Account logon events are generated on domain controllers when someone logs on with their domain user account so you'll see too many events.
In short, a "Logon event" is created when a user logs on to a computer, an "Account logon event" is created on a domain controller when a user logs on with their domain user account BUT the computer to which they log on to interactively generates an Account logon event too. This is what you want to monitor for. Coupled with EventForwarding (for your capable servers) you can just monitor your own event log or use SNMP traps to catch the events using
evntwin.exe and forward them to an SNMP monitoring/alerting system.
On user workstations I actually use a VBScript that opens a hidden IE process to an internal server with PHP/MySQL installed which simply dumps the username in to the database and thats it.
Set oIE = CreateObject("InternetExplorer.Application")
Set oNet = CreateObject("WScript.Network")
sComputerName = oNet.ComputerName
sUsername = oNet.UserName
oIE.Navigate "http://intranet/logon/logon.php?un=" & Trim(sUsername) & "&ma=" & Trim(sComputerName)
Do While oIE.Busy = True
Set oIE = Nothing
Obviously you need the web server, PHP and MySQL database to go with this so if it's something you're interested in, let me know and I'll dig those bits out too. You can apply this using a GPO too but with one caveat, it can only run under the User Configuration section of your GPO.
So, two options for you there. HTH.
Edit: Here's the PHP script referred to above. Easy really.
mysql_connect('mysqlserver', 'username', 'password');
$un = trim(addslashes($_GET['un']));
$ma = trim(addslashes($_GET['ma']));
mysql_query("INSERT INTO userlist (user_logon_name, machine_name, logon_time) VALUES ('$un', '$ma', now())");
echo "User ". $_GET['un']. " logged on.";