Freeradius 2.x.x - Monitoração
Publicado por Tiago MDR (última atualização em 04/07/2010)
[ Hits: 8.170 ]
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 }"
Instalação do Ubuntu com Criptografia Total
Teste compatativo entre discos e/ou partições
Configurar servidor proxy no Apt-get usando SS e Kdialog
Gerenciador de Conexões terminal server com Mysql
Relatório de suprimentos da empresa
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Não consigo instalar distro antiga no virtualbox nem direto no hd (14)
Quais os códigos mais dificeis que vcs sabem fazer? (12)
systemd-resol... precisa ser reiniciado periodicamente [RESOLVIDO] (7)









