Tag: linux

Problema com o Nagios: Could not read object configuration data!

Se você abriu seu "painel de controle" do Nagios e deu de cara com esse problema (Could not read object configuration data!) em algumas páginas, esse post pode lhe ajudar.

A mensagem completa é essa:

Whoops!

Error: Could not read object configuration data!

Here are some things you should check in order to resolve this error:

  1. Verify configuration options using the -v command-line option to check for errors.
  2. Check the Nagios log file for messages relating to startup or status data errors.

Make sure you read the documentation on installing, configuring and running Nagios thoroughly before continuing. If all else fails, try sending a message to one of the mailing lists. More information can be found at http://www.nagios.org.

Resolvendo o problema

Existem algumas soluções prováveis para o problema, vou listar uma por uma. A forma de parar o Nagios o Apache pode variar de distribuição para distribuição e também da forma você instalou o Nagios.

Recomendo que você pare e inicie o Apache e o Nagios antes de tentar qualquer uma das soluções propostas abaixo.

No meu caso, que utilizo Centos 6, para parar e iniciar novamente o Nagios e o Apache executo os comandos:

service nagios stop
service httpd stop
service httpd start
service nagios start

O diretório padrão do Nagios também pode mudar. No meu caso é o /usr/local/nagios/

Você também pode parar e iniciar o nagios pelo executável:

/etc/init.d/nagios stop
/etc/init.d/nagios start

Há ainda uma terceira forma de iniciar o Nagios:

/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

Você pode verificar se o nagios está rodando com o comando ps -ef | grep nagios que deve retonar uma mensagem similar a essa:

nagios 3830 0.2 0.2 4668 1140 ? Ssl 11:35 0:00 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

Se precisar forçar o encerramento do Nagios, execute o comando:

killall nagios

Depois de que você parar e iniciar o Apache e o Nagios, teste as opções abaixo:

  1. Verifique seu arquivo de configuração com o comando:
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

    O resutado final tem que ser esse:

    Total Warnings: 0
    Total Errors:   0
    

    Se retornar algum erro (Error) ou aviso (Warning), corrija seu arquivo de configuração (/usr/local/nagios/etc/nagios.cfg) e posteriormente pare o Nagios, o Apache, depois inicie o Apache e Nagios.

  2. Verifique se o disco da máquina não está cheio com o comando df -h. Se estiver, libere espaço em disco. Depois pare o Nagios, o Apache, inicie o Apache e Nagios.
  3. Altere as permissões dos arquivos da pasta do nagios para nagios:nagios e adicione o usuário nagios ao grupo apache:
    chown -R nagios:nagios /usr/local/nagios/
    usermod -G nagios apache

    Não se esqueça de parar o Nagios, o Apache, depois iniciar o Apache e o Nagios.

Você provavelmente já terá corrigido o problema com uma das soluções acima. Se não conseguiu, verifique se o log do Nagios tem alguma coisa que possa lhe ajudar:

tail -f /usr/local/nagios/var/nagios.log

Encontrou uma solução diferente? Adicione nos comentários! 🙂

Mais informações:


Criando rapidamente um pen-drive bootável do Linux (inicializável) com uma imagem ISO

No Linux, diferente do Windows, você não precisa de nenhum programa adicional para essa tarefa. O dd (nativo do Linux) faz isso tranquilamente.

Primeiro abra o Terminal (Se for Ubuntu ou Linux Mint: Menu Principal / Acessórios / Terminal), e vire root. Entre na pasta onde está a imagem iso e digite o comando:

dd if=linuxmint-13-mate-dvd-32bit.iso of=/dev/sdc oflag=direct bs=1048576

Trocando linuxmint-13-mate-dvd-32bit.iso pelo nome da imagem que você quer jogar no pen-drive e /dev/sdc pelo caminho do seu pen-drive. Se você não sabe o caminho do seu pen-drive, o comando fdisk -l (também como root) lista todos os dispositivos de armazenamento que estão conectados ao computador no momento. O df -h é um pouco mais "humano" e mais fácil de entender, pode ser uma outra opção.

Você precisa ter certeza que o dispositivo é o correto, pois você perderá todos os dados do dispositivo informado. Lembre-se que você deverá informar o dispositivo (Ex.: /dev/sdc) e não a partição (Ex.: /dev/sdc1). Geralmente o /dev/sda é o HD principal.


