Archive for Linux

Exemplo de plugin Nagios – Criação

Exemplo de Script para checar status do modem GSM / Chan dongle asterisk


vim /usr/lib64/nagios/plugins/check_modens

#!/bin/bash

#DEV=$1

CRIT=1
MODEM=$1
RESULT=$(/usr/sbin/asterisk  -rx "dongle show device state $MODEM" | grep Registration |  /usr/bin/awk '{print $5}' |  /usr/bin/sed 's/,*$//')
SINAL=$(/usr/sbin/asterisk  -rx "dongle show device state $MODEM" | grep RSSI | /usr/bin/awk '{print $3}' |  /usr/bin/sed 's/,*$//')

if [ "$RESULT" == "Registered" ] ; then

        echo "O $MODEM esta funcionando corretamente com $SINAL RSSI de sinal";
        exit 0;


elif [ "$RESULT" != "Registered" ] ; then
        echo "O $MODEM NAO esta funcionando. $RESULT";
        exit 2;
else

echo "Erro ao checar servico" ;

exit 3;

fi

exit 2;

Para chamar o script:


[root@~]# /usr/lib64/nagios/plugins/check_modens <strong>chip-oi</strong>
O chip-oi esta funcionando corretamente com 20 RSSI de sinal

[root@~]# /usr/lib64/nagios/plugins/check_modens chip-teste
O chip-teste NAO esta funcionando.

[root@~]# /usr/lib64/nagios/plugins/check_modens chip-claro
O chip-claro esta funcionando corretamente com 17 RSSI de sinal

OBS: Chip-oi eh o nome do chan_dongle referente ao chip da Oi (definido por mim no dongle.conf do asterisk)

Pode-se chegar de outro server remoto adicionando o nrpe:

Leia:

  • http://blog.abratel.com.br/?p=840
  • [root@~]#  vim /etc/nagios/nrpe.cfg
    ...
    command[check_asterisk_chip-oi]=sudo /usr/lib64/nagios/plugins/check_modens chip-oi
    command[check_asterisk_chip-oi2]=sudo /usr/lib64/nagios/plugins/check_modens chip-oi2
    command[check_asterisk_chip-claro]=sudo /usr/lib64/nagios/plugins/check_modens chip-claro
    command[check_asterisk_chip-vivo]=sudo /usr/lib64/nagios/plugins/check_modens chip-vivo
    ...
    
    [root@~]# systemctl restart nrpe
    
    

    No servidor NAGIOS utilizar:

    
    define service{
            use                             local-service         ; Name of service template to use
            host_name                       pcursos
            service_description             Checagem do Chip/Modem Oi
            check_command                   check_nrpe!check_asterisk_chip-oi
            notes_url                       http://blog.abratel.com.br/?p=954
    
    }
    define service{
            use                             local-service         ; Name of service template to use
            host_name                       pcursos
            service_description             Checagem do Chip/Modem Claro
            check_command                   check_nrpe!check_asterisk_chip-claro
            notes_url                       http://blog.abratel.com.br/?p=954
    }
    
    

    Setar primeira senha no mysql ou mariadb após instalação CentOS

    Instalação

    Para instalar o MariaDB no Centos 7 execute o comando:

    
    sudo yum install mariadb-server mariadb
    
    

    Ao final da instalação deverá aparecer Complete!.

    Configuração

    Após instalado, devemos configurar alguns itens.

    O primeiro é iniciar o serviço do MariaDB. Para iniciá-lo execute o comando:

    
    sudo systemctl start mariadb
    
    

    Após iniciado, vamos configurar a senha do root. Para isso, execute o comando:

    
    sudo mysql_secure_installation
    
    

    Note que este passo solicita a configuração de outros itens, então iremos por partes.

    Inicialmente será solicitado a senha do root, conforme abaixo:

    
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
    SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
    
    In order to log into MariaDB to secure it, we'll need the current
    password for the root user. If you've just installed MariaDB, and
    you haven't set the root password yet, the password will be blank,
    so you should just press enter here.
    
    Enter current password for root (enter for none):
    
    

    Apenas aperte Enter, pois não existe uma senha definida.

    Após isso, será solicitado se você deseja definir uma nova senha do root, conforme abaixo:

    
    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.
    
    Set root password? [Y/n]
    
    

    Escolha Y e defina uma nova senha.

    Se tudo ocorrer bem, você deverá ver algo semelhante a:

    
    Password updated successfully!
    Reloading privilege tables..
    
    

    Ainda serão feitas outras perguntas sobre acesso a base, apenas escolha entre Y/N de acordo com a sua necessidade.

    Após configurado, vamos colocá-lo para iniciar automaticamente no boot. Para isso, execute o comando:

    
    systemctl enable mariadb.service
    
    

    Teste

    Se tudo estiver certo, agora você já pode se conectar no MySQL. Para isso, execute o comando:

    
    mysql -u root -p
    
    

    Para fazer um pequeno teste no nosso BD, vamos criar um usuário e uma base.

    Para criar uma base execute o seguinte comando:

    
    CREATE DATABASE asterisk;
    
    

    Para criar um usuário execute o seguinte comando:

    
    CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'senha';
    
    

    Para atribuir permissões de acesso a base ao usuário execute o seguinte comando:

    
    GRANT ALL PRIVILEGES ON asterisk. * TO 'usuario'@'localhost';
    FLUSH PRIVILEGES;
    
    

    Assine nosso feed e não perca a continuidade deste artigo. Até a próxima.

    Instalação placa de rede VIA VT6105/VT6106S e Nvidia OnBoard MCP73 no Centos 7

    VIA VT6105/VT6106S

    DFE-520TX_main

    Objetivo: Instalação da placa Off board com chipset VIA.

    Listaremos os devices pci do servidor:

    [root@proxy ~]# lspci -v
    
    01:05.0 <strong>Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] </strong>(rev 86)
            Subsystem: VIA Technologies, Inc. VT6106S [Rhine-III]
            Flags: bus master, stepping, medium devsel, latency 64, IRQ 16
            I/O ports at b000 [size=256]
            Memory at e4001000 (32-bit, non-prefetchable) [size=256]
            Capabilities: [40] Power Management version 2
    
    

    Essa placa de rede não é detectada pelo CentOS 7. A razão disso é a exclusão do drive na Distro.

    Baixaremos o rpm contendo o drive.
    Após download executaremos realizar a instalação.

    
    [root@proxy ~]# cd /usr/srv/
    
    [root@proxy ~]# wget http://rpm.pbone.net/index.php3/stat/4/idpl/26864491/dir/redhat_el_7/com/kmod-via-rhine-1.5.1-1.el7.elrepo.x86_64.rpm.html">http://rpm.pbone.net/index.php3/stat/4/idpl/26864491/dir/redhat_el_7/com/kmod-via-rhine-1.5.1-1.el7.elrepo.x86_64.rpm.html
    
    [root@proxy ~]# rpm -ivh kmod-via-rhine-1.5.1-1.el7.elrepo.x86_64.rpm
    
    

    Obs:
    i – instalação
    v – verbose
    h – progresso

    Subir o modulo:

    
    [root@proxy ~]# modprobe via-rhine
    
    

    Listar o device novamente e observar que o termo Kernel driver in use somente irá aparecer após instalação correta.

    lspci -v
    
    01:05.0 <strong>Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] </strong>(rev 86)
            Subsystem: VIA Technologies, Inc. VT6106S [Rhine-III]
            Flags: bus master, stepping, medium devsel, latency 64, IRQ 16
            I/O ports at b000 [size=256]
            Memory at e4001000 (32-bit, non-prefetchable) [size=256]
            Capabilities: [40] Power Management version 2
            <strong>Kernel driver in use: via-rhine</strong>
    
    
    dmesg | grep -i eth
    
    

    Verificar qual nome foi obtido pela placa de rede:

    
    [    0.884247] net eth0: Davicom DM9102 at pci0000:01:06.0, 00:08:a1:60:f1:1b, irq 17
    [    0.946238] systemd-udevd[257]: renamed network interface eth0 to enp1s6
    [26441.615388] via-rhine 0000:01:05.0 <strong>eth0</strong>: VIA Rhine III at 0xe4001000, 00:08:54:15:db:86, IRQ 16
    [26441.616175] via-rhine 0000:01:05.0 eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000
    [26441.657298] systemd-udevd[12187]: renamed network interface eth0 to <strong>enp1s5</strong>
    

    Subir a placa de rede:

    
    [root@proxy ~]# ifconfig <strong>enp1s5</strong> up
    
    [root@proxy ~]# ifconfig enp1s5 up
    enp1s5: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether 00:08:54:15:db:86  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    
    

    Realizar as configurações para start automático e com os ips desejados. Alterando o MAC (adicionar semelhando ao obtido pelo comando ifconfig acima):

    
    [root@proxy ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp1s5
    TYPE=Ethernet
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=no
    IPV6_AUTOCONF=no
    IPV6_DEFROUTE=no
    IPV6_FAILURE_FATAL=no
    NAME=enp1s6
    ONBOOT=yes
    HWADDR=00:08:A1:60:XX:XX
    IPADDR0=192.168.0.254
    PREFIX0=24
    GATEWAY0=192.168.0.253
    PEERDNS=yes
    PEERROUTES=yes
    IPV6_PEERDNS=no
    IPV6_PEERROUTES=no
    

    Restart o serviço e verifique se tudo subirá corretamente.

    
    [root@proxy ~]#  systemctl restart network
    
    [root@proxy ~]#  ifconfig
    


    On board chipset Nvidia – MCP73

    Objetivo: Instalação da placa on board com chipset Nvidia.

    Realizar os mesmo passos acima porem:

    1 - Downloads do drive: http://elrepo.org/linux/elrepo/el7/x86_64/RPMS/kmod-forcedeth-0.64-1.el7.elrepo.x86_64.rpm

    2 - Realizar instalação e subir com: modprobe forcedeth

    Saída demonstrando instalação correta:

    [root@proxy src]# dmesg | grep eth
    
    [  418.653856] forcedeth: applying kernel_stack fix up
    [  418.654617] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64.
    [  419.176880] forcedeth 0000:00:0f.0: ifname eth0, PHY OUI 0x732 @ 1, addr 00:1f:d0:f3:20:dd
    [  419.176889] forcedeth 0000:00:0f.0: highdma pwrctl mgmt lnktim msi desc-v3
    [  419.215329] systemd-udevd[11357]: renamed network interface eth0 to enp0s15
    [  440.852914] forcedeth 0000:00:0f.0: irq 44 for MSI/MSI-X
    [  440.852961] forcedeth 0000:00:0f.0 enp0s15: MSI enabled
    [  440.853004] forcedeth 0000:00:0f.0 <strong>enp0s15</strong>: no link during initialization
    
    [root@proxy src]# lspci -v
    
    00:0f.0 Ethernet controller: NVIDIA Corporation MCP73 Ethernet (rev a2)
            Subsystem: Gigabyte Technology Co., Ltd Device e000
            Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 44
            Memory at e7005000 (32-bit, non-prefetchable) [size=4K]
            I/O ports at e000 [size=8]
            Memory at e7006000 (32-bit, non-prefetchable) [size=256]
            Memory at e7002000 (32-bit, non-prefetchable) [size=16]
            Capabilities: [44] Power Management version 2
            Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
            <strong>Kernel driver in use: forcedeth</strong>
    
    

    Rápida “VPN” com Putty – Realizar tunel com ssh

    Cenário:

    Servidor Alvo: 200.200.200.123 porta 222 (ip privado: 192.168.254.253)

    Objetivo: Acessar o modem no ip 192.168.254.254 que consta na rede privada de destino (Na mesma LAN do servidor alvo).

    1 - Desativar firewall servidor destino ou aceitar as conexões de entrada pela porta escolhida.

    2 - Conecte ao servidor via openssh através do PUTTY (putty.org).

    3 - Escolha uma porta de Origem (Source Port). Geralmente escolho uma porta alta qualquer. No exemplo coloquei a 1000.
    Em destination coloque o ip privado a ser atingido e qual porta deseja o acesso.

    No meu exemplo eu desejava abrir a interface Web do modem (192.168.254.254 porta 80).

    2

    3

    4 - Meu acesso poderia ser um RDesktop (3389) ou mesmo Mysql (3306) no qual eu utilizaria dos clients necessários.
    Como desejo acessar um servidor web (modem porta 80), no meu browser realizo a modificação necessária nas Opções da LAN setando o Endereço: localhost e porta (origem): 1000

    4

    5 - No browser acesse: http://localhost:1000
    Atingirá o servidor 192.168.254.254:80 da LAN na qual o Servidor Openssh localiza.

    5

    Compartilhamento simples rápido e eficiênte no samba

    Após instalação do samba, para um compartilhamento simples e funcional utilizar:

    
    [root@ipbx ~]# vim /etc/samba/smb.conf
    
    [global]
    
    
          workgroup = EMPRESA
          netbios name = SAMBA
          server string = COMPARTILHAMENTO
          map to guest = Bad User
          idmap config * : backend = tdb
        #  hosts allow = 192.168.100.151 (caso queira permitir somente esse ip de conectar)
    
    [sendsms]
            comment = Backup
            path = /var/www/html/sendsms
            guest ok = yes
            read only = No
            writable = yes
            create mask = 0777
            directory mask = 0777
    
    
    
    [root@ipbx ~]# /etc/init.d/smb restart