Ad Widget

Collapse

Como monitorar link de internet?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vininunes
    Junior Member
    • Jul 2013
    • 23

    #1

    Como monitorar link de internet?

    Preciso monitorar links de internet redundantes em meus roteadores mikrotik espalhados pelas filiais, mas como proceder?

    Cada filial tem redundância com duas empresas de internet diferentes mas só monitorar o estado da interface não me traz o real estado do link já que se eu uso um modem ligado ao mikrotik, a interface vai estar ativa mas se a operadora estiver com problema de conexão o zabbix não vai me avisar.

    Há algum modo de pingar o google.com.br através de uma interface especifica?
    Deste modo eu teria o real estado do link na interface desejada.

    Muito obrigado desde já.
    Last edited by vininunes; 12-08-2013, 18:02.
  • fpaternot
    Member
    Zabbix Certified Specialist
    • Feb 2013
    • 52

    #2
    Você está utilizando adsl?

    Você pode configurar rotas estáticas para ips específicos. Por ex, um link seria "monitorado" ao efetuar ping para um ip externo, e o outro por outra rota.

    Ex:
    ping 8.8.8.8 # link 1
    ping 8.8.4.4 # link 2

    Comment

    • vininunes
      Junior Member
      • Jul 2013
      • 23

      #3
      Algumas filiais utilizam ADSL e outras link dedicado.
      Entendi mas quem dispararia o ping de dentro da filial? O próprio mikrotik por SNMP? Ou algum host? E como fazer esta configuração neste caso?
      Obrigado.

      Comment

      • fpaternot
        Member
        Zabbix Certified Specialist
        • Feb 2013
        • 52

        #4
        Várias coisas podem disparar o ping da filial. Pode ser um zabbix_proxy lá, pode ser um script qualquer que utilize o zabbix_sender para enviar os resultados para o seu zabbix_server..

        Por snmp não dá (de maneira trivial) para disparar um ping.

        Comment

        • vininunes
          Junior Member
          • Jul 2013
          • 23

          #5
          Certo, vou tentar com um script + zabbix_sender já que um zabbix_proxy no momento é inviável.
          Qualquer coisa posto aqui os resultados.

          Comment

          • elvis.pompeu
            Member
            • Apr 2013
            • 87

            #6
            Cara, eu tenho aqui um template que eu peguei aqui no forum mesmo para monitoramento de links!
            você precisa criar um host para monitorar via zabbix-agent na porta 0, e pronto!
            Espero que lhe seja útil, forte abraço!
            Attached Files

            Comment

            • vininunes
              Junior Member
              • Jul 2013
              • 23

              #7
              Originally posted by elvis.pompeu
              Cara, eu tenho aqui um template que eu peguei aqui no forum mesmo para monitoramento de links!
              você precisa criar um host para monitorar via zabbix-agent na porta 0, e pronto!
              Espero que lhe seja útil, forte abraço!
              Na verdade deste modo não vai funcionar pois preciso que o ping seja disparado de dentro da filial e não do zabbix server que fica na matriz.
              Estou apanhando pra esse zabbix_sender + trapper.... Se alguém tiver algum artigo que explique melhor a utilização deles eu agradeço.

              Comment

              • vininunes
                Junior Member
                • Jul 2013
                • 23

                #8
                Enfim consegui, vou postar aqui como eu fiz para se alguém tiver o mesmo problema futuramente poder utilizar.

                Fiz a rota apontando 8.8.8.8 para um link de internet e 8.8.4.4 para outro link.

                Criei um script que pinga os dois ips e escreve o resultado em um arquivo de texto:

                #!/bin/bash
                #

                #----Embratel
                IP1=8.8.8.8
                ping='/bin/ping'
                a=$($ping -c 1 -W 1 $IP1 | awk 'NR == 2 {print $7}' | cut -d = -f 2)
                if [ -z $a ]
                then
                echo '0' >> /etc/zabbix/embratel.txt
                else
                echo $a >> /etc/zabbix/embratel.txt
                fi

                #-----------------------------------------------------------------------------------------------

                #----GVT
                IP2=8.8.4.4
                ping='/bin/ping'
                b=$($ping -c 1 -W 1 $IP2 | awk 'NR == 2 {print $7}' | cut -d = -f 2)
                if [ -z $b ]
                then
                echo '0' >> /etc/zabbix/gvt.txt
                else
                echo $b >> /etc/zabbix/gvt.txt
                fi
                exit 1


                Configurei o cron para rodar o script de 5 em 5 minutos, adicionando a linha: */5 * * * * root ./etc/zabbix/ping_internet.sh
                no arquivo /etc/crontab

                Adicionei as linhas com os parâmetros:
                UserParameter=ping.embratel,tail -1 /etc/zabbix/embratel.txt | gawk "{print $1}"
                UserParameter=ping.gvt,tail -1 /etc/zabbix/gvt.txt | gawk "{print $1}"
                no zabbix_agentd.conf.

                Criei o item no zabbix com as chaves ping.gvt e ping.embratel
                Last edited by vininunes; 14-08-2013, 17:48.

                Comment

                • bezarsnba
                  Member
                  • Aug 2013
                  • 39

                  #9
                  E ai Vinicios

                  Beleza,

                  Eu faria de uma outra forma, pegaria o stdout do bash e colocaria isso no UserParameter

                  [beza@chicaco ~]$ ping -c3 1.1.1.1
                  PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.

                  --- 1.1.1.1 ping statistics ---
                  3 packets transmitted, 0 received, 100% packet loss, time 1999ms

                  [beza@chicaco ~]$ echo $?
                  1
                  [beza@chicaco ~]$ ping -c3 8.8.8.8
                  PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
                  64 bytes from 8.8.8.8: icmp_req=1 ttl=49 time=138 ms
                  64 bytes from 8.8.8.8: icmp_req=2 ttl=49 time=124 ms
                  64 bytes from 8.8.8.8: icmp_req=3 ttl=49 time=122 ms

                  --- 8.8.8.8 ping statistics ---
                  3 packets transmitted, 3 received, 0% packet loss, time 2003ms
                  rtt min/avg/max/mdev = 122.282/128.401/138.416/7.145 ms
                  [beza@chicaco ~]$ echo $?
                  0

                  E criaria um UserParameter com as seguintes informações:

                  UserParameter=ping.gvt,ping -c3 8.8.8.8 | echo $?


                  Com isso facilitaria a gravar em um arquivo, pois imagina daqui a 1 mês como esse arquivo vai ficar com 0 e 1..

                  Ah uma outra dica que aprendi no curso é armazena tudo em 1 dia, para não prejudicar o seu db com os 0 e 1s

                  Espero que tenha ajudado

                  Beza

                  Comment

                  • vininunes
                    Junior Member
                    • Jul 2013
                    • 23

                    #10
                    Opa, beleza

                    Estou armazenando quantos ms demora o ping, se der erro ele retorna zero então dispara a trigger que criei se der 0 nos dois últimos checks.
                    {server: ping.embratel.max(#2)}=0

                    Quanto ao tamanho do arquivo criei no cron também uma tarefa de apagar o arquivo a cada mês.
                    30 23 15 * * root rm -rf /etc/zabbix/embratel.txt

                    Quanto ao tamanho disto no meu DB eu mudei a opção Manter histórico (em dias) para 30 dias, não sei se só isto seria suficiente.

                    Muito obrigado

                    Comment

                    • gunter
                      Member
                      • Jul 2012
                      • 36

                      #11
                      Originally posted by vininunes
                      Opa, beleza

                      Estou armazenando quantos ms demora o ping, se der erro ele retorna zero então dispara a trigger que criei se der 0 nos dois últimos checks.
                      {server: ping.embratel.max(#2)}=0

                      Quanto ao tamanho do arquivo criei no cron também uma tarefa de apagar o arquivo a cada mês.
                      30 23 15 * * root rm -rf /etc/zabbix/embratel.txt

                      Quanto ao tamanho disto no meu DB eu mudei a opção Manter histórico (em dias) para 30 dias, não sei se só isto seria suficiente.

                      Muito obrigado
                      Armazena em float e faz com um simplecheck que deve resolver.

                      Comment

                      • fpaternot
                        Member
                        Zabbix Certified Specialist
                        • Feb 2013
                        • 52

                        #12
                        Você pode substituir o echo >> arquivo por uma chamada para o zabbix_sender. Asssim você elimina o delay entre escrever no arquivo e o User Parameter ser chamado. Além também de não correr risco do arquivo deixar de ser incrementado por qualquer motivo e você não perceber.

                        Como eu faria:
                        substuiria

                        echo 0/1 >> arquivo

                        por
                        zabbix_sender -c <seu_arquivo_de_conf_do_agentd.conf> -k <sua_key_para_o_item> -o <resultado_0_ou_1>


                        Documentação sobre;




                        Não esqueça que o item deve ser um Zabbix Trapper e de configurar no seu zabbix_agentd.conf o server e serverActive.

                        Tem um bug em aberto que o zabbix_sender PRECISA que a flag Hostname esteja definida no zabbix_agentd.conf, senão ele não assume (como o zabbix_agentd) o hostname como definido no sistema operacional.

                        Comment

                        • vininunes
                          Junior Member
                          • Jul 2013
                          • 23

                          #13
                          Muito bom, agora sim ficou perfeito com o trapper.

                          #----Embratel
                          IP1=8.8.8.8
                          ping='/bin/ping'
                          a=$($ping -c 1 -W 1 $IP1 | awk 'NR == 2 {print $7}' | cut -d = -f 2)
                          if [ -z $a ]
                          then
                          zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k ping.embratel -o 0
                          else
                          zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k ping.embratel -o $a
                          fi

                          Muito obrigado a todos que me ajudaram

                          Comment

                          • bezarsnba
                            Member
                            • Aug 2013
                            • 39

                            #14
                            E ai galera

                            Zabbix trapper achei bacana em.. mas temos um problema que na verdade não é um problema mas pode ser.

                            Pois o trapper envia informação para o servidor e o servidor pega as informação e registra, mas se o trapper não conseguir enviar? Caiu o Link.. ele não vai mandar para o servidor dizendo que o link caiu pois o meio de comunicação foi para o saco.

                            Não sei, pois não fiz um teste via trapper e não sei como é do lado do Zabbix Server,

                            Espero que tenha ajudado.

                            Beza

                            Comment

                            • vininunes
                              Junior Member
                              • Jul 2013
                              • 23

                              #15
                              Caso caia um link o outro assume e envia o trapper, se caso cair os dois links o zabbix na matriz vai identificar que a filial esta sem conexão por causa de outras triggers nos hosts das filiais, então saberemos que os dois links caíram.

                              Comment

                              Working...