Monitorando Rsyslog com Zabbix

2

Filed Under (Artigo, Monitoramento, rsyslog, Zabbix) by rafaelgomes on 13-05-2013

Gerenciar o log é uma coisa séria, e pensando nisso, reservei um tempo para pesquisar sobre como poderia monitorar meu rsyslog, que é o software responsável pelo log de todos meus servidores.

rsyslog-logo

Você sabia que o rsyslog, por padrão, tem um limite de escrita de log? Isso mesmo, de acordo com a sua documentação são 200 logs em um intervalo de 5 segundos, sei que parece muito para maioria dos ambientes, mas ninguém quer perder log, né? Seria legal no mínimo saber que isso aconteceu, para que possamos em ultimo caso aumentar um pouquinho esse limite, correto?

Read the rest of this entry »

Monitorando se SNMP está funcionando no ativo

1

Filed Under (Artigo, Monitoramento, SNMP, Zabbix) by rafaelgomes on 09-04-2013

Quem nunca foi pego de surpresa ao verificar que seu ativo, que você configurou para monitorar informações via SNMP, teve suas configurações internas de acesso SNMP modificadas, assim acabou percebendo isso apenas muito tempo depois e por fim perdeu informação nesse intervalo de tempo?

Nativamente, o zabbix não tem monitoria desse tipo de situação, pois se ele não retornar nada em uma consulta SNMP nenhum alerta é possível configurar, não sem a criação de um script, pois quando a consulta SNMP tem retorno de erro o item monitorado é dado como “Não suportado” e então desabilitado automaticamente.

Read the rest of this entry »

Monitorando MySQL com Zabbix v2

0

Filed Under (Artigo, MySQL, Zabbix) by rafaelgomes on 09-04-2013

Eu fiz um tutorial há muito tempo, que contemplava alguns itens de monitoramento do MySQL, mas ao pesquisar novamente, achei isso no fórum do Zabbix e achei legal traduzir pra comunidade, que acaba sobrepondo minha ultima instrução de monitora. O que é muito bom!

Read the rest of this entry »

Balanceando carga de squid para squid

2

Filed Under (Artigo, Squid) by rafaelgomes on 04-02-2013

Primeiro vou explicar o problema e motivação, assim partirei para prática demonstrando como resolvi a questão.

Motivação : Ambiente com 20.000 usuários necessitando de uma solução de proxy de acesso web centralizado.

Precisávamos de um ambiente “parrudo” o suficiente para suportar requisição de 20.000 usuários, sendo que esse ambiente deveria ser construído completamente com Software Livre. Challenge Accepted!

Read the rest of this entry »

Software Freedom Day 2012 – Salvador

2

Filed Under (eventos, Software Freedom Day) by rafaelgomes on 28-08-2012

O Software Freedom Day (SFD) é o dia da celebração mundial do Software Livre e de Código Aberto – também chamado de FOSS. O evento acontece desde 2004 simultaneamente em diversas cidades do mundo e é coordenado globalmente pela Software Freedom International, uma organização sem fins lucrativos criada exclusivamente para esse propósito.

Esse ano acontecerá no dia 15 de setembro, sábado.

Em Salvador acontecerá na FTC, na paralela.

As chamadas de trabalho estão abertas, participe! http://goo.gl/lE3hh
Também é possível ajudar na divulgação: http://softwarelivre.org/sfdssa/blog/divulgue
Para saber mais: http://www.softwarefreedomday.org/
Outros locais que terão o evento: http://www.softwarefreedomday.org/map/index.php?year=2012

Monitorando a quantidade de conexões simultâneas do seu Firewall Iptables, com Zabbix

1

Filed Under (Monitoramento, Zabbix) by rafaelgomes on 20-08-2012

Informações como essa são importante para saber o quanto seu firewall está roteando, ou seja, para um roteador, para um administrador de sistema, esse é um dado MUITO importante.

Vamos a linha de comando:

Primeiro verifique se tem instalado o pacote conntrack_tool.

