I am trying to profile remote linux systems and find out what may need updating (e.g. through redhat)

Information such as:

kernel version
Software & versions
Hardware & versions ( Servers, Switches, Computers, Terminals, Printers)

Any Interrogation commands, programs, scripts tools or rescources to help find out about the systems?

Many THanks