{"id":29109,"date":"2022-03-24T04:41:09","date_gmt":"2022-03-24T04:41:09","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=29109"},"modified":"2025-01-23T12:45:26","modified_gmt":"2025-01-23T12:45:26","slug":"how-to-configure-and-enable-kubernetes-monitoring-using-zabbix","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-configure-and-enable-kubernetes-monitoring-using-zabbix\/","title":{"rendered":"How to configure and enable Kubernetes Monitoring using Zabbix?"},"content":{"rendered":"\n<ul class=\"wp-block-list\"><li>Method 1 &#8211; Using Zabbix in Kubernetes Template<\/li><li>Method 2 &#8211; Using prometheus operator in Kubernetes clustor &amp; Zabbix Integration with prometheus<\/li><li>Method 3 &#8211; Using Zabbix operator &#8211; Under Developement<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1 &#8211; Using Zabbix in Kubernetes Template<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1 &#8211; Setup a Kubernetes Clustor<\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-devopsschool-com wp-block-embed-devopsschool-com\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"8OfChKse5V\"><a href=\"https:\/\/www.devopsschool.com\/blog\/setting-up-kubernetes-clusters-using-kubeadm-manual-way-in-rhel-7-centos7\/\">Setting up Kubernetes Clusters using Kubeadm Manual way in RHEL 7 \/ Centos7<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Setting up Kubernetes Clusters using Kubeadm Manual way in RHEL 7 \/ Centos7&#8221; &#8212; DevOpsSchool.com\" src=\"https:\/\/www.devopsschool.com\/blog\/setting-up-kubernetes-clusters-using-kubeadm-manual-way-in-rhel-7-centos7\/embed\/#?secret=Ipc45VXGPT#?secret=8OfChKse5V\" data-secret=\"8OfChKse5V\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2 &#8211; How Kubernetes Monitoring Works?<\/h3>\n\n\n\n<p>All the moniotring is done using<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Docker &#8211; Its a running deamon, you can find in each host<\/li><li>Kubelet &#8211; Its a running deamon, you can find in each host<\/li><li>API of Kubernetes Components such API server,Controller manager, Scheduler etc<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"341\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-105-1024x341.png\" alt=\"\" class=\"wp-image-29117\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-105-1024x341.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-105-300x100.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-105-768x255.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-105-1536x511.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-105.png 1660w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 &#8211; Understand How to fetch metrices from API in Kubernetes?<\/h3>\n\n\n\n<p>You need 2 information<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>API Adress(URL). ie. {$KUBE.API.SERVER.URL}<\/li><li>Access (Password &#8211; Token &#8211; Certificate). ie. {$KUBE.API.TOKEN}<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4 &#8211; Decice what you want to monitor? Choose a template accordingly.<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Kubernetes API server by HTTP<\/li><li>Kubernetes cluster state by HTTP<\/li><li>Kubernetes Controller manager by HTTP<\/li><li>Kubernetes kubelet by HTTP<\/li><li>Kubernetes nodes by HTTP<\/li><li>Kubernetes Scheduler by HTTP<\/li><\/ul>\n\n\n\n<p>Step 5 &#8211; Add Host in Zabbix and Choose Kubernetes template and Set your template Macros as the per setup<\/p>\n\n\n\n<ul class=\"wp-block-list\" id=\"block-1f21911a-9730-4494-a14e-01415b458549\"><li>https:\/\/github.com\/sleepka\/zabbix-kubernetes-monitoring<\/li><li>https:\/\/github.com\/FU-Solutions\/zabbix_kubernetes_checks<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Method 2 &#8211; Using prometheus operator in Kubernetes clustor &amp; Zabbix Integration with prometheus<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>prometheus is written in golang<\/li><li>kubernetes is written in golang<\/li><li>prometheus is a cncf project like kubernetes<\/li><li>prometheus integ with kubernetes is very powerful compare to all<\/li><li>To monitor kubernetes, prometheus has kubernetes operator which is very powerful and easy<\/li><\/ul>\n\n\n\n<p><a href=\"https:\/\/www.zabbix.com\/integrations\/prometheus\" target=\"_blank\" rel=\"noopener\">https:\/\/www.zabbix.com\/integrations\/prometheus<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"383\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-106-1024x383.png\" alt=\"\" class=\"wp-image-29118\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-106-1024x383.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-106-300x112.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-106-768x287.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/03\/image-106.png 1384w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Method 3 &#8211; Using Zabbix operator &#8211; Under Developement<\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Method 1 &#8211; Using Zabbix in Kubernetes Template Method 2 &#8211; Using prometheus operator in Kubernetes clustor &amp; Zabbix Integration with prometheus Method 3 &#8211; Using Zabbix operator &#8211; Under&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4859],"tags":[],"class_list":["post-29109","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/29109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=29109"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/29109\/revisions"}],"predecessor-version":[{"id":29119,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/29109\/revisions\/29119"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=29109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=29109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=29109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}