No Centos 6, temos esse pacote, que pode ser instalado com esse comando:

# yum localinstall http://centos.alt.ru/pub/repository/centos/6/x86_64/conntrack-tools-1.0.0-1.el6.x86_64.rpm

Esse pacote instala um software interessante, que será responsável de nos prover essa preciosa informação, porém o software instalado é acessível apenas para o usuário root, ou seja, precisaremos configurar a permissão de acesso para o usuário do zabbix.

Verifique se tem o software sudo instalado com o comando abaixo:

# rpm -qa | grep sudo

Caso contrário instale o software:

# yum install sudo

Acesse o arquivo /etc/sudoers e adicione a seguinte linha no final do arquivo:

zabbix ALL=(ALL) NOPASSWD: /usr/sbin/conntrack

Ainda nesse arquivo, comente a linha abaixo:

Defaults:     requiretty

Agora vamos a configuração final, no arquivo /etc/zabbix/zabbix_agentd.conf adicione a seguinte linha:

UserParameter=iptables.conexoes,sudo /usr/sbin/conntrack -C

Pronto! Agora reinicie o daemon do agente zabbix com o comando abaixo:

# service zabbix-agent restart

No seu servidor zabbix, configure o item com a chave (key) denominada  iptables.conexões, com retorno de inteiro.

Autenticando SQUID com OpenLDAP no Centos 6

0

Filed Under (Artigo, Squid) by rafaelgomes on 31-07-2012

Para essa configuração o squid pré-compilado que está no repositório resolve, ou seja:

# yum install squid

Agora vamos a configuração adicional do seu squid.conf, que depois irei explicar cada parâmetro:

auth_param basic children 5
auth_param basic realm Meu Proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on

auth_param basic program /usr/lib64/squid/squid_ldap_auth -b “dc=meudominio,dc=net,dc=br” -f “uid=%s” <ip do servidor OpenLDAP>

external_acl_type ldap_group %LOGIN /usr/lib64/squid/squid_ldap_group -d -b ou=Groups,dc=meudominio,dc=net,dc=br -f “(&(memberuid=%u)(cn=%g))” -h <ip do servidor OpenLDAP>

acl password proxy_auth REQUIRED
http_access allow password

auth_param

É a sintaxe responsável por configurar os parâmetro de configuração, como o nome mesmo já sugere, ela pode ter 4 opções primárias de autenticação:

  1. basic
  2. digest
  3. negotiate
  4. ntlm

Para esse tutorial, vou apenas me atentar a primeira, que é basic:

Esse é o metodo de autenticação http, onde ela é feita pelo próprio navegador web, geralmente via pop-up solicitando usuário e senha.

Agora vamos comentando linha a linha:

auth_param basic children 5

Com essa sintaxe, é possível configurar o número de processos de autenticação máximos, ou seja, caso esteja com lentidão na autenticação, experimente aumentar esse valor.

Após esses parâmetros, é possível adicionar também o paramêtro “startup”  e “concurrency”  que são utilizados para informar quantos processos serão iniciados junto com o squid e quantos serão concorrentes.

Ex: auth_param basic children 10 startup=4 concurrency=2

auth_param basic realm Meu Proxy

Com esse parâmetro é possível informar o texto que aparecerá no Pop-up de solicitação de usuário e senha, no navegador.

auth_param basic credentialsttl 2 hours

Com essa opção é possível informar o tempo de vida da autenticação, ou seja, após duas horas o cliente será obrigado a reautenticar.

auth_param basic casesensitive on

Especifica se o nome do usuário é sensível a diferença de caixa ou não (se é maiúsculo ou não).

auth_param basic program /usr/lib64/squid/squid_ldap_auth -b “dc=meudominio,dc=net,dc=br” -f “uid=%s” <ip do servidor OpenLDAP>

Agora temos o programa, que é o responsável por conectar no nosso servidor OpenLDAP e verificar se a senha informada está correta ou não, ou seja, o usuário e senha informado no navegador é passado para o squid, e esse comando checa de fato se a senha está correta.