Clonando um repositório do Subversion (SVN) no Linux

Você pode precisar clonar (fazer uma cópia) de um repositório do SVN por "n" motivos. Não vou falar sobre os motivos, mas sim como fazer isso no Linux.

#CRIE O NOVO REPOSITORIO
svnadmin create RepositorioClone

#FAÇA UM DUMP (BACKUP) DO REPOSITORIO OROGINAL
svnadmin dump /var/svn-repositories/RepositorioOriginal > /root/RepositorioOriginal.dump

#ALTERE O DONO DO DIRETORIO DOS REPOSITORIOS
chown -R apache:apache /var/svn-repositories

#RESTAURE O DUMP QUE VOCE FEZ ANTERIORMENTE
svnadmin load /var/svn-repositories/RepositorioClone/ < /root/RepositorioOriginal.dump

A restauração demora muito. Dependendo do tamanho do repositório, pode levar horas! Então esteja preparado para esperar.

Segundo as pesquisas que fiz, aparentemente apenas copiar o diretório do repositório teria o efeito desejado, mas já que existe uma ferramenta apropriada para isso, acredito que seja mais seguro.

Fonte: http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/clone-a-svn-repository-258


Como adicionar fontes TTF do Windows (Arial, Times New Roman etc.) no Linux Mint

Para adicionar as fontes TTF do Windows no Linux Mint, basta executar os seguintes comandos no Terminal (Menu Principal / Acessórios / Terminal):

sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer

Com isso serão instaladas as fontes:

  • Andale mono
  • Arial black
  • Arial (bold, italic, bold italic)
  • Comic Sans MS (bold)
  • Courier New (bold, italic, bold italic)
  • Georgia (bold, italic, bold italic)
  • Impact
  • Times New Roman (bold, italic, bold italic)
  • Trebuchet (bold, italic, bold italic)
  • Verdana (bold, italic, bold italic)
  • Webdings

Fonte: http://community.linuxmint.com/software/view/ttf-mscorefonts-installer


Criando usuários em lote utilizando Shell Script no Linux

Se você precisar, por exemplo, criar vários usuários para um script de configuração e instalação automática de um ambiente de trabalho (meu caso), essa dica pode ser bastante útil para você.

No exemplo abaixo, cada linha corresponde a um usuário. Você pode executar cada uma manualmente, ou colocar dentro de um script:

echo "joao:123456:1002:1002:joao:/home/joao:/bin/bash" | newusers
echo "maria:123456:1003:1003:maria:/home/maria:/bin/bash" | newusers

Cada trecho da linha significa uma coisa:

NOME DO USUÁRIO:SENHA:UID:GID:DESCRIÇÃO:DIRETÓRIO HOME:INTERPRETADOR
  • UID é o código individual do usuário. De maneira geral, você vai colocar um código diferente para cada um.
  • GID é o código individual do grupo. Sem muita firula, segue a mesma lógica do UID.

O básico é isso. 🙂

Fonte: http://www.cyberciti.biz/tips/linux-how-to-create-multiple-users-accounts-in-batch.html


Problema ao tocar músicas e vídeos no Linux Mint 13 Maya (Mate): tudo acelerado

Estava com esse problema e como encontrei a solução (que é bem simples) resolvi compartilhar.

Como o Linux Mint 13 Maya é baseado no Ubuntu 12.04, provavelmente a mesma dica irá funcionar no Ubuntu.

No meu caso, o problema estava no driver de áudio. Para resolver, bastou acessar:

  • Menu Principal / Sistema / Preferências / Som

E de lá, na aba Saída (OUTPUT), marcar o driver de áudio interno (ou internal, ou built in), como na imagem abaixo:

 

 

E pronto!

Fonte: http://www.hanckmann.net/?q=high_speed_video_and_no_audio_in_linux


Instalando o Tomcat 7 com OpenJDK (Java) 7 no Centos Linux 6

O Tomcat 7 utiliza precisa do Java (JDK) para funcionar. Você pode utilizar o Java da Oracle, o OpenJDK ou outro.

A vantagem de utilizar o OpenJDK é que, além de poder ser instalado pelo repositório, e assim você poder atualizar junto com o sistema (yum update), ele é completamente livre, diferente do Java da Oracle.

