Thiagosm’s Weblog

November 24, 2008

Pycontrole 1.5

Filed under: python — thiagosm @ 3:37 pm

picture-42picture-51

picture-11picture-6picture-7picture-3picture-2

Pycontrole

Pycontrole é um sistema Open-Source feito em Python que permite o gerenciamento de clientes de um provedor. Através de uma interface amigável e simples, é possível controlar o acesso, limitar banda, gerar relatório de tráfego, obter informações de consumo de link e consumo dos clientes e outras opções a mais.

Alterações :

Framework deixou de ser turbogears 1.0.7 e passou a ser pylons 0.9.7.

Alguns recursos em Ajax utilizando jquery para consulta de disponibilidade de ip, tráfego e outros.

Melhoramento no SNMP, adicionado Ping e Traceroute ( mtr ).

Adicionada algumas validações em javascript e formencode.

Mais permissões para um maior controle

Configurações de como controlar a banda ( usando IMQ ou fwmark iptables mark ) via gráfico, ativar e desativar dhcp, utilizar ou não sudo, etc…

Softwares Utilizados :

Pylons 0.9.7 rc3 ( ou rc2 ) – Framework

SQLAlchemy 0.4.7p1 – ORM

Psycopg2 – Driver conexão PosgreSQL

ReportLab 2.2 – Gerar PDF

Pil (imaging 1.6) – PDF com imagens

Pisa 3.x – Ferramenta para gerar pdf (html to pdf )

Html5lib – Dependencia do Pisa

Python 2.5.x

Download ?

http://code.google.com/p/pycontrole/downloads/list

Install ?

http://code.google.com/p/pycontrole/wiki/InstallPycontrole15

Um pouco sobre a mudança.

Sempre procurando o framework ideal, resolvi utilizar pylons para criar minhas próximas aplicações. Nunca vi ou ouvi ninguem que utiliza ou utilizou pylons no meu estado, mas resolvi conhecer mais a fundo esse framework. Depois de googlear muito, vi muito sobre turbogears 2.0 e pylons, com isso resolvi utilizar pylons puro mesmo.

Acostumado na vida boa com turbogears, widgets, identity, mochikit, tgtools, catwalk, em pylons tive que criar o que eu precisava “no braço”. O sistema de autenticação foi a primeira coisa, no tg sempre usava o identity, no pylons ou crio um mecanismo de autenticação próprio ( usando sessoes ), ou utilizo repoze.who. Os templates também notei diferença em velocidade, mako é realmente mais veloz e simples de entender do que o kid, a parte de endereçamento de urls ( Routes ) é bem mais interessante do que ficar utilizando @expose no turbogears e instanciando objetos no controllers.py. A parte de validação sempre utilizava @validate do turbogears, no pylons foi no formencode direto.

Ajax estou utilizando jquery para ajaxiar as coisas, widgets fizeram falta no pylons, mas não é o fim do mundo.

Gosto muito do turbogears e ainda utilizo, mas as próximas aplicações eu vou dar uma credibilidade para o pylons.

Para quem ainda não utilizou pylons, recomendo experimentar.

Projeto de TCC – Sistemas de Informação – Unp – Universidade Potiguar – Thiago Montenegro / Andrielly Costa

Advertisements

