Целта ми е да правя мониторинг на сървъри. Ето за сега възможностите:
1. Кernel module който да събира данни от таблици в ядрото и daemon да прави запитвания към kernel module за стойностите
Плюсове - покривам всички linux дистрибуции на веднъж
минуси - трудно за писане
И твърде вероятно част от информацията няма да ти е достъпна, дори за kernel модула. Не е задължително функциите и структурите от данни да са ти достъпни. Ако пачнеш самото ядро - да, всичко ти е налично. Ако пишеш kernel модул - не, достъпни са ти само изрично export-натите неща. Дали ще успееш да си събереш нужната информация - не знам.
2. Да се прави демон който да чете от /proc стойности.
плюсове - най-лесно
минуси - за всяка архитектура proc е различно, някъде липсва proc, някъде не е mounted, за всяка linux дистрибуция и архитектура трябва да се тества, информацията не е пълна, дори с времето може да се промени информацията е него
Що се отнася до load avg, interrupts, утилизация на памет и т.н. на всяка архитектура нещата са същите и няма разлики.
Да - с времето може да се промени, обаче те уверявам, че kernel-ските API-та се променят още по-често и ще имаш много повече ядове с това.
Ако сървъра няма procfs това е резултат от нечия секюрити параноя предполагам...такива хора заслужават да не може да им се мониторясват машините. Съвсем сериозно, не виждам защо трябва да се покриват всички случаи, включай тези включващи тъпанарски изпълнения на потребителите.
Нещо важно - ако HDD си замине при решението с proc демона блокира, а да си замине HDD се случва
Това пък как го реши? Защо блокира?
Мисля че ако трябва да се слагат нещата на кантар kernel module печели ако гледаме в дългосрочен план
О,да, особено ако си биеш шута след един месец и оставиш някой нещастник да го съпортва в следващите няколко години.