Prefácio
Anterior descreve a configuração de instalação prometheus, podemos acessar o sistema de alarme de monitoramento prometheus implantado k8s -prometheus série primeira visualização do artigo , isso será seguido pela introdução Grafana peças de conteúdo e o guia de interface da web Grafana dos nós físicos e O modelo de monitoramento de o contêiner, e exibir os indicadores de monitoramento do prometheus, e então realizar o alarme de monitoramento através do alertmanager.
Pontas
Este artigo usa o mesmo ambiente experimental do anterior. Antes de ler este artigo, você precisa implantar o sistema de alarme de monitoramento prometheus no k8s - o primeiro artigo da série prometheus , e fazer o experimento conforme necessário, para que possamos continuar seguintes conteúdos
Planejamento da máquina:
Use o mesmo ambiente experimental do artigo anterior:
O ip da máquina do nó mestre é 192.168.0.6 e o nome do host é master1
O ip da máquina do nó do nó é 192.168.0.56 e o nome do host é node1
Consulte o seguinte artigo para a instalação do cluster mestre de alta disponibilidade:
k8s1.18 de instalação de cluster de alta disponibilidade - documento oficial chinês superdetalhado
Instalação e configuração do Grafana
Baixe e instale a imagem necessária para o Grafana
Faça upload da imagem heapster-grafana-amd64_v5_0_4.tar.gz para cada nó mestre de k8s e cada nó de nó de k8s e, em seguida, descompacte manualmente cada nó:
docker load -i heapster-grafana-amd64_v5_0_4.tar.gz
O endereço do disco de rede do Baidu onde a imagem está localizada é o seguinte:
Link: https://pan.baidu.com/s/1TmVGKxde_cEYrbjiETboEA Código de extração: 052u
Crie grafana.yaml no nó master1 de k8s
# As seguintes variáveis env são necessárias para tornar o Grafana acessível por meio do # proxy do servidor api do kubernetes. Em clusters de produção, recomendamos # remover essas variáveis env, configurar a autenticação para grafana e expor o serviço # grafana usando um LoadBalancer ou um IP público. - nome: GF_AUTH_BASIC_ENABLED valor: "false" - nome: GF_AUTH_ANONYMOUS_ENABLED valor: "true" - nome: GF_AUTH_ANONYMOUS_ORG_ROLE valor: Admin - nome: GF_SERVER_ROOT_URL # Em vez disso, se você estiver usando este valor apenas / proxy: # api / v1 / namespaces / kube-system / services / monitoring-grafana / proxy valor: / volumes: - nome: ca-certificados hostPath: caminho: / etc / ssl / certs - nome: grafana-storage emptyDir: {} --- apiVersion: v1kind: Servicemetadata: labels: # Para uso como um complemento do Cluster (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) # If você NÃO está usando isso como um complemento, você deve comentar esta linha. kubernetes.io/cluster-service: 'true' kubernetes.io/name: monitoring-grafana name: monitoring-grafana namespace: kube-systemspec: # Em uma configuração de produção, recomendamos acessar o Grafana por meio de um Loadbalancer externo # ou por meio de um público IP. # type: LoadBalancer # Você também pode usar NodePort para expor o serviço em uma porta gerada aleatoriamente # type: NodePort portas: - port: 80 targetPort: 3000 seletor: k8s-app: grafana type: NodePortEOF com / kubernetes / kubernetes / tree / master / cluster / addons) # Se você NÃO estiver usando isso como um complemento, deve comentar esta linha. kubernetes.io/cluster-service: 'true' kubernetes.io/name: monitoring-grafana name: monitoring-grafana namespace: kube-systemspec: # Em uma configuração de produção, recomendamos acessar o Grafana por meio de um Loadbalancer externo # ou por meio de um público IP. # type: LoadBalancer # Você também pode usar NodePort para expor o serviço em uma porta gerada aleatoriamente # type: NodePort portas: - port: 80 targetPort: 3000 seletor: k8s-app: grafana type: NodePortEOF com / kubernetes / kubernetes / tree / master / cluster / addons) # Se você NÃO estiver usando isso como um complemento, deve comentar esta linha. kubernetes.io/cluster-service: 'true' kubernetes.io/name: monitoring-grafana name: monitoring-grafana namespace: kube-systemspec: # Em uma configuração de produção, recomendamos acessar o Grafana por meio de um Loadbalancer externo # ou por meio de um público IP. # type: LoadBalancer # Você também pode usar NodePort para expor o serviço em uma porta gerada aleatoriamente # type: NodePort portas: - port: 80 targetPort: 3000 seletor: k8s-app: grafana type: NodePortEOF kube-systemspec: # Em uma configuração de produção, recomendamos acessar o Grafana por meio de um balanceador de carga externo # ou por meio de um IP público. # type: LoadBalancer # Você também pode usar NodePort para expor o serviço em uma porta gerada aleatoriamente # type: NodePort portas: - port: 80 targetPort: 3000 seletor: k8s-app: grafana type: NodePortEOF kube-systemspec: # Em uma configuração de produção, recomendamos acessar o Grafana por meio de um balanceador de carga externo # ou por meio de um IP público. # type: LoadBalancer # Você também pode usar NodePort para expor o serviço em uma porta gerada aleatoriamente # type: NodePort portas: - port: 80 targetPort: 3000 seletor: k8s-app: grafana type: NodePortEOF
Atualizar grafana via kubectl apply
kubectl apply -f grafana.yaml
Verifique se o grafana foi implantado com sucesso
kubectl get pods -n kube-system
A exibição é a seguinte, indicando que a implantação foi bem-sucedida
monitoramento-grafana-7d7f6cf5c6-vrxw9 1/1 Executando 0 3h51m
Ver o serviço de
grafana kubectl get svc -n kube-system
A exibição é a seguinte:
monitoramento-grafana NodePort 10.111.173.47 <nenhum> 80: 31044 / TCP 3h54m
Você pode ver acima que a porta do host exposta pela grafana é 31044
Podemos acessar a interface web da grafana visitando o ip do nó mestre do cluster k8s: 31044
Acesso da interface Grafan à fonte de dados prometheus
1) Faça login na grafana e visite no navegador
192.168.0.6:31044
A senha da conta é admin
Você pode ver a seguinte interface:
2) Configure a interface grafana:
comece a configurar a interface web grafana:
selecione Criar sua primeira fonte de dados
Aparece como segue
Nome: Prometheus
Tipo: Prometheus
O URL em HTTP é escrito da seguinte forma:
http: //prometheus.monitor-sa.svc: 9090
A página geral configurada é a seguinte:
Clique em Salvar e testar no canto esquerdo inferior e a seguinte fonte de dados está funcionando é exibida, indicando que a fonte de dados prometheus foi acessada com sucesso pela grafana
导入监控模板,可在如下链接搜索
https://grafana.com/dashboards?dataSource=prometheus&search=kubernetes
也可直接导入node_exporter.json监控模板,这个可以把node节点指标显示出来
node_exporter.json在百度网盘地址如下:
链接:https://pan.baidu.com/s/1vF1kAMRbxQkUGPlZt91MWg 提取码:kyd6
还可直接导入docker_rev1.json,可以把容器相关的数据展示出来
docker_rev1.json在百度网盘地址如下:
链接:https://pan.baidu.com/s/17o_nja5N2R-g9g5PkJ3aFA 提取码:vinv
怎么导入监控模板,按如下步骤
上面Save & Test测试没问题之后,就可以返回Grafana主页面
点击左侧+号下面的Import,出现如下界面
选择Upload json file,出现如下
选择一个本地的json文件,我们选择的是上面让大家下载的node_exporter.json这个文件,选择之后出现如下
注:箭头标注的地方Name后面的名字是node_exporter.json定义的
Prometheus后面需要变成Prometheus,然后再点击Import,就可以出现如下界面:
导入docker_rev1.json监控模板,步骤和上面导入node_exporter.json步骤一样,导入之后显示如下:
Vendo isso, temos implantado com sucesso e configurado Grafana, e com sucesso acessada a fonte de dados Prometeu, mas não se preocupe, este é um artigo de série, o próximo artigo irá seguir este conteúdo para introduzir Alertmanager , e perceber o alarme através alertmanager , por favor Continue prestando atenção à minha conta oficial, continuarei a compartilhar os conhecimentos mais recentes com você.