12 Comments »

  1. legal. vou dar uma olhada nesse pylons ai 🙂

    Comment by chatran — November 24, 2008 @ 4:30 pm

  2. Bom dia, quero lhe parabenizar e agradecer por sua iniciativa em criar um sistema para genenciamento de provedor Open Source. Gostei bastante do sistema, tanto que estou abandonando o que eu desenvolvi para adotar este. 🙂 Só estou com uma pequena duvida, como ainda estou cadastrando os clientes, rodei apenas o pylons, faltando rodar o pycontrole, seria por esse motivo que recebo uma mensagem de error 500 ao clicar em Tráfego? Obrigado

    Comment by Ricardo Bezerra — July 24, 2009 @ 12:36 pm

    • Olá Ricardo,

      O pylons precisa está rodando com permissão de root. Se apresenta erro no tráfego, provavelmente ou não está conseguindo consultar base pmacct onde armazena o tráfego dos clientes, ou alguma dependencia do reportlab, pisa, html5lib, Image não foi instalada.

      Seria interessante fazer isso :

      tail -f /var/log/pylons.pycontrole.log

      Manda abrir o tráfego, e olha no log o erro apresentado, assim saberemos o que fazer diante do erro.

      Att,

      Thiago Montenegro

      Comment by thiagosm — July 24, 2009 @ 1:28 pm

  3. Boa tarde Thiago,

    Realmente, voce tinha razão, o problema estava na consulta a base pmacct, verificando o log de ações do usuario postgres percebi que faltou o este passo: psql -U postgres -d pmacct < install/sql/pmacct.sql. Fiquei tão empolgado para testar o sistema que acabei cometendo um erro primario. Assim que colocar ele em produção te aviso. Caso tenha alguma forma que voce acredite que eu possa ajudar o projeto, por favor me avise. Obrigado pela atenção.

    Comment by Ricardo Bezerra — July 24, 2009 @ 3:59 pm

  4. Bom dia Thiago,

    Estou tendo problemas pra ativar o NAT, não estou encontrando aonde setar ele como ativo, se tento colocar manualmente nos arquivos do firewall ele desaparece.

    Comment by Ricardo Bezerra — July 31, 2009 @ 11:50 am

    • Olá Ricardo,

      Para ativar o nat, vai em configuracoês -> interfaces, vai ter um link “ativar” na coluna do NAT. Após clicado no link, basta somente ir em sistema, aplicar regras e o sistema irá carregar as regras de nat para suas interfaces.

      Comment by thiagosm — July 31, 2009 @ 7:44 pm

  5. Olá Thiago,

    Coloquei o sistema em produção agora no final da tarde, até o presente momento esta tudo correndo bem, ele esta com 305 serviços, o único problema até agora é tráfego que esta marcando 0 registros e 0.0 MB. Vou tentar entender o código do sistema para ver o por que dele não medir o tráfego. Qualquer novidade eu te digo. Obrigado

    Comment by Ricardo Bezerra — July 31, 2009 @ 9:54 pm

  6. Olá Ricardo,

    O tráfego geral faz consulta no pmacct. Para essa consulta retornar dados, é necessário que o pmacct consiga obter os dados da device ethernet que ele foi setado. Nessa versão do pycontrole isso aida não foi automatizado.

    Procedimento para resolver seu problema:
    Entre no sistema, vai em configurações -> interfaces
    Clique em update pmacct

    Depois acesse o sistema via SSH ou direto no console e faça :

    cp /opt/pylons/pycontrole/pycontrole/configsys/acct/pmacct_auto /etc/pmacct/pmacctd.conf
    vim /etc/pmacct/pmacctd.conf

    onde tem :
    #interface: INFORMAR INTERFACE LAN

    Altere para:
    interface: SUA INTERFACE DE REDE LAN
    ex:

    interface: eth1

    Após isso, salve o arquivo, e reinicie o pmacct com o comando:
    /etc/init.d/pmacct restart

    Comment by thiagosm — August 2, 2009 @ 2:23 pm

  7. Boa noite Thiago,

    Consegui resolver a parte do pmacct, só que essa tarde verifiquei que o sistema não esta fazendo NAT e FORWARD como deveria fazer.

    Chain POSTROUTING (policy ACCEPT 340 packets, 27080 bytes)
    pkts bytes target prot opt in out source destination
    0 0 MASQUERADE 0 — * eth0 192.168.233.0/24 0.0.0.0/0
    16 804 MASQUERADE 0 — * eth0 192.168.0.0/16 0.0.0.0/0
    272 15413 MASQUERADE 0 — * eth0 172.22.0.0/16 0.0.0.0/0
    95 19552 MASQUERADE 0 — * eth0 172.21.0.0/16 0.0.0.0/0
    285 21652 MASQUERADE 0 — * eth0 172.20.0.0/16 0.0.0.0/0

    Acontece que quando tento usar o FTP para um IP após o firewall, mesmo que seja a interface com o IP valido do servidor não passa, também apresenta problemas com o MSN e HTTPS, tipico de problemas com o firewall. Quando rodo o meu sistema que é bem simples, tudo volta ao normal, curioso é que o ping para qualquer destino da internet responde.

    Comment by Ricardo Bezerra — August 5, 2009 @ 1:08 am

    • Olá Ricardo,

      Sua interface de saida para internet é a eth0 ? As redes foram cadastradas corretamente em configurações -> Interfaces ? Você clicou na opção ativar ao lado das interfaces para ativar o nat nas vlans e lans? . Problemas de nat ocorrem quando a rede não foi cadastrada/ativada em interfaces ou quando a interface de saida está incorreta. Esse sistema que você está tentando utilizar, foi e está sendo usado por vários que eu mesmo instalei. O Forward é feito como qualquer outro linux, porém, o sistema checa ip e mac ou somente ip, e libera o acesso na chain liberados que é chamada na FORWARD. Por Default, INPUT e FORWARD ficam DROP e só é liberado que contem nas chains “servicos” e “liberados”.

      Se a navegação não está ocorrendo, seria interessante verificar se também está utilizando proxy, caso esteja, verificar se nas ACLS está liberando para as redes nais quais você utiliza.

      Se após tudo isso ainda estiver sem acesso, e quiser falar comigo para verificar onde está o problema, meu e-mail pessoal é opencode@gmail.com e posso com alguns dados passado por você mesmo, ajuda-lo.

      Comment by thiagosm — August 5, 2009 @ 1:29 am

  8. Tiago,

    Parabéns pelo projeto, estou utilizando em meu provedor, muito bom mesmo.

    At,

    Clistenes

    Comment by Clistenes — September 24, 2009 @ 10:46 pm

  9. Ola.
    tem como voce me madar um tutorial para eu instalar esse progra aqui na minha empresa ?
    eu uso ubuntu 9.10 aqui.
    mas tenho outras distros aqui, caso essa nao sirva.
    Add meu MSN
    andre.leo.oliveira@hotmail.com

    Comment by Andre — December 29, 2009 @ 6:35 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: