On 12/24/10 2:45 PM, derleader __ wrote:
Hi, I'm developing C plugin for Centos which will be installed as kernel module. The problem is how to collect the data about:
none of that stuff should be in a kernel module. a simple daemon is far more appropriate.
What is the most appropriate way to do this task?
see my prior response. A daemon is simply a usermode process thats started when the system boots and runs as a dedicated service. In CentOS, these are normally started via init.d scripts and the Sys V init subsystem.
but as others have pointed out there are numerous implementations of this already. Also, in addition to the programmatic data sources I mentioned, much of the more realtime sort of data (cpu load, network traffic, etc) is available via SNMP which can be queried over a network from a data collection server, once its configured.
I wouldn't query the more 'inventory' sorts of data more than once a day, the number of CPUs and the hardware doesn't change very often, recording this every 5 minutes would be excessive.
What are the benefits of the kernel module and daemon?
I know of no benefits of using a kernel module to perform what is readily doable in usermode. kernel modules should be reserved for things like device drivers, low level network components, file systems, and so forth. If a kernel module faults, it brings down the whole system catastrophically. a usermode daemon process would just terminate, and everything else would continue running. A daemon can run as whatever security context is appropriate for it to do its job. Most of what you described doesn't even need root privileges, but some may (lshw I believe won't be able to collect as much info if its not run as root)