No nosso teste abaixo, utilizei o Centos 6.3 Minimal, que pode ser obtido clicando aqui.

Assuma o poder de root através do comando su ou sudo su e depois siga o passo-a-passo abaixo.

Atualize o sistema:

yum -y update

Instale o OpenJDK 7:

yum install -y java-1.7.0-openjdk

Baixe o Tomcat 7. Caso o link abaixo não funcione, baixe a versão mais recente em: tomcat.apache.org

wget http://apache.tradebit.com/pub/tomcat/tomcat-7/v7.0.35/bin/apache-tomcat-7.0.35.tar.gz

Descompacte o Tomcat 7

tar -zxvf apache-tomcat-7.0.35.tar.gz

Mova para o local correto (escolher o diretório /var, mas pode ser outro)

mv apache-tomcat-7.0.35 /var/tomcat7

Libere a porta 8080 no Iptables

/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/init.d/iptables save
service iptables restart

Para editar arquivos de texto, você pode utilizar o vi, vim ou outro editor de sua preferência. Os comandos básicos do vi e vim são os mesmos.

Crie o arquivo tomcat7 dentro do diretório /etc/init.d/ com o conteúdo abaixo:

#!/bin/bash 
# description: Tomcat Start Stop Restart 
# processname: tomcat6
# chkconfig: 234 20 80 
 
case $1 in
   start)
    /var/tomcat7/bin/startup.sh;;
   stop)
    /var/tomcat7/bin/shutdown.sh;;
   esac
   exit 0

Depois dê permissão de execução ao arquivo:

chmod +x /etc/init.d/tomcat7

Agora você pode iniciar o Tomcat 7 como serviço:

service tomcat7 start

Se quizer parar:

service tomcat7 stop

Para que o Tomcat 7 inicie automaticamente quando ligar o computador:

chkconfig tomcat7 on

Pronto! Agora é só colocar suas aplicações web java na pasta /var/tomcat7/webapps


Utilizando o Expect para automatizar um Shell Script interativo com ou sem parâmetros no Centos Linux 6

Em alguns momentos da vida de quem administra um servidor Linux, pode ser necessário utilizar o comando Expect. O expect é basicamente um "simulador de interações humanas", ou seja, ele simula o que você digitaria a partir de uma mensagem específica.

Sendo mais claro: Quando você digita um comando como:

ftp ftp.seusite.com

Em seguida aparece algo como:

220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 13:30. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 15 minutes of inactivity.
Name (ftp.seusite.com:usuario):

Nesse momento você precisa digitar seu usuário, e depois uma senha. Como fazer para automatizar essa atividade, caso você queirar executar como uma tarefa agendada no Cron?

É aí que entra o Expect!

Os exemplos abaixo foram testados no Centos Linux 6, mas nada impede que funcione em outras distribuições. Lembre-se que o Expect não é uma forma segura de passar senhas, pois as mesmas terão que ser armazenadas em texto plano. Entenda os scripts abaixo apenas como exemplo.

Primeiro, vamos instalar o expect (caso já não tenha instalado):

yum -y install expect

Depois vamos criar um script como no exemplo abaixo, lembrando de substituir ftp.seusite.com pelo seu servidor de FTP, usuario pelo seu usuário e senha pela sua senha:

#!/usr/bin/expect

spawn ftp ftp.seusite.com

set timeout -1

expect "Name"
send -- "usuario\r"

expect "Password"
send -- "senha\r"

expect "Using binary mode to transfer files."
send -- "ls\r"

expect eof

Executando o exemplo acima (lembre de dar um chmod +x no arquivo!), logamos na conta de FTP e listamos (ls) os arquivos da conta.

Se deu tudo certo, serão exibidos na tela os arquivos da sua conta de FTP. Agora vamos a um exemplo com a utilização de parâmetros.

A utilidade disso é que você pode criar um script genérico para utilizar sem precisar alterar o arquivo ou criar um novo para cada conta que você tenha. Vamos ao exemplo:

#!/usr/bin/expect

set usuario [lrange $argv 0 0]
set senha [lrange $argv 1 1]

spawn ftp ftp.seusite.com

set timeout -1

expect "Name"
send -- "$usuario\r"

expect "Password"
send -- "$senha\r"

expect "Using binary mode to transfer files."
send -- "ls\r"

expect eof

