In windows there is perfmon to monitor various performances aspects (called counters) of the system.
Is there a perfmon-like for Linux?
DStat is my personal favorite for such tools. From it's page :
I love it! It's definitely more flexible (and easier to use) than sar, we just have dstat writing to a file on a regular basis.
i use nmon. It gives you a very clear view.. Also you can select CPU, Network, Kernel, Disk IO load, top processes etc in a single page. This makes easily to relate things, analyze the performance issues.
The main things you are looking for can easily be seen using "top" with its various options. Ofcourse as @grepsedawk says it, sar works great for debugging. If you need to monitor it on an interface however, there are a number of monitoring tools available SeaLion, New Relic, munin, etc. These also let you check other parameters like disk usage, top processes taking memory, taking CPU,etc. To me SeaLion seems good for my use and since you require logging as well, you could try it. You needn't save these as files for future analysis. They are present in a great interface where you can jump to any time to view the output at that time.
P.S. If you still need to store them as files, that is also provided by sealion
The program "top" does most of this. It does not handle network traffic though.
Edit:
If you need to log this information for post processing/analysis you can use the standard package "sar" to do this. It supports MANY different performance numbers including: disk, cpu, memory, network, etc.
sar manpage
I am a huge fan of gkrellm, which packs a huge amount of information into a small vertical bar on your monitor. It's configurable; I get CPU use, disk use, memory use, temperatures, network traffic, and more. When my system gets slow I know instantly if it's CPU, disk, memory, or net connection. The information design is pretty good; I would say the amount of information per pixel is high. And unlike 'top' you can usually afford to leave it open on one side of your screen. ('top' consumes too much screen real estate to be left open all the time.)
If you're looking for a way to monitor this stuff on servers, you should be looking at a monitoring framework like Zabbix. This will let you monitor all sorts of interesting things about your system and, with plugins, your application - as well as storing trend data for a period of time, and letting you alert on trigger thresholds and such.