在当今数字化转型加速的时代,企业对Web应用和服务的依赖日益增加。为了保证这些关键资产的高可用性和高性能,实施有效的监控策略变得至关重要。Ingress-Nginx作为一个流行的开源入口控制器,为Kubernetes集群提供了HTTP和HTTPS路由功能。其配套的企业级监控面板则为企业提供了一个强大的工具,用于实时监测、分析和响应网络流量中的问题,从而保障系统的稳健运行。本文将深入探讨如何设置和使用Ingress-Nginx的监控面板,以实现对企业级应用的全面掌控。

预防胜于治疗,监控先行
1、ingress-nginx开启metrics端口
$ cat etc/kubernetes/addons/ingress-nginx-value.yml
controller:
# 配置metrics采集
metrics:
enabled: true
port: 10254
2、配置文件生效
$ helm -n kube-system upgrade ingress-nginx -f etc/kubernetes/addons/ingress-nginx-value.yml etc/kubernetes/addons/ingress-nginx
Release "ingress-nginx" has been upgraded. Happy Helming!
NAME: ingress-nginx
LAST DEPLOYED: Fri Dec 13 14:12:34 2024
NAMESPACE: kube-system
STATUS: deployed
REVISION: 9
TEST SUITE: None
NOTES:
...
1、Prometheus采集ingress-nginx数据
$ kubectl -n kube-system edit cm prometheus
- job_name: 'ingress-nginx'
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_endpoints_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;ingress-nginx-controller-metrics;metrics
2、验证是否采集成功
$ curl -s $(kubectl -n kube-system get svc prometheus -ojsonpath='{.spec.clusterIP}:{.spec.ports[0].port}')/prometheus/api/v1/query --data-urlencode 'query=up{job=~"ingress-nginx"}' | jq '.data.result[] | {job: .metric.job, instance: .metric.instance, status: .value[1]}'
{
"job": "ingress-nginx",
"instance": "10.244.85.202:10254",
"status": "1"
}
{
"job": "ingress-nginx",
"instance": "10.244.58.206:10254",
"status": "1"
}
grafana上添加ingress_nginx_exporter面板地址:https://github.com/adinhodovic/ingress-nginx-mixin/tree/main/dashboards_out




Tip:上述的面板,均是做过修改后的效果图
综上所述,建立一个高效的企业级Ingress-Nginx监控系统对于现代企业的IT基础设施来说不可或缺。它不仅有助于提高故障排查效率,还能促进预防性维护,最终为用户提供更加流畅的服务体验。通过精心设计和持续优化监控面板,企业可以更好地理解自身应用程序的行为模式,并据此做出明智决策,确保业务连续性和竞争力。
别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们携手在技术的海洋中乘风破浪!

文章转载自Linux运维智行录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




