{"id":12611,"date":"2020-03-29T17:28:32","date_gmt":"2020-03-29T17:28:32","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=12611"},"modified":"2020-04-01T07:39:23","modified_gmt":"2020-04-01T07:39:23","slug":"white-box-monitoring-and-black-box-monitoring-explained","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/white-box-monitoring-and-black-box-monitoring-explained\/","title":{"rendered":"White Box Monitoring and Black Box Monitoring explained!!!"},"content":{"rendered":"\n<p>There are some basic principles and best practices for building successful monitoring and alerting systems.<\/p>\n\n\n\n<p><strong>What is Monitoring?<\/strong><br>Collecting, processing, aggregating, and displaying real-time quantitative data about a system, such as query counts and types, error counts and types, processing times, and server lifetimes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"219\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring.jpg\" alt=\"\" class=\"wp-image-12613\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring.jpg 519w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring-300x127.jpg 300w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/figure>\n\n\n\n<p><strong>What is White Box Monitoring?<\/strong><br>White box monitoring is the monitoring of applications running on a server. Monitoring based on metrics exposed by the internals of the system, including logs, interfaces like the Java Virtual Machine Profiling Interface, or an HTTP handler that emits internal statistics. Other types of white box monitoring include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Monitoring MySQL queries running on a database server.<\/li><li>Looking at the number of users utilizing a web application throughout the day, and alerting if this goes above a predefined threshold.<\/li><li>Considering the above example of HTTP requests\u2014splitting these out into monitoring the different kinds to ascertain how the application is performing, or whether users are getting served the correct content. For example, a 403 would demonstrate a user has tried to get to a part of the website they\u2019re not allowed to visit. Likewise, a 200 would indicate their request was successful and they were served the content.<\/li><li>Performing advanced detection of behavior we don\u2019t expect to see, such as a user not going through the normal steps you\u2019d expect when signing into your application or resetting a password.<\/li><\/ul>\n\n\n\n<p><strong>The advantages of Black Box Monitoring:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>We obtain a better overview of the situation.<\/li><li>Helps optimizing the code.<\/li><li>Introspection of programmers, awareness of their actions.<\/li><li>Allows finding hidden errors.<\/li><li>All this leads to efficiency in finding errors and problems.<\/li><\/ul>\n\n\n\n<p><strong>Disadvantages of whitebox testing:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>We need to know the source code of the involved software(s).<\/li><li>Requires a high level of understanding and experience of the affected program.<\/li><\/ul>\n\n\n\n<p><strong>List of White Box Monitoring tools<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Prometheus <\/li><li>Pandora FMS<\/li><li>Zabbix<\/li><li>NewRelic<\/li><li>AppDynamics<\/li><\/ul>\n\n\n\n<p><strong>What is Black Box Monitoring?<\/strong><\/p>\n\n\n\n<p>Black box monitoring refers to the monitoring of servers with a focus on areas such as disk space, CPU usage, memory usage, load averages, etc. Testing externally visible behavior as a user would see it. These are what most in the industry would deem as the standard system metrics to monitor. Other types of black box monitoring include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Monitoring of network switches and other networking devices such as load balancers from the system metrics perspective, as defined above.<\/li><li>Looking at hypervisor-level resource usage for all virtual machines running on the hypervisor (such as VMware, KVM, Xen, etc.).<\/li><li>Alerting on hard disk errors that may present a problem if a disk isn\u2019t replaced soon (using SMART, for instance).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"200\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring.png\" alt=\"\" class=\"wp-image-12614\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring.png 1000w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring-300x60.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring-768x154.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption><br><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"200\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring1.png\" alt=\"\" class=\"wp-image-12615\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring1.png 1000w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring1-300x60.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Black-Box-Monitoring1-768x154.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p><strong>List of  Black Box Monitoring tools<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Nagios<\/li><li>Datadog<\/li><li>Sysdig<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"638\" height=\"359\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring1.jpg\" alt=\"\" class=\"wp-image-12616\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring1.jpg 638w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring1-300x169.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/Difference-between-White-Box-Monitoring-and-Black-Box-Monitoring1-355x199.jpg 355w\" sizes=\"auto, (max-width: 638px) 100vw, 638px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"531\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/White-Box-Monitoring-and-Black-Box-Monitoring-1024x531.png\" alt=\"\" class=\"wp-image-12617\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/White-Box-Monitoring-and-Black-Box-Monitoring-1024x531.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/White-Box-Monitoring-and-Black-Box-Monitoring-300x156.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/White-Box-Monitoring-and-Black-Box-Monitoring-768x398.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/03\/White-Box-Monitoring-and-Black-Box-Monitoring.png 1063w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Difference between White Box Monitoring and Black Box Monitoring?<\/strong><\/p>\n\n\n\n<p>There are differences between these two types of monitoring. Traditionally, systems administrators would take care of both white and black box monitoring; however, with the advent of DevOps and modern changes in the IT industry, we\u2019re increasingly finding that application developers are taking responsibility for the monitoring of the applications (white box) they\u2019re writing and as a result, are building monitoring solutions or writing checks for monitoring systems deployed by DevOps engineers.<\/p>\n\n\n\n<p>Systems administrators and DevOps engineers tend to take responsibility for the monitoring of black box items such as servers. There is some crossover where DevOps engineers can also take responsibility for white box monitoring, but this depends on the business or environment you\u2019re working in.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are some basic principles and best practices for building successful monitoring and alerting systems. What is Monitoring?Collecting, processing, aggregating, and displaying real-time quantitative data about a system, such as&#8230; <\/p>\n","protected":false},"author":1,"featured_media":12637,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[6020],"tags":[6024,95,858,6023],"class_list":["post-12611","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-monitoring","tag-blackbox","tag-devops","tag-monitoring","tag-whitebox"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/12611","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=12611"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/12611\/revisions"}],"predecessor-version":[{"id":12618,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/12611\/revisions\/12618"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/12637"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=12611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=12611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=12611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}