Com o zabbix é possível monitorar serviços que estão sendo executados em servidores linux através de uma chave especial net.tcp.service[nomedoservice] onde em nome do serviço o zabbix aceita alguns serviços padrões como ftp, http, ssh, ntp etc.
O problema em monitorar utilizando este método é que ele não suporta todos os tipos de serviço, como por exemplo não é possível passar como parâmetro para essa chave serviços como mongodb, redis etc. Outro ponto negativo é que você não sabe qual serviço exatamente está sendo utilizado como por exemplo o serviço http está rodando Apache ou Nginx ? e se ou roda-los em uma porta não padrão ou seja não na porta 80?
Por esses motivos prefiro utilizar a capacidade do zabbix de autodiscovery para descobrir exatamente qual serviço está sendo executado e em qual porta.
Grep não Funciona em Arquivo TXT
Estava enfrentando um problema ao tentar usar o grep para filtrar um arquivo .txt contendo logs do SQL Server 2008.
Aparentemente tudo estava correto com o arquivo, eu tinha as devidas permissões e conseguia visualizar seu conteúdo usando cat normalmente, porém ao tentar usar o grep buscando por uma palavra que eu tinha certeza que o arquivo continha, nada era retornado no terminal.
Zabbix API with Golang
Recently I have been playing with zabbix api with golang, so I decided to document the process for future reference, but maybe this can help someone.
I'm using this: https://github.com/AlekSi/zabbix package of Go providing access to zabbix api and works very well with zabbix server 2.0.10 (the only that I have tested) but probably works fine with newer versions.
Using Adobe Omniture API with Python
On this post I will show simple examples on most report types of omniture with python.
Note that I'm using a modified api that initially was maintained by Rob Goretsky.
I only included the ranked, realtime report and clean the code a litle bit. All credits for Rob Goretsky.
Get my version of the API here.
Authentication
QueueOvertime Report
QueueTrended Report
QueueRanked Report
GetRealTimeReport
Controlando VirtualBox via Web
Geralmente eu costumo rodar algumas máquinas virtuais no notebook para efetuar testes e configurações personalizadas, mas se eu tento executar mais de 3 VMs ao mesmo tempo meu notebook não aguenta o tranco.
Obviamente que a solução seria trocar de notebook e pegar um mais potente, mas para mim a máquina atual está de bom tamanho, ao invés de trocar de hardware por que não usar o poder de processamento e memória disponíveis em meu antigo core 2 duo com windows 7 que fica na sala e possuí o virtualbox instalado?
Radio Buttons com Glade e PyGObject
Devido a uma pergunta interessante feito pelo Cassimiro Andrade aqui resolvi fazer este post mostrando como criar o programa com as funcionalidades sugeridas pelo Cassimiro no comentário.
Basicamente irei mostrar como criar um programa que irá modificar uma determinada palavra, e as opções de modificação desta palavra será definida por um radio button selecionado em um grupo de radio buttons.
Monitorando o Apache com Zabbix
Ao pesquisar sobre métodos de monitoramento do apache com o zabbix na internet, encontrei vários meios para tal propósito, sempre utilizando scripts customizados mas ao invés de utilizar uma das várias opções encontradas na web eu resolvi criar meu próprio script e template para monitorar o apache com zabbix utilizando os dados obtidos pelo server-status.
Veja uma imagem do gráfico gerado pelo script :
Utilizando a API do Zabbix com Python
Atualmente estou trabalhando em projeto de automatização com o Zabbix e por conta disso comecei a estudar a api do mesmo mais profundamente, estou utilizando um módulo para python que é mantido pela comunidade ou seja não é oficial mas é recomendado pelo pessoal do zabbix conforme o link anterior.
O módulo funciona perfeitamente para a versão 1.8 e para a versão 2.0 do zabbix e pode ser baixado através do github do projeto.
Testando Django 1.5 com Python 3
Django 1.5 ainda está em desenvolvimento, mas eu estou tão ansioso com essa versão principalmente por causa do suporte ao python 3 que decidi instalar a versão em desenvolvimento para ver como as coisas estão indo.
Se assim como eu você gostaria de testar essa versão mesmo em estágio de desenvolvimento, veja como instala-la com virtualenv.
Balanceamento de Carga com Varnish
O que fazer quando as requisições de acesso ao seu site está aumentando e o servidor não está dando conta? mesmo com um servidor de ponta, com um grande poder de processamento e uma grande quantidade de memória eventualmente o hardware chegará ao seu limite devido ao aumento no número de requisições, o que causará a lentidão no acesso ao seu site ou pior o deixando-o fora do ar.
Nessa situação uma boa maneira de aumentar a performance do seu site é utilizar Balanceamento de Carga com Varnish.
Simples Web Proxy no Debian com Squid
Squid é uma aplicação para proxy e cache web, podendo ser utilizado inclusive como proxy reverso.
Nesse exemplo vou mostrar como configurar um simples servidor de proxy utilizando o squid no debian (squeeze). Vale lembrar que o debian possuí duas versões do squid em seus repositórios e que esse tutorial foi baseado e testado na versão 3 do squid.
PowerDNS no Centos
PowerDNS é um poderoso servidor DNS capaz de resolver vários domínios por segundo e possui integração com diversos bancos de dados como MySQL e PostgreSQL.
Como casos de sucesso com o mesmo é o que não falta no google, vamos deixar a introdução de lado e partir para configuração.
Django com Nginx e Gunicorn no Centos
Nesse post vou mostrar como efetuar o deploy de uma aplicação Django com Nginx e Gunicorn (Green Unicorn) no centos 6.
Gunicorn é um servidor wsgi nativo ou seja não é necessário nenhum módulo wsgi para seu pleno funcionamento. Por isso iremos utiliza-lo para servir todo conteúdo dinâmico que será passado através da função de proxy reverso do nginx que por sua vez cuidará do conteúdo estático.
Brilho de Tela Intel HD Linux
Se você possuí um notebook com a placa de vídeo Intel HD, deve ter notado que o brilho da tela não é alterado através das teclas determinadas para esta função em nenhuma distribuição linux atualmente (pelo menos nas quais eu testei, fedora, ubuntu e opensuse) buscando no google encontrei vários relatos, aparentemente é um bug no módulo do vídeo, alguns felizardos conseguiram corrigir o problema apenas reinstalando o bash em seu sistema e as teclas padrões fn+keys altera o brilho de tela sem problemas.
Se você assim como eu não conseguiu resolver o problema desse modo terá que alterar o brilho de tela na mão editando o arquivo /sys/class/backlight/intel_backlight/brightness.
Um simples Web Browser com WebKit e PyGObject
Webkit é uma engine open source para web browser utilizada em diversos projetos onde uma lista dos mesmos pode ser vista aqui. Entre os projetos que utilizam o webkit estão grandes aplicativos como o google chrome e o safari da apple mostrando o quão poderosa é essa engine e o motivo de eu utiliza-la para criar um web browser.
A interface do browser foi criada com o glade, com a seguinte estrutura de widgets:
Notificações do Sistema com Pynotify
Adicionar notificações específicas em nossos aplicativos é uma ótima forma de chamar a atenção do usuário e passar alguma informação importante ou relevante para ele.
Converter String para Hexadecimal com Python3
x = "Convertendo para Hexadecimal".encode("hex")
print(x)
>>> 436f6e76657274656e646f20706172612048657861646563696d616c
Podendo facilmente inverter o processo com a opção decode:
y = x.decode("hex")
print(y)
>>> 'Convertendo para Hexadecimal'
Infelizmente esses métodos não funcionam em python 3, mas felizmente podemos utilizar o módulo binascii para realizar a conversão.
PyGObject e GTK3
No último post eu mostrei como criar interfaces gráficas usando PyGtk e o Glade para moldar a interface, porém o projeto PyGTK já não é mais desenvolvido sendo recomendado a utilização do PyGObject que é um módulo para python que nos permite usar os recursos disponíveis através do GObject que atualmente é a base do GTK3/Gnome3.
Como recentemente eu migrei para o Gnome 3 decidi testar o PyGObject portando a aplicação que desenvolvi no último post , o que foi bem simples de se fazer.
Criando Interfaces Gráficas com Glade e Python
A grande vantagem de se usar o Glade para construir a interface é que a parte gráfica do nosso programa fica separada do código principal em um arquivo XML, facilitando modificações na interface sem interferir no código fonte funcional do programa.
Melhorando a Renderização de Fontes no Fedora
Uma das coisas que eu sempre gostei do ubuntu, foi o modo como as fontes são renderizadas, eu sempre tentei configurar distros diferentes para que a renderização de fontes fica-se exatamente como as do ubuntu, porém muitas vezes não tive sucesso pois apesar de existir um vasto material na internet para melhorar a fonte em determinadas distros sempre precisava de muita alteração, compilação e nem sempre dava certo por vezes até quebrando outros aplicativos como leitor de pdf, openoffice etc.
Felizmente no fedora não precisamos compilar, alterar o cairo nem nada disso. Precisamos apenas habilitar o repositório RPM Fusion, instalar o pacote freetype-freeworld e adicionar algumas linhas no arquivo /etc/X11/Xresources.