Entre na pasta onde o script está salvo, e chame da seguinte forma:

./nome_do_script usuario senha

Funcionou? Não funcionou? Tem dúvidas? Use os comentários!

Fonte: http://bash.cyberciti.biz/security/expect-ssh-login-script/


Como enviar um e-mail para testar um servidor SMTP pela linha de comando no Linux

Algumas vezes é necessário testar um servidor de SMTP, e se isso só puder ser feito a partir de um servidor Linux específico, pode ser feito utilizando o comando "telnet".

Abaixo vou mostrar um passo-a-passo de como enviar uma mensagem utilizando um servidor de SMTP simples, sem autenticação, que utiliza a porta 25.

A configuração de cada servidor pode variar. Alguns funcionam em portas diferentes (465), com criptografia (SSL), com autenticação (login e senha), e por aí vai.

No exemplo, o IP do servidor de SMTP é 192.168.0.1. Troque pelo endereço correto (seja um IP ou um domínio).

Antes de mais nada, verifique se existe alguma regra de firewall bloqueando a comunicação entre as duas máquinas:

nmap 192.168.0.1 -p25

Se a porta estiver aberta, deverá aparecer algo como:

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-01-02 16:05 BRT
Interesting ports on xxx.xxx.xxx.xxx (192.168.0.1):
PORT   STATE SERVICE
25/tcp open  smtp

Considerando que a porta está aberta, digite:

telnet 192.168.0.1 25

Vai aparecer algo como:

Trying 192.168.0.1...
Connected to xxx.xxx.xxx.xxx (192.168.0.1).
Escape character is '^]'.
220 xxx.xxx.xxx.xxx ESMTP

Então inicie o procedimento:

HELO localmailer

Irá retornar algo assim:

250 xxx.xxx.xxx.xxx

Aí você pode informar o "From", ou seja, de quem o e-mail está vindo:

MAIL FROM:seuemail@teste.com

 

Se estiver tudo certo, uma mensagem como essa será exibida:

250 Ok

Depois digite o e-mail o "To", ou seja, o e-mail de destino. Troque seuemail@teste.com pelo seu e-mail

RCPT TO:seuemail@teste.com

 

Será retornada uma mensagem como essa:

250 Ok

Digite a linha abaixo para começar a escrever a mensagem:

DATA

Será exibida uma mensagem como essa:

354 End data with .

Aí é só digitar alguma frase, quebrar uma linha, e colocar um ponto para que o procedimento seja finalizado:

TESTE DE ENVIO DE E-MAIL
.

Se estiver tudo OK, irá aparecer algo como isso:

250 Ok: queued as 987C7EAAE5

Veja se a mensagem chegou na sua caixa de e-mail (olhe na pasta Spam também). Lembre-se que pode demorar alguns minutos para que a mensagem chegue. Depois é só sair:

QUIT

E a mensagem final do servidor:

221 Bye
Connection closed by foreign host.

Mais informações: http://www.revindex.com/Default.aspx?tabid=65&EntryID=22


Instalando o VMWare-Tools no Centos ou Red Hat Linux pelo Repositório (Yum)

Quando você utiliza uma máquina virtualizada com o VMWare, é uma boa idéia instalar o VMWare-Tools, pois aumenta a performance e dá mais controle e segurança para o gerenciamento da máquina.

Vou mostrar aqui como instalar o VMWare Tools no Centos e Red Hat, nas versões 5 e 6.

Adicione as chaves GPG do VMWare:

rpm --import http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-DSA-KEY.pub
rpm --import http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub

Se for CentOS 5 ou Red Hat 5, adicione ao arquivo /etc/yum.repos.d/vmware-tools.repo o seguinte:

[vmware-tools]
	name=VMware Tools
	baseurl=http://packages.vmware.com/tools/esx/latest/rhel5/$basearch
	enabled=1
	gpgcheck=1

Se for CentOS 6 ou Red Hat 6, adicione ao arquivo /etc/yum.repos.d/vmware-tools.repo o seguinte:

[vmware-tools]
	name=VMware Tools
	baseurl=http://packages.vmware.com/tools/esx/latest/rhel6/$basearch
	enabled=1
	gpgcheck=1

Depois é só instalar o VMWare Tools:

yum install vmware-tools-esx-nox

Mais informações:


  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress