{"id":1045,"date":"2019-01-10T18:35:53","date_gmt":"2019-01-10T18:35:53","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw93\/?p=1045"},"modified":"2019-01-12T10:21:27","modified_gmt":"2019-01-12T10:21:27","slug":"using-new-relic-splunk-appdynamics-and-netuitive-for-container-monitoring","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw93\/index.php\/2019\/01\/10\/using-new-relic-splunk-appdynamics-and-netuitive-for-container-monitoring\/","title":{"rendered":"Using New Relic, Splunk, AppDynamics and Netuitive for Container Monitoring"},"content":{"rendered":"<p><a href=\"http:\/\/cdn.rancher.com\/wp-content\/uploads\/2016\/12\/06155306\/Blog-icons.png\"><img decoding=\"async\" src=\"http:\/\/cdn.rancher.com\/wp-content\/uploads\/2016\/12\/06155306\/Blog-icons-300x238.png\" alt=\"Monitoring\nIcons\" \/><\/a><\/p>\n<p>If you use containers as part of your day-to-day operations, you need to<br \/>\nmonitor them &#8212; ideally, by using a monitoring solution that you<br \/>\nalready have in place, rather than implementing an entirely new tool.<br \/>\nContainers are often deployed quickly and at a high volume, and they<br \/>\nfrequently consume and release system resources at a rapid rate. You<br \/>\nneed to have some way of measuring container performance, and the impact<br \/>\nthat container deployment has on your system. In this article, we\u2019ll<br \/>\ntake a look at four widely used monitoring<br \/>\nplatforms\u2014<a href=\"http:\/\/www.netuitive.com\/\">Netuitive<\/a>, <a href=\"https:\/\/newrelic.com\/\">NewRelic<\/a>, <a href=\"https:\/\/www.splunk.com\/\">Splunk<\/a>, and\u00a0<a href=\"https:\/\/www.appdynamics.com\/\">AppDynamics<\/a>\u2014that support containers, and compare how they measure up when it comes to monitoring containers.<br \/>\nFirst, though, a question: When you monitor containers, what kind of<br \/>\nmetrics do you expect to see? The answer, as we\u2019ll see below, varies<br \/>\nwith the monitoring platform. But in general, container metrics fall<br \/>\ninto two categories\u2014those that measure overall container impact on the<br \/>\nsystem, and those that focus on the performance of individual<br \/>\ncontainers.<\/p>\n<h3>Setting up the Monitoring System<\/h3>\n<p>The first step in any kind of software monitoring, of course, is to<br \/>\ninstall the monitoring service. For all of the platforms covered in this<br \/>\narticle, you can expect additional steps for setting up standard<br \/>\nmonitoring features. Here we cover only those directly related to<br \/>\ncontainer monitoring. Setup: New Relic With New Relic, you start by<br \/>\ninstalling <a href=\"https:\/\/docs.newrelic.com\/docs\/servers\/new-relic-servers-linux\/getting-started\/new-relic-servers-linux\">New Relic Servers for Linux<\/a>,<br \/>\nwhich includes integrated Docker monitoring. It should be installed on<br \/>\nthe Docker server, rather than the Docker container. The Servers for<br \/>\nLinux package is available for most common Linux distributions; Docker<br \/>\nmonitoring, however, requires a 64-bit system. After you install New<br \/>\nRelic Servers for Linux, you will need to create a docker group (if it<br \/>\ndoesn\u2019t exist), then add the newrelic user to that group. You may need<br \/>\nto do some basic setup after that, including (depending on the Linux<br \/>\ndistribution) setting the location of the container data files and<br \/>\nenabling memory metrics. Setup: Netuitive Netuitive also requires<br \/>\nyou to install its Linux monitoring agent on the Docker server. You then<br \/>\nneed to enable Docker metrics collection in the Linux Agent config file,<br \/>\nand optionally limit the metrics and\/or containers by creating a<br \/>\nregex-based blacklist or whitelist. As with New Relic, you may wind up<br \/>\nsetting a few additional options. Netuitive, however, offers an<br \/>\nadditional installation method. If you are unable to install the Linux<br \/>\nAgent on the Docker server, you can install a Linux Agent Docker<br \/>\ncontainer, which will then do the job of monitoring the host and<br \/>\ncontainers. Setup: Splunk Splunk takes a very different approach to<br \/>\ncontainer monitoring. It uses a Docker API logging driver to send<br \/>\ncontainer log data directly to Splunk Enterprise and Splunk Cloud via<br \/>\nits HTTP Event Collector. You specify the splunk driver (and its<br \/>\nassociated options) on the Docker command line. Splunk\u2019s monitoring, in<br \/>\nother words, is integrated directly with Docker, rather than with the<br \/>\nhost system. The Splunk log driver requires an HTTP Event Collector<br \/>\ntoken, and the path (plus port) to the user\u2019s Splunk Cloud\/Splunk<br \/>\nEnterprise instance. It also takes several optional arguments. Setup:<br \/>\nAppDynamics AppDynamics uses a <a href=\"https:\/\/www.appdynamics.com\/community\/exchange\/extension\/docker-monitoring-extension\/\">Docker Monitoring extension<\/a><br \/>\nto send Docker Remote API metrics to its Machine Agent. In some ways,<br \/>\nthis places it in a middle ground between New Relic and Netuitive\u2019s<br \/>\nagent-based monitoring and Splunk\u2019s close interaction with Docker.<br \/>\nAppDynamics\u2019 extension installation, however, is much more hands-on.<br \/>\nThe instructions suggest that you can expect to come out of it with<br \/>\nengine grease up to your elbows, and perhaps a few scraped knuckles. You<br \/>\nmust first manually bind Docker to the TCP Socket or the Unix Socket.<br \/>\nAfter that, you need to install the Machine Agent, followed by the<br \/>\nextension. You then need to manually edit several sections of the config<br \/>\nfile, including the custom dashboard. You must also set executable<br \/>\npermissions, and AppDynamics asks you to review both the Docker Remote<br \/>\nAPI and the Docker Monitoring extension\u2019s socket command file. The<br \/>\nAppDynamics instructions also include troubleshooting instructions for<br \/>\nmost of the installation steps.<\/p>\n<h3>What You Get<\/h3>\n<p>As you might expect, there are some significant differences in the<br \/>\nmetrics which each of these platforms monitors and displays. Output:<br \/>\nNew Relic New Relic displays Docker container metrics as part of its<br \/>\nApplication Performance Monitoring (APM) Overview page; containers are<br \/>\ngrouped host servers when Servers for Linux is installed, and are<br \/>\nindicated by a container symbol. The overview page includes drill-down<br \/>\nfor detailed performance features. The New Relic Servers monitor<br \/>\nincludes a Docker page, which shows the impact of Docker containers on<br \/>\nthe server\u2019s performance. It displays server-related metrics for<br \/>\nindividual Docker images, with drill-down to image details. It does not,<br \/>\nhowever, display data for individual containers. Output: Netuitive<br \/>\nNetuitive\u2019s Docker monitor collects a variety of metrics, including<br \/>\nseveral related to CPU and network performance, and almost two dozen<br \/>\ninvolving memory. It also collects computed CPU, memory, and throttling<br \/>\npercentages. With Netuitive, you build a dashboard by assembling<br \/>\nwidgets, so the actual data shown (and the manner in which it is<br \/>\ndisplayed) will depend on your choice of widgets and their<br \/>\nconfiguration. Output: Splunk Splunk is designed to use data from a<br \/>\nwide range of logs and related sources; for containers, it pulls data<br \/>\nfrom individual container logs, from Docker and cloud APIs, and from<br \/>\napplication logs. Since Splunk integrates such a large amount of data at<br \/>\nthe cloud and enterprise level, it is up to the user to configure<br \/>\nSplunk\u2019s analysis and monitoring tools to display the required data.<br \/>\nFor containers, Splunk recommends looking at CPU and memory use,<br \/>\ndowntime\/outage-related errors, and specific container and application<br \/>\nlogs to identify problem containers. Output: AppDynamics AppDynamics<br \/>\nreports basic container and system statistics (individual container<br \/>\nsize, container and image count, total memory, memory limit, and swap<br \/>\nlimit), along with various ongoing network, CPU, and memory statistics.<br \/>\nIt sends these to the dashboard, where they are displayed in a series of<br \/>\ncharts.<\/p>\n<h3>Which Service Should You Use?<\/h3>\n<p>When it comes to the question of which monitoring service is right for<br \/>\nyour container deployment, there\u2019s no single answer. For most<br \/>\ncontainer-based operations, including Rancher-managed operations on a<br \/>\ntypical Linux distribution, either New Relic or Netuitive should do<br \/>\nquite well. With reasonably similar setup and monitoring features, the<br \/>\ntradeoff is between New Relic\u2019s preconfigured dashboard pages and the<br \/>\ndo-it-yourself customizability of Netuitive\u2019s dashboard system. For<br \/>\nenterprise-level operations concerned with integrated monitoring of<br \/>\nperformance at all scales, from system-level down to individual<br \/>\ncontainer and application logs, Splunk is the obvious choice. Since<br \/>\nSplunk works directly with the Docker API, it is also likely to be the<br \/>\nbest option for use with minimal-feature RancherOS deployments. If, on<br \/>\nthe other hand, you simply want to monitor container performance via the<br \/>\nDocker API in a no-frills, basic way, the AppDynamics approach might<br \/>\nwork best for you. So there it is: Look at what kind of container<br \/>\nmonitoring you need, and take your pick.<\/p>\n<p><a href=\"https:\/\/rancher.com\/using-new-relic-splunk-appdynamics-and-netuitive-for-container-monitoring\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you use containers as part of your day-to-day operations, you need to monitor them &#8212; ideally, by using a monitoring solution that you already have in place, rather than implementing an entirely new tool. Containers are often deployed quickly and at a high volume, and they frequently consume and release system resources at a &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw93\/index.php\/2019\/01\/10\/using-new-relic-splunk-appdynamics-and-netuitive-for-container-monitoring\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Using New Relic, Splunk, AppDynamics and Netuitive for Container Monitoring&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1045","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/1045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/comments?post=1045"}],"version-history":[{"count":2,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/1045\/revisions"}],"predecessor-version":[{"id":1065,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/1045\/revisions\/1065"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/media?parent=1045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/categories?post=1045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/tags?post=1045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}