Agenda
07/05/2018 2
• Solução actual
– Problemas e limitações
• Comparação de soluções existentes
• Nova abordagem
• Resultados
Solução actual
07/05/2018 4
• Actualmente a nossa solução é baseada no Cacti.
– Usa o spine para fazer o pooling
– Guarda a informação em ficheiros RRA
• Funciona muito bem para gráficos com poucas sources
Solução actual
07/05/2018 5
• No entanto, quando se quer usar mais fontes de informação, começa a ficar mais complicado.
Solução actual
07/05/2018 6
• Mesmo mais complicado……
Muitas sources depois…
…..
…..
Solução actual
07/05/2018 7
• Rede muito dinâmica/constante mudança
– Custo de operação elevado
• Grande quantidade de scripts específicos
– Aumentam substancialmente o tempo de pooling
• Gosto pela inovação e novas tecnologias
Comparação de soluções existentes
07/05/2018 8
Requisitos
– Grátis
– De preferência código aberto (Open Source Software)
– Activamente desenvolvido e suportado
Mas também
– Relativamente fácil de implementar e manter
– Conseguisse ter ou superar todas as funcionalidades disponibilizadas pela solução actual
– Eficiente e de baixo consumo de recursos
Comparação de soluções existentes
07/05/2018 9
• Tarefas do Cacti
– Recolha (pooling)
• Spine
– Armazenamento de dados
• RRAs/RRDs
– Visualização dos dados
• Cacti/RRDTool
• Nova ferramenta
– Recolha
• Collectd, Telegraf
– Armazenamento
• OpenTSDB, Whisper, InfluxDB
– Vizualização
• Graphite, Prometheus, Grafana
Nova abordagem
07/05/2018 10
• Recolha
– Aplicação desenvolvida “in-house” (GoFetch), e telegraf
• Armazenamento
– InfluxDB
• Visualização
– Grafana
Nova abordagem
07/05/2018 11
• InfluxDB
– Alta performance.
• Especificamente desenhado de raiz para “time-series”
– SQL-Like Queries
• Linguagem semelhante a SQL com algumas especificidades
• Menor curva de aprendizagem
– Retenção de dados e “downsampling”
• Através de “Continuous Queries” e políticas de retenção, permite manter apenas os dados desejados a longo termo.
Nova abordagem
07/05/2018 12
• Grafana
– Permite a visualização de um número grande de bases de dados (Graphite, InfluxDB, Prometheus, ElasticSerach, etc)
– Diversas formas de visualização da informação
– Permite definir alertas e notificações
Resultados - InfluxDB
07/05/2018 13
root@7cc0f8aae326:/# influx -precision rfc3339Connected to http://localhost:8086 version 1.4.2InfluxDB shell version: 1.4.2> SHOW DATABASESname: databasesname----_internaltestdbGdb
> USE testdbUsing database testdb
> SHOW MEASUREMENTSname: measurementsname----cell_infocpudiskdiskiodockerdocker_container_blkiodocker_container_cpudocker_container_memdocker_container_netiface_infokernelmemnetprocessesswapsystemuptime
Resultados - InfluxDB
07/05/2018 14
> SELECT * FROM "cell_info" ORDER BY time DESC LIMIT 1
name: cell_info
time 3gRssi IP Type alertCounter connected enabled sessionTime sysName tech uptime
---- ------ -- ---- ------------ --------- ------- ----------- ------- ---- ------
2018-04-08T16:22:30Z -54 193.136.253.100 OG 0 2 1 GSMUC 4
Resultados - Grafana
07/05/2018 15
Resultados - Grafana
07/05/2018 16
Resultados - Grafana
07/05/2018 17
Resultados - Grafana
07/05/2018 18
Resultados - Grafana
07/05/2018 19
Conclusão
07/05/2018 21
• Desenvolvimento da solução ainda em curso mas com capacidade de substituir na totalidade a solução baseada em Cacti
• Possibilidade de expansão e customização
• Facilmente integrável com outras ferramentas
Top Related