Perceba que em alguns outros sistemas, o caminho do programa pode mudar, ou seja, utilize o locate para verificar onde está seu “squid_ldap_auth”.

O parâmetro -b informa qual o caminho de consulta dos usuários, coloquei o domínio todo, mas poderia ser uma unidade organizacional especifica.

O parâmetro -f informa qual o filtro utilizado para encontrar o usuário, que no nosso caso é uid, sendo que %s será interpretador pelo squid como o usuário, ou seja, mantenha esse parâmetro dessa forma.

Todo programa executado pelo auth_param program deve ter dois retornos; OK ou ERR, ou seja, posteriormente, quando falarmos sobre lista de acesso, toda verificação booleana será feita com base nesses retornos.

Agora vamos preparar o “meio de campo” para criação das ACLs

external_acl_type <nome do tipo de ACL> %LOGIN /usr/lib64/squid/squid_ldap_group -d -b ou=Groups,dc=meudominio,dc=net,dc=br -f “(&(memberuid=%u)(cn=%g))” -h <ip do servidor OpenLDAP>

Essa sintaxe define um tipo de ACL com base em um programa auxiliar, que no nosso caso é para autenticação, ou seja, escolha seu nome de ACL e vamos para cada opção dessa sintaxe:

/usr/lib64/squid/squid_ldap_group : Dado um nome de usuário e grupo, esse programa é utilizado para verificar se o usuário informado via navegador está no grupo ou não, ou seja,  o tipo de ACL que estamos construindo servirá para criar regras com base em grupos do LDAP.

-d : Ativa o modo debug. Isso é muito bom para testes, em produção remova essa opção.

-b : Aqui será configurado o caminho de pesquisa dos grupos, escolha o que corresponde a sua árvore LDAP.

-f  : Informa qual filtro utilizado para verificar se o usuário está nesse grupo ou não.

-h : ip do servidor OpenLDAP

Agora vamos para construção das ACLs de fato:

acl <nome da ACL> proxy_auth REQUIRED

A sintaxe acl é responsável por especificar uma acl, a opção proxy_auth executa o programa do auth_param, já explicado nesse texto afim de fazer determinada configuração, que no nosso caso a opção final REQUIRED indica que qualquer usuário informado será aceito por essa ACL, porém caso prefira, poderia ser construido uma ACL para verificar se o usuário e senha informado eram um determinado nome, ou seja:

Ex: acl <nome da ACL> proxy_auth rafael

Para ilustrar, irei criar uma ACL de grupo:

acl <nome da acl> external <nome do tipo de ACL> <nome do grupo>

Perceba que nessa sintaxe, é informado a opção external, que indica que essa ACL é do externa, ou seja, criada com o parâmetro external_acl_type. Agora temos uma ACL que verifica se o usuário X pertence ao grupo Y, ou não.

Pronto! Agora você já tem todas as ACLs, basta configurar as regras com o parâmetro http_access.

Fontes :

squid-cache.org

man squid_ldap_group

wiki.squid-cache.org

 

Pós instalação do meu Archlinux

4

Filed Under (Archlinux, Artigo, pós-instalação, software livre) by rafaelgomes on 19-06-2012

Como acabei reinstalando meu Archlinux por vários motivos, achei legal criar um documento para facilitar a instalação de pessoas com configuração parecida com a minha, e no final das contas me ajudar também para relembrar os passos e não perder tanto tempo.

Não vou tocar no assunto sobre instalação, pois isso já tem muita documentação na internet.

Obs: Não se esqueça de retirar o comentário do repositório correspondente a seu país no arquivo /etc/pacman.d/mirrorlist ! No meu caso foi simplesmente descomentar as linhas abaixo:

Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/$arch
Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch

Depois da instalação devemos iniciar o update do sistema, mas antes disso vamos mover alguns arquivos, que o pacman irá reclamar por ainda existirem.

# mv bin/tzselect bin/tzselect.old
# mv sbin/zic sbin/zic.old
# mv sbin/zdump sbin/zdump.old
# mv locale.sh locale.sh.old

Obs: Não esqueça de executar o dhcpd client:

# dhcpd eth0

Agora vamos para atualização

# pacman -Syu --force

Depois disso reinicie a máquina!

Agora vamos instalar o básico do seu Gnome (Sim eu uso Gnome!):

# pacman -S xf86-video-intel xorg-server dbus gnome gnome-extra

Adicione no parâmetro DAEMON do seu /etc/rc.conf as referências dbus e gdm (NESSA ORDEM)

Como meu sistema é 64 bits, é importante adicionar o repositório mutilib, acesse o arquivo /etc/pacman.conf e adicione a seguinte informação:

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Vamos instalar a ferramenta de virtualização, o VirtualBox! Execute o comando abaixo para instalar

# pacman -S virtualbox virtualbox-source

Agora adicione as informações abaixo no parâmetro MODULE do seu /etc/rc.conf:

MODULES=(vboxnetflt vboxdrv)

E por fim execute o seguinte comando:

# vboxbuild ; modprobe vboxdrv ; modprobe vboxnetflt

Pronto! Agora vamos instalar todo resto dos programas via PACMAN!

# pacman -Sy gstreamer0.10-plugins ttf-dejavu ttf-bitstream-vera unrar unzip p7zip xchat firefox pidgin emesene vlc rhythmbox ntfs-3g thunderbird libreoffice network-manager-applet networkmanager-openvpn openssh

Agora vamos instalar uma ferramenta muita legal do Archlinux, que é o YAOURT! Ela serve para instalar programas do AUR, ou seja, não será necessário baixar os pacotes e instalar um a um. Com o YAOURT instalaremos igualzinho ao PACMAN. :D

Acesse o arquivo /etc/pacman.conf e adicione a seguinte linha

[archlinuxfr]
Server = http://repo.archlinux.fr/x86_64

Obs: Minha instalação é 64bits, e a sua for 32 adicione apenas as linhas abaixo:

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

Agora vamos para instalação do YAOURT:

# pacman -Sy fakeroot yaourt

Pronto! Agora vamos instalar os pacotes do AUR:

# yaourt -S ttf-ms-fonts dropbox flashplugin-beta chromium-pepper-flash google-talkplugin

PRONTO! Seu Archlinux está instalado! :P

Inspirado na postagem do meu grande amigo Leandro Inácio!

Update : Como foi solicitado em comentário, que eu também concordo, é interessante salientar que os pacotes utilizados do repositório “archlinux.fr” não são mantidos pela comunidade Archlinux, ou seja, use por sua conta em risco. 

Instalando modem 3G Huawei da claro no Archlinux

0

Filed Under (Archlinux, Dica) by rafaelgomes on 29-05-2012

Eu consegui com a versão abaixo:

12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

Veja como é simples! Execute o comando abaixo no terminal:

# pacman -S usb_modeswitch modemmanager

Reinicie o X, ou se quiser, sua máquina.

Logue novamente e verifique se existe uma opção “Auto broadband” no NetworkManager. Clique, siga os passos e seja feliz :P

Active Check com multiplos servidores no Zabbix

4

Filed Under (tradução, Zabbix) by rafaelgomes on 21-04-2012

Qualquer administrador de infraestrutura de grandes ambientes ao estudar sobre qualquer solução, seja ela livre ou não, sempre pensa: “Como posso escalar isso?”

E no Zabbix esse interesse sempre existiu, seja na utilização de proxy ou servidores atuando de forma distribuída, porém uma ótima funcionalidade do Zabbix, que é a checagem ativa (Active Check), tinha o limitador de que um agente  podia se comunicar com apenas um predeterminado servidor, ou seja, se você tivesse vários servidores em um ambiente redundante, teria que utilizar softwares externos para prover alta-disponibilidade (tal como heartbeat).

Porém na versão 1.8.12 do Zabbix, será possível utilizar mais do que um servidor para checagens ativas!

Read the rest of this entry »