Recentemente, estou interessado no tópico do DevOps, estudei o projeto de código aberto relacionado ao monitor e entrei em um artigo no Medium. No projeto real, vi colegas do grupo DevOps usando monitoramento semelhante, então queria aproveitar e aprender sobre o monitoramento da visualização.
Configuração de serviço monitorada
Existe um projeto de inicialização de primavera localmente e também depende de Jolokia (principalmente para expor JMX MBeans através do HTTP)
A configuração do projeto também é indispensável
terminais: habilitado: true jmx: habilitado: true jolokia: habilitado: Truemanagement: segurança: habilitado: false
Visite o URL para ver se está tudo bem
http: // localhost: 8080/jolokia/read/org.springframework.boot: name = metricsendpoint, type = endpoint/dados
Construir um sistema de monitoramento
Se você puder ver os dados, significa que a configuração do lado do servidor está bem. Como construímos o Telegraf + InfluxDB + Grafana? Esses três componentes trabalham juntos dessa maneira. O Telegraf realmente coleta informações. Por exemplo, visite o URL acima a cada 10 segundos para obter métricas, armazenar os dados coletados no InfluxDB e, em seguida, Grafana faz a visualização de dados.
Mas se for muito problemático instalá-lo manualmente, ajude o Universal Github e encontre um projeto muito bom (https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana), bifurque diretamente e modifique algumas configurações para servir seu projeto. Se você não entender a configuração relevante, poderá executá -la diretamente primeiro e depois passar pelo SSH para descobrir.
raiz ssh@localhost -p 22022
Em termos de configuração, o principal é modificar o Telegraf, porque se conecta a diferentes projetos. Que tipo de informação você precisa coletar, como CPU, disco, rede, etc., deve estar equipado no Telegraf. Para simplificar, eu só configurei três entradas.
# /etc/telegraf/Telegraf.conf[inputs.jolokia]] context = "/jolokia"[inputs.jolokia.servers]] name =" springbootapp "host =" {App ip endereço} "port =" 8080 "[[inputs.jolOkia.metrics] "org.springframework.boot: name = metricsendpoint, type = endpoint" attribute = "dados" [[inputs.jolokia.metrics]] name = "tomcat_max_threads" mbean = "thread" thret: name =/"http-nio-8080/", tipo = thread "thread" thread "thread" "maxthreads" [[inputs.jolokia.metrics]] name = "tomcat_current_threads_busy" mbean = "tomcat: name =/" http-nio-8080/", type = threadpool" attribute = "currentthreadsy"De fato, são métricas padrão da Spring-Boot e threads Tomcat.
Após a conclusão, reinicie o serviço /etc/init.d/telegraf restart
Exibir dados de monitoramento
Visitamos o InfluxDB para ver se há algum dados http: // localhost: 3004/e alternamos o banco de dados para Telegraf. Insira o seguinte comando para tentar
Mostrar medidasSelect * de JOLOKIASElect * de Cpuselect * de Memselect * do Diskio
Por exemplo, se você entrar SELECT * FROM jolokia , poderá ver quais dados são expostos pelo Spring-Boot. A partir da coluna do tempo, também pode ser visto que o Telegraf é coletado a cada 10 segundos. Se for muito frequente, também será uma pressão no servidor.
As opções acima abrangem basicamente algumas métricas de CPU, memória e armazenamento.
De fato, você também pode configurar configurações relacionadas à rede. Se você estiver interessado, pode ver o Telegraf.conf oficial, que contém exemplos de configuração [[inputs.net]].
Visualização de dados
Depois que os dados estão disponíveis, o próximo passo é a visualização.
Siga o github mencionado acima para entrar http: // localhost: 3003/,
Usando o assistente, clique em Adicionar dados SourCechoose um nome para a fonte e sinalizá -lo como defaultChoose influxdb como TypeChoose diretamente como os campos restantes do Acessofill da seguinte maneira e clique em Adicionar sem alterar outro Fieldsurl: http: // localhost: 8086database: teleguspasswer: telGrafpassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword: telGrafassword.
Depois de adicionar o InfluxDB, crie um novo painel e adicione rapidamente alguns gráficos.
Para demonstração, adicionei três, usando os três conjuntos de declarações de consulta a seguir para renderizar três gráficos
Selecione Média (Usage_system) + Média (USAGE_USER) como CPU_TOTAL DA CPU, onde $ Timefilter Group por tempo ($ intervalo) Selecionar meios ("Total") como "Total" de "MEM", onde o grupo de tempo de tempo ", no tempo, no tempo, no tempo, no tempo, o número de dólares do tempo (no intervalo) se selecionou (" Usado ") como" USAL) "Memoril por tempo", onde o número de dólares ($ mean ("metrics_heap.used") como "heap_usage" de "jolokia", onde $ timefilter Group by time ($ interval) preenchimento (nulo)O primeiro é o uso da CPU; O segundo é o uso da memória, a linha verde é total, a linha amarela é usada; O terceiro é o uso da pilha JVM fornecida por Jolokia, e você pode ver a situação do GC.
Eu também configurei a coleção Tomcat agora agora e também é perfeito para ver a situação do tópico do Tomcat.
Selecione Mestre ("TOMCAT_MAX_THREADS") de "Jolokia", onde $ TimeFilter Group por tempo ($ intervalo) preenchimento (nulo) Selecione Média ("Tomcat_current_threads_busy") de "Jolokia", onde $ TimeFilter Group por tempo (US $ intervalo) (Null)resumo
O acima é o monitoramento da inicialização da mola introduzida pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!