Freeradius 2.x.x - Monitoração
Publicado por Tiago MDR (última atualização em 04/07/2010)
[ Hits: 7.994 ]
Download 1277760709.freeradius_status.sh (versão 2)
Olá a todos do vivaolinux!
Aqui vai a minha primeira contribuição para o site através de um script simples para a monitoração do Freeradius (no caso a versão utilizada é a 2.1.8).
Antes de mais nada, estou assumindo que você tenha um servidor de Freeradius pronto e funcionando.
Como a maioria já deve saber, a partir da versão 2 do Freeradius o SNMP não é mais suportado e a monitoração só é possivel via comando :(
Antes de executar o script abaixo, ***LEIA*** o Wiki http://wiki.freeradius.org/Status e o README dos scripts no fonte do Freeradius. Isso é importante devido a dois fatores:
1º - É necessario ativar essa monitoração (conforme descrito no link acima); e
2º - O comando descrito no site NÃO funciona. Eu, pelo menos, tentei de tudo quanto é forma, mas não deu certo, sendo assim, caso tenha curiosidade, com algumas modificações o comando passa a funcionar:
echo "Message-Authenticator = 0x00, FreeRADIUS-Statistics-Type = 35, FreeRADIUS-Stats-Client-IP-Address = 127.0.0.1, FreeRADIUS-Stats-Server-IP-Address = 127.0.0.1, FreeRADIUS-Stats-Server-Port = 1812" | radclient 127.0.0.1:18120 status adminsecret
O comando acima retornará, os seguintes valores de amostra:
Received response ID 52, code 2, length = 224
FreeRADIUS-Total-Access-Requests = 25
FreeRADIUS-Total-Access-Accepts = 69
FreeRADIUS-Total-Access-Rejects = 16
FreeRADIUS-Total-Access-Challenges = 0
FreeRADIUS-Total-Auth-Responses = 85
FreeRADIUS-Total-Auth-Duplicate-Requests = 0
FreeRADIUS-Total-Auth-Malformed-Requests = 0
FreeRADIUS-Total-Auth-Invalid-Requests = 0
FreeRADIUS-Total-Auth-Dropped-Requests = 0
FreeRADIUS-Total-Auth-Unknown-Types = 0
FreeRADIUS-Total-Accounting-Requests = 15
FreeRADIUS-Total-Accounting-Responses = 15
FreeRADIUS-Total-Acct-Duplicate-Requests = 0
FreeRADIUS-Total-Acct-Malformed-Requests = 0
FreeRADIUS-Total-Acct-Invalid-Requests = 0
FreeRADIUS-Total-Acct-Dropped-Requests = 0
FreeRADIUS-Total-Acct-Unknown-Types = 0
ATENÇÃO: O "adminsecret" é a chave padrão para checar o status do servidor, ela pode ser alterada posteriormente.
PS1: O freeradius que utilizo atualmente foi instalado via yum em um Fedora Core 12 x64.
PS2: Coloquei os comentarios em inglês e não tive tempo de coloca-los em portugues.
Sem mais, segue o script.
Versão 2 - Enviado por Tiago MDR em 28/06/2010
Changelog: - Correção de erros ortográficos :)
- Teste realizado no Debian Lenny
Download 1277760709.freeradius_status.sh
#!/bin/sh # Sample script to collect Freeradius 2.x.x monitoration data. # ------------------------------------------------------------------------- # Tested under Fedora Core / CemtOS 5.2 / RHEL # ------------------------------------------------------------------------- # Author: Tiago Milson De Rizzo # ------------------------------------------------------------------------- # Last updated Apr/26/2010 # ------------------------------------------------------------------------- # Usage: ./freeradius_status.sh parameter # Example: ./freeradius_status.sh Access-Accepts STATS="/root/scripts/radius_stats.txt" ECHO="/bin/echo" RADCLIENT="/usr/bin/radclient" ################################### #Infos for: #Server parameters FREERAD_STS_CLI_SRV_IP="127.0.0.1" FREERAD_STS_SRV_IP="127.0.0.1" FREERAD_STS_SRV_PORT="1812" #The port 18120 needs to be enabled in the server. The Freeradius 2.x.x documentation #Tells how to do it http://wiki.freeradius.org/Status ##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING## ##THE COMMAND LISTED IN THE http://wiki.freeradius.org/Status IS WRONG!!!!! ##IF YOU NEED TO EXECUTE THE CODE BY HAND, USE THE ONE LISTED BELOW THE "GENERATE STATISTICS" COMMENT ##REWRITING IT AS NEEDED #radclient parameters FREERAD_SRV_IP="127.0.0.1" FREERAD_SRV_STS_PORT="18120" FREERAD_SECRET="adminsecret" ################################### # check for valid command line parameters in the radclient output [ -z "$1" ] && exit; [ "$1" != 'Access-Accepts' \ -a "$1" != 'Access-Rejects' \ -a "$1" != 'Access-Challenges' \ -a "$1" != 'Auth-Responses' \ -a "$1" != 'Auth-Duplicate-Requests' \ -a "$1" != 'Auth-Malformed-Requests' \ -a "$1" != 'Auth-Invalid-Request' \ -a "$1" != 'Auth-Dropped-Requests' \ -a "$1" != 'Auth-Unknown-Types' \ -a "$1" != 'Accounting-Requests' \ -a "$1" != 'Accounting-Responses' \ -a "$1" != 'Acct-Duplicate-Requests' \ -a "$1" != 'Acct-Malformed-Requests' \ -a "$1" != 'Acct-Invalid-Requests' \ -a "$1" != 'Acct-Dropped-Requests' \ -a "$1" != 'Acct-Unknown-Types' \ ] && exit; #Generate statistics $ECHO "Message-Authenticator = 0x00, FreeRADIUS-Statistics-Type = 35, FreeRADIUS-Stats-Client-IP-Address = $FREERAD_STS_CLI_SRV_IP, FreeRADIUS-Stats-Server-IP-Address = $FREERAD_STS_SRV_IP, FreeRADIUS-Stats-Server-Port = $FREERAD_STS_SRV_PORT" | \ ${RADCLIENT} $FREERAD_SRV_IP:$FREERAD_SRV_STS_PORT status $FREERAD_SECRET > $STATS #Grab the file statistics and from the file generated tail -17 ${STATS}| /usr/bin/awk "/$1/ { result=\$3 } END { print result ? result : 0 }"
CkDeps - Análise de Dependências e Busca por Pacotes Instalados
Uma loja de apps por linha de comando
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Resolvendo o erro "libQt6Widgets.so.6: cannot open shared object file" no Linux
Como instalar protetores de tela (Debian e derivados)
Conheça a 4Devs, caixa de ferramentas online para desenvolvedores
Como converter um vídeo MP4 para um GIF para publicar no README.md do seu repositório Github
Driver de rede realtek 8821ce bugado (1)
Problemas de compartilhame... de impressora no Ubuntu 24.04 (3)