Obtenha estatísticas de rede no Solaris 10

2

Estou tentando obter estatísticas de rede no Solaris 10

Algo parecido com isso quando eu estava trabalhando no Linux ::

02:42:06  IST     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:42:07  IST    ens192      8.00      0.00      0.52      0.00      0.00      0.00      1.00
02:42:07  IST        lo     43.00     43.00      7.98      7.98      0.00      0.00      0.00

O problema é que não podemos esperar que o usuário instale pacotes adicionais além dos pacotes pré-instalados.

O que eu tentei e o problema correspondente:

  • dladm show-dev -s : mostra o total de pacotes enviados e recebidos. e eu preciso por segundo enviado e recebido
  • dladm show-dev -s -i 1 : Ele não para. O que não pode ser aceitável, pois o script deve prosseguir para indexar dados no Splunk.
  • dlstat : Este comando faria o truque, mas não é pré-instalado no Solaris.
    • duvida aqui :: existe uma maneira de instalar o dlstat no solaris.?
  • nicstat : não pré-instalado no solaris 10 ou 11.

Existe alguma maneira de obter esses campos sem instalar pacotes adicionais?

Observação: subtraindo o total de pacotes enviados e recebidos manualmente não é confiável no caso e não seria mais aprovado para implementação.

Obrigado em avançado.

    
por Jay Joshi 21.03.2018 / 12:39

3 respostas

1

Se dladm show-dev -s ... produzir as estatísticas necessárias, use o comando dladm show-dev -s sem a opção -i 1 para que ele imprima apenas uma vez ou, se precisar de várias linhas de saída para obter um instantâneo das taxas de uso atuais, pode expirar o comando.

A maneira mais fácil é o utilitário timeout , mas não sei se está disponível no Solaris 10:

timeout 5 dladm show-dev -s -i 1

Como alternativa, no bash, que está disponível no Solaris 10:

( dladm show-dev -s -i 1 ) & sleep 5; kill $!

(Observe também que o comando dladm no Solaris 11 é significativamente diferente do comando dladm no Solaris 10. Não acho que dladm show-dev -s ... funcione no Solaris 11.)

    
por 21.03.2018 / 15:10
1

Acredito que o comando que você está procurando é netstat -i ou uma variação dele para um comando do Solaris 10.

dlstat é um comando do Solaris 11.

Eu acredito que você está certo em nicstat não fazer parte do Solaris 10. A memória é que eu baixei e compilei a fonte para usá-lo na v8 de volta no dia. O Solaris 11 possui o pacote como: pkg: diagnostic / nicstat

    
por 22.03.2018 / 20:07
0

Você pode usar o kstat util. Variáveis para o Solaris 10 e o Solaris 11 são diferentes, aqui está o código universal:

KSTAT=$(kstat -p -c net '::mac:obytes64';  echo solaris10 globzone sent  >/dev/null
        kstat -p -c net '::mac:rbytes64';   echo solaris10 globzone rsv  >/dev/null
        kstat -p -c net '::phys:obytes64';  echo solaris11 globzone sent >/dev/null
        kstat -p -c net '::phys:rbytes64';  echo solaris11 globzone rcv  >/dev/null)

$KSTAT=$(echo "${KSTAT}" | sed 's/:[a-z]*:.*bytes64//; s/://; /vnic/d; /vsw/d;')

Variável de exemplo KSTAT consiste em tráfego enviado e recebido:

$ echo "$KSTAT"
igb0    1381124551259
igb1    0
igb2    0
igb3    0
usbecm2 509924057
igb0    803508091598
igb1    0
igb2    0
igb3    0
usbecm2 1007403041

Todos esses contadores são sempre crescentes. Você pode fazer análises de tempo deles para capturar estatísticas legíveis por humanos.

Observe também que, se você tiver regiões não globais, essa estatística funcionará APENAS para a pilha IP exclusiva . Todas as zonas na pilha IP compartilhada terão as mesmas estatísticas.

    
por 08.05.2018 / 14:12