O que é e como funciona PRM (Process Resource Monitor) ?
Em poucas palavras:
PRM monitora a tabela de processos ativos. Caso algum destes processos ultrapasse o recurso definido (memória, cpu ou numero de processos), um e-mail é enviado ao administrador e como opção o processo é interrompido.”Killado”.
As configurações do prm no arquivo “conf.prm” irão determinar algumas ações do PRM. Na pasta rules alguns processo são tratados separadamente com definições particulares aos mesmos.
O PRM (Process Resource Monitor) é sem duvida alguma muito util para evitar alguns tipos de abusos e principalmente sobrecargas desnecessárias ao servidor.
Vamos a instalação:
No SSH root, faça o download do PRM:
wget http://www.rfxnetworks.com/downloads/prm-current.tar.gz
Descompacte o arquivo:
tar xvfz prm-current.tar.gz
Acesse a pasta e instale:
cd prm-0.5/
./install.sh
Neste ponto o PRM já estará instalado, agora vamos configurá-lo:
Edite o arquivo de configuração:
pico /usr/local/prm/conf.prm
Na opção:
# enable kernel logging [0=disabled,1=enabled] USE_KLOG="0"
Mude para:
# enable kernel logging [0=disabled,1=enabled] USE_KLOG="1"
Na opção:
# enable user e-mail alerts [0=disabled,1=enabled] USR_ALERT="0"
Mude para:
# enable user e-mail alerts [0=disabled,1=enabled] USR_ALERT="1"
**A função USR_ALERT “1” irá habilitar o envio de e-mails de alerta ao Administrador caso algum processo ultrapasse o recurso definido.
Em:
# e-mail address for alerts USR_ADDR="root"
Mude para:
# e-mail address for alerts USR_ADDR="[email protected]"
Na maioria das situações não será necessário fazer nenhuma outra modificação, abaixo estarei apenas fazendo uma descrição das funções (apesar de algumas serem bastante óbvias)
# path to user e-mail message file USR_MSG="$INSPATH/usr.msg"
Este é o caminho do template para o “corpo do e-mail” de alerta que será enviado ao administrador.
# subject of e-mail alerts SUBJ="Process status report from $HOSTNAME"
Este será o assunto do e-mail de alerta enviado ao administrador.
(A variável $HOSTNAME irá retornar o hostname de seu servidor.)
# check 5,10,15 minute load average. [1,2,3 respective of 5,10,15] LC="1"
Este será o tempo que o PRM irá verificar o numero de processos ativos. Sendo:
1 = 5 minutos
2 = 10 minutos
3 = 15 minutos
# min load level required to run (decimal values unsupported) MIN_LOAD="1"
Esta opção define o load mínimo para que o PRM seja ativado.
# seconds to wait before rechecking a flaged pid (pid's noted resource # intensive but not yet killed). WAIT="12"
Segundos para aguardar uma nova “rechecagem” de pids dos processos ativos.
# counter limit that a process must reach prior to kill. the counter value # increases for a process flaged resource intensive on rechecks. KILL_TRIG="3"
Limite que um processo precisa ser executado para que as regras do PRM sejam checadas.
# argument to pass onto kill commands KARG="9"
Qual o argumento para o comando kill (padrão e recomendado 9).
# Max CPU usage readout for a process - % of all cpu resources (decimal values unsupported) MAXCPU="40"
Máximo de CPU (em percentual) para iniciar a leitura das regras
# Max MEM usage readout for a process - % of system total memory (decimal values unsupported) MAXMEM="20"
Máximo de Memoria (em percentual) para iniciar a leitura das regras
# Max processes for a given command - this is not max processes for user but rather the executable MAXPS="25"
Máximo de processos para iniciar a leitura das regras.
Para finalizar , salve (ctrl+x y ) e saia do pico.
Germano P Ferreira
Administrador Linux