Resource monitoring involves monitoring key system resources like CPU, memory, network bandwidth, and disk usage. It works using a client-server model where resource monitors collect status information that clients can request. The goals of resource monitoring are to provide accurate performance measurements of resources through passive and active monitoring, as well as perform predictive analytics on the collected data to forecast future resource usage. It aims to be a robust distributed system that can upgrade monitors without disrupting client access to status information.