<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dougmcclure.net</title>
	<atom:link href="https://dougmcclure.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://dougmcclure.net/blog</link>
	<description>thoughts on business, service and technology operations and management in the digital transformation era</description>
	<lastBuildDate>Thu, 31 Jan 2019 13:47:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dougmcclure.net/blog/wp-content/uploads/2018/12/cropped-dougmcclure-net-32x32.png</url>
	<title>dougmcclure.net</title>
	<link>https://dougmcclure.net/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Exploring Operational Impacts of Running a Default Nagios &#8211; PagerDuty Integration</title>
		<link>https://dougmcclure.net/blog/2019/01/exploring-operational-impacts-of-running-a-default-nagios-pagerduty-integration/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Thu, 31 Jan 2019 10:00:12 +0000</pubDate>
				<category><![CDATA[Event Intelligence]]></category>
		<category><![CDATA[Event Routing]]></category>
		<category><![CDATA[Event Rules]]></category>
		<category><![CDATA[Integrations]]></category>
		<category><![CDATA[PagerDuty]]></category>
		<category><![CDATA[PagerDuty Best Practices]]></category>
		<category><![CDATA[Service Design]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nagios XI]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=7912</guid>

					<description><![CDATA[In the prior blog post, I walked through how following the PagerDuty &#8211; Nagios XI integration guides leads us to the creation of a “Monitoring Service”. At the end of that post, I mentioned I’d talk about some of the reasons why running in this default configuration isn’t best practice and how this impacts an [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>In the prior blog post, I walked through how following the PagerDuty &#8211; Nagios XI integration guides leads us to the creation of a “Monitoring Service”. At the end of that post, I mentioned I’d talk about some of the reasons why running in this default configuration isn’t best practice and how this impacts an ops team’s response when using PagerDuty.  I’ll talk about this today as well as layout the next few blog posts about moving to better practices when integrating Nagios with PagerDuty. </p>



<p>These few items called out here are by no means an exhaustive or complete list but do represent many of the significant areas I see in both small and large PagerDuty customer environments and spend the most time optimizing for them.</p>



<p><strong><em>Your PagerDuty Foundation Isn’t Ready for Event Intelligence, Visibility, Analytics and Modern Incident Response!</em></strong></p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img decoding="async" src="https://upload.wikimedia.org/wikipedia/en/9/95/Crooked_house_dudley.jpg" alt="" width="193" height="145"/><figcaption>&#8220;Weak Foundation?&#8221;</figcaption></figure></div>



<p>When the sum of all the PagerDuty parts converge in a best practice configuration, PagerDuty’s platform capabilities ensure people (responder, team lead, manager, exec, etc) receive notifications with the right context at the right time so the appropriate response can be taken.</p>



<p>If the context conveyed via a PagerDuty service and incoming events is super generalized or named after a monitoring tool like &#8220;Nagios Service&#8221;, the ability to respond with the right urgency, understanding (context) and then take the appropriate action can be significantly impacted.</p>



<ul class="wp-block-list"><li><em>For example, if an on-call responder is paged at 3 AM for a problem with the “Nagios Service”, what’s the appropriate response? Does the &#8220;SERVICE_DESC&#8221; in your Nagios Alerts prompt the desired response?</em></li><li><em>If the MTTA/R is increasing for the “Nagios Service”, what is the root cause? Is it due to a single server or systemic problem across all the things, certain teams?</em></li><li><em>There can only be one Escalation Policy (EP) for that “Monitoring Service”. This means all events from Nagios into your &#8220;Nagios Service&#8221; go to the same responder(s) or schedule(s)! If you own it all, great, but chances are you&#8217;ve got many responsible groups to deal with.</em></li><li><em>There can only be one <strong>automated</strong> Response Play for that “Monitoring Service”. Mature operations teams seek to automate operational response where seconds count using automated responses with very specific Response Plays for applications, functional technology types, specific teams or responders.  This isn’t possible due to the limitations of a single automated Response Play for your “Monitoring Service”. Don&#8217;t hit the big red panic button for 60% disk full events! (* Multiple Response Plays can be configured and launched manually via the Incident UI or Mobile App.)</em></li><li><em>Responder Notification (Urgency) is broadly applied (High Urgency by default &#8211; aka &#8220;Wake You Up at 3 AM Setting&#8221;) to everything that may be coming in rather than specifically applied based on the required response. Maybe you want to use PagerDuty&#8217;s Dynamic Notifications on that &#8220;Monitoring Service&#8221; but do you &#8216;trust&#8217; that incoming events have a severity that accurately maps to the needed urgency of an on-call responder&#8217;s response? I&#8217;ll bet that you&#8217;re probably sending in everything as &#8216;CRITICAL&#8217; anyway. If 1 of 20 servers in your web tier has a &#8216;CRITICAL&#8217; disk failure &#8211; does that warrant a high urgency page at 3 AM?</em></li></ul>



<p><strong><em>Sometimes Things [ Are | Are NOT ] Better Together!</em></strong></p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img decoding="async" src="https://data.whicdn.com/images/251841015/superthumb.jpg?t=1469721452" alt="" width="202" height="168"/><figcaption>mmmm bacon&#8230;</figcaption></figure></div>



<p>One of our better practices is to use Alert Grouping as a means of controlling the noise from poorly configured thresholds or alerting logic, or just plain old “SHTF” situations and alert storms that happen in any ops environment.&nbsp; Without the use of something like PagerDuty&#8217;s Time-Based Alert Grouping (TBAG), every single incoming event results in a unique incident, which sends notifications to the on-call responder(s), rinse and repeat for every&#8230;single&#8230;event.</p>



<p>The situation that many customers fear when talking about &#8220;smart stuff&#8221; that is supposed to do whiz-bang grouping, correlating or other AI-ML-EIEIO magic is that the wrong alerts are grouped and things get missed. </p>



<p>PagerDuty TBAG is a hard, time-based approach to group things so if a Network Link 5% Packet Loss event (BFD!) happens in the same time window as a&nbsp;MySQL Process Failure event (Oh, shit!), those things likely don’t relate yet they are grouped together. The first event&#8217;s description becomes the incident’s description and someone is paged for the Network Link 5% Packet Loss item and the on-call responder dismissed that incident b/c their quick scan of the incident in the mobile app doesn’t prompt closer investigation or an urgent response. All the while, the critical business impacting MySQL Process Failure alert is unnoticed as it’s grouped in with the Network Link 5% Packet Loss incident. See why the concern? Not a fun discussion with the boss&#8230;</p>



<p>PagerDuty&#8217;s Intelligent Alert Grouping (IAG) ‘learns’ based upon historical TBAG grouping and responders manually merging alerts into incidents. If IAG makes sense in your future (and it will unless responders are dedicated to doing this manual correlation and merging, it can be challenging to do this within the PD Alert UI), you won&#8217;t want to influence what IAG may do with bogus groups that could happen with broad based “Monitoring Services”.</p>



<p>Net net here is you probably don&#8217;t want to use alert grouping on big, broad based &#8220;Monitoring Services&#8221; for fear that things are grouped incorrectly and something uber important is missed. </p>



<p><strong><em>The Journey along the “Signal to Insight to Action” Path Leads to a Peaceful On-Call Experience!</em></strong></p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img decoding="async" src="https://cdn-images-1.medium.com/max/714/1*OrfT4OOCuXzxuraUOKRFUg.jpeg" alt="" width="218" height="152"/><figcaption>You can get there&#8230;</figcaption></figure></div>



<p>All PagerDuty customers are entitled to use Global Event Routing and certain Global Event Rules to process and route incoming events to the appropriate service. If you&#8217;re following the default Nagios &#8211; PagerDuty integration guide and directly integrating with the service, you&#8217;re <g class="gr_ gr_99 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="99" data-gr-id="99">bypas</g>sing this very powerful feature.</p>



<p>Building upon this basic Global Event Routing capability is the broader Event Intelligence offering and its own associated Global Event Rules providing a growing toolbox of capabilities to deal with the operational realities of your environment. </p>



<p><strong><em>When deployed properly you&#8217;ll efficiently move from signal to insight to action by ensuring the right events land on the right services at the right time so the right responder/team have the right context to take the right action.</em></strong> Whew, that&#8217;s a mouthful &#8211; but that&#8217;s the real goal here right? If you could avoid waking up Fred, Sally and Shika at 3 AM with non-actionable, low urgency events, WHY WOULDN&#8217;T YOU WANT TO DO THAT?</p>



<p><strong>Any of this sound familiar</strong><g class="gr_ gr_52 gr-alert gr_gramm gr_inline_cards gr_run_anim Style replaceWithoutSep" id="52" data-gr-id="52"><strong>?</strong></g></p>



<ul class="wp-block-list"><li><em>Alert fatigue from too much noise in your monitoring tools? No problem, there’s a rule for dealing with that!</em></li><li><em>False positive alerts waking people up at 3 AM due to reoccurring maintenance windows? No problem, there’s a rule for dealing with that!</em></li><li><em>Crappy alert metadata leading to missed issues or long MTTA/R because on-call responders don’t grok what the alert is trying to tell them or don’t know what to do next? No problem, there’s a rule for dealing with that!</em></li></ul>



<p><strong><em>Don’t Let “Business As Usual” or &#8220;We&#8217;ve Always Done it This Way&#8221; Hold You Back!</em></strong></p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://powerupyourmarketing.com/wp-content/uploads/2018/05/Negative_Patterns.jpg" alt="" width="216" height="144"/><figcaption>Insanity?</figcaption></figure></div>



<p>Imagine a situation where Nagios is deployed and monitoring ALL of your infrastructure &#8211; dozens, hundreds maybe thousands of nodes, services, interfaces, URLs, etc. <strong>This would take considerable time and effort to move away from! (Worse, you probably have at least a dozen tools all set up similarly with PagerDuty!)</strong></p>



<p>Imagine the sheer amount of manual work to move from your “Business as Usual” configuration of Nagios and PagerDuty &#8220;Monitoring Services&#8221; to something better &#8211; maybe you&#8217;re nervously thinking how you might unpack your &#8220;Nagios Service&#8221; &#8211; it may go something like this:</p>



<ul class="wp-block-list"><li><em>Discover and map out exactly what’s being monitored by Nagios <strong>&#8211; &#8220;I think Nagios Ned can help me with that…&#8221;</strong></em></li><li><em>Discover server, application, ‘thing’ owners <strong>&#8211; &#8220;ugh, I have to talk with that group/person&#8230;&#8221;</strong></em></li><li><em>Discover context of what that &#8216;thing&#8217; does, what it supports, what is impacted when problems found <strong>&#8211; &#8220;uh oh, I’m feeling really uncomfortable…&#8221;</strong></em></li><li><em>Discover what the appropriate operational response needs to be for all event classes/types and who’s responsible <strong>&#8211; &#8220;more meetings…fml&#8230;&#8221;</strong></em></li><li><em>Translate all of the above to appropriate PagerDuty configurations following best practices <strong>&#8211; &#8220;a whole lot of point+click coming my way…&#8221;</strong></em></li><li><em>…</em></li></ul>



<p><em>There is a much better way and I have some ‘magic pixie dust’ that can help you optimize this!</em></p>



<p><strong><em>Where do we go from here?</em></strong></p>



<p>The next few posts I&#8217;ve got in mind build out something like this:</p>



<ul class="wp-block-list"><li>Growing up from the Nagios &#8211; PagerDuty defaults &#8211; Crawling away from the default &#8220;Monitoring Service&#8221;</li><li>Introducing the Global Event Routing API &#8211; Walking in with your eyes wide open</li><li>Extending Nagios with Custom Attributes &#8211; Running with PagerDuty like a champ</li><li>Applying Event Intelligence to improve your Nagios + PagerDuty experience for on-call responders</li><li>Magic Pixie Dust &#8211; How PagerDuty can help you ADAPT to a better way of doing things in ops and on-call when using Nagios</li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nagios XI &#038; PagerDuty: The path to a “Monitoring Service”</title>
		<link>https://dougmcclure.net/blog/2019/01/nagios-xi-pagerduty-the-path-to-a-monitoring-service/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Tue, 08 Jan 2019 18:05:46 +0000</pubDate>
				<category><![CDATA[Integrations]]></category>
		<category><![CDATA[PagerDuty]]></category>
		<category><![CDATA[PagerDuty Best Practices]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios XI]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=7889</guid>

					<description><![CDATA[Nagios (Core/XI) is one of the top 5 most widely integrated tools across PagerDuty’s 10K+ customers providing fundamental host and service monitoring and alerting capabilities. During my time here at PagerDuty, I’ve had the opportunity to work with very very large and well established enterprises and the latest up and coming start-ups / DevOps teams [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Nagios (Core/XI) is one of the top 5 most widely integrated tools across PagerDuty’s 10K+ customers providing fundamental host and service monitoring and alerting capabilities. During my time here at PagerDuty, I’ve had the opportunity to work with very very large and <g class="gr_ gr_10 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling multiReplace" id="10" data-gr-id="10">well established</g> enterprises and the latest up and coming start-ups / DevOps teams all still relying on good old Nagios monitoring for their infrastructure. I remember the SysAdmin teams I worked with back in the 2000’s using early versions of Nagios, it’s certainly been around for a long time and works well for the basics.</p>



<p>From what I’ve seen, many of PagerDuty’s customers take a “set it and forget it” approach in their integrations. They’ve followed the super simple integration guide (e.g. <a rel="noreferrer noopener" aria-label="Nagios XI (opens in a new tab)" href="https://www.pagerduty.com/docs/guides/nagios-xi-integration-guide" target="_blank">Nagios XI</a>) and created a “monitoring service” in PagerDuty. In this configuration, Nagios host or service templates are updated to send all Nagios alerts to one single PagerDuty service integration key (the “PagerDuty Contact” <g class="gr_ gr_7 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del" id="7" data-gr-id="7">pager</g> number) and ALL alerts are sent to PagerDuty notifying on-call responders of the latest Nagios alert. The key here with this default configuration is that everything monitored in Nagios whether it is a Windows or Linux server, network device, database or web server, all of the alert notifications are sent to the same “PagerDuty Contact” (the PagerDuty service) and notify whoever is on that single service&#8217;s escalation policy. Most integration guides include an FAQ section at the bottom&nbsp;of the guide with pointers on extending the default integration to address this, but few seem to go down this path. This default configuration pattern isn’t the best practice for an ideal operational response and use of PagerDuty.</p>



<p>When I say “set it and forget it”, what I’m really saying is that the integration well-established up so quickly and ‘just works’, that teams just <g class="gr_ gr_24 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="24" data-gr-id="24">move</g> on to the next thing vying for their attention in their environment and accept what they have as ‘good enough’.&nbsp; Some teams have more maturity within their team/processes or have dedicated FTEs solely responsible for the care and feeding of their Nagios configurations as part of their configuration management, CI/CD or similar release process.&nbsp; Over time, the daily demands of the business and ops prohibit going back and optimizing the Nagios to PagerDuty integration to properly address many of the shortcomings in the default integration guide available today.</p>



<p>What I’d like to drill in on here are a few of these default configurations and their resulting alert, incident and reporting artifacts within PagerDuty and the operational implications over the next few blog posts how to move beyond the defaults to a best practice configuration in both Nagios and PagerDuty.</p>



<p><strong>The Guts of the Nagios XI &#8211; PagerDuty Default Integration</strong></p>



<p>The core of the PagerDuty &#8211; Nagios XI integration comes down to two parts, the Nagios XI Contact configuration and the Nagios XI Command (and associated pd-nagios python script). Essentially, the contact defines the alert notification conditions and whom (or what) to send the notification details to and the command receives the alert notification metadata (via Nagios macros) and passes this data into the pd-nagios script resulting in a post to the PagerDuty Event API v1.</p>



<p>In the service notification example below, when a service alert is triggered on a host, the configured contact alert conditions are evaluated the service notification command is executed. The default ‘notify-service-by-pagerduty’ command is called passing in a number of parameters to the pd-nagios python script.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="2884" height="140" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-8.43.05-AM.png" alt="" class="wp-image-7891" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-8.43.05-AM.png 2884w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-8.43.05-AM-300x15.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-8.43.05-AM-768x37.png 768w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-8.43.05-AM-1024x50.png 1024w" sizes="auto, (max-width: 2884px) 100vw, 2884px" /></figure>



<p><strong>Command Line:</strong> /usr/share/pdagent-integrations/bin/pd-nagios -n service -k $CONTACTPAGER$ -t &#8220;$NOTIFICATIONTYPE$&#8221; -f SERVICEDESC=&#8221;$SERVICEDESC$&#8221; -f SERVICESTATE=&#8221;$SERVICESTATE$&#8221; -f HOSTNAME=&#8221;$HOSTNAME$&#8221; -f SERVICEOUTPUT=&#8221;$SERVICEOUTPUT$&#8221;</p>



<p>This simple Nagios command and associated executable script and parameters <g class="gr_ gr_4 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="4" data-gr-id="4">is</g> where everything comes together. Let&#8217;s review this in more detail.</p>



<p><strong>-n [service|host]: notification_type:</strong> This parameter is used to signify if this is a service or host notification from Nagios. It&#8217;s used in the <g class="gr_ gr_7 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="7" data-gr-id="7">pd</g>&#8211;<g class="gr_ gr_6 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="6" data-gr-id="6">nagios</g> script to set up which macro values are mapped into PagerDuty event payload fields. This value is displayed in the alert key field.</p>



<p><strong>-k $CONTACTPAGER$</strong>: This is the <g class="gr_ gr_52 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" id="52" data-gr-id="52">pager</g> number/address for the Nagios contact. This value is taken from the&nbsp;<em><g class="gr_ gr_6 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" id="6" data-gr-id="6"><a rel="noreferrer noopener" aria-label="pager (opens in a new tab)" href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/macrolist.html#contactpager?" target="_blank">pager</a></g></em>&nbsp;directive in the&nbsp;<a href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectdefinitions.html#contact">contact definition</a>. &nbsp;This macro value maps into the PagerDuty <a rel="noreferrer noopener" aria-label="Event API v1 (opens in a new tab)" href="https://v2.developer.pagerduty.com/docs/events-api?" target="_blank">Event API v1</a>  <strong>service_key</strong> field and represents the &#8220;Integration Key&#8221; for the Nagios XI integration configured on the PagerDuty service. This could also be an integration key for a Custom Event Transformer (CET) or the Global Event Routing API key. Set in step #12 of the PagerDuty &#8211; Nagios XI integration guide.</p>



<p><strong>-t $NOTIFICATIONTYPE$</strong>: A string identifying the type of <a rel="noreferrer noopener" aria-label="notification (opens in a new tab)" href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/macrolist.html#notificationtype " target="_blank">notification</a> that is being sent (&#8220;PROBLEM&#8221;, &#8220;RECOVERY&#8221;, &#8220;ACKNOWLEDGEMENT&#8221;, &#8220;FLAPPINGSTART&#8221;, &#8220;FLAPPINGSTOP&#8221;, &#8220;FLAPPINGDISABLED&#8221;, &#8220;DOWNTIMESTART&#8221;, &#8220;DOWNTIMEEND&#8221;, or &#8220;DOWNTIMECANCELLED&#8221;). This macro value maps into the PagerDuty <a rel="noreferrer noopener" href="https://v2.developer.pagerduty.com/docs/events-api%EF%BB%BF" target="_blank">Event API v1</a> <strong>event_type</strong> field. Nagios XI “PROBLEM” maps to event_type ‘trigger’, “ACKNOWLEDGEMENT” maps to event_type ‘acknowledge’ and “RECOVERY” maps to event_type ‘resolve’.</p>



<p><strong>-f $SERVICEDESC$</strong>: The long name/description of the service (i.e. &#8220;Main Website&#8221;). This value is taken from the&nbsp;<em><a rel="noreferrer noopener" aria-label="service_description (opens in a new tab)" href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/macrolist.html#servicedesc" target="_blank">service_description</a></em>&nbsp;directive of the&nbsp;<a href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectdefinitions.html#service">service definition</a>. This macro value is used in the PagerDuty incident description, alert key, service and custom details fields.</p>



<p><strong>-f $SERVICESTATE$</strong>: A string indicating the <a rel="noreferrer noopener" aria-label="current state (opens in a new tab)" href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/macrolist.html#servicestate?" target="_blank">current state</a> of the service (&#8220;OK&#8221;, &#8220;WARNING&#8221;, &#8220;UNKNOWN&#8221;, or &#8220;CRITICAL&#8221;).  This macro value maps into the PagerDuty <a rel="noreferrer noopener" href="https://v2.developer.pagerduty.com/docs/events-api%EF%BB%BF" target="_blank">Event API v1</a> <strong>severity</strong> field and is used in the PagerDuty incident description, severity, state and custom details fields.</p>



<p><strong>-f $HOSTNAME$</strong>: Short name for the host (i.e. &#8220;<g class="gr_ gr_6 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" id="6" data-gr-id="6">biglinuxbox</g>&#8220;). This value is taken from the&nbsp;<em><a rel="noreferrer noopener" aria-label="host_name (opens in a new tab)" href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/macrolist.html#hostname" target="_blank">host_name</a></em>&nbsp;directive in the&nbsp;<a href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectdefinitions.html#host">host definition</a>. This macro value is used in the PagerDuty incident description, alert key, source, host and custom details fields.</p>



<p><strong>-f $SERVICEOUTPUT$</strong>: The first line of text <a rel="noreferrer noopener" aria-label="output (opens in a new tab)" href="https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/macrolist.html#serviceoutput" target="_blank">output</a> from the last service check (i.e. &#8220;Ping OK&#8221;).  This macro value is used in the PagerDuty incident service output and custom details fields.</p>



<p><strong>The results of the Nagios XI &#8211; PagerDuty Default Integration</strong></p>



<p>Let&#8217;s explore how this default Nagios XI &#8211; PagerDuty integration looks as seen in various places the alert and incident could be displayed. We&#8217;ll use this Nagios XI alert as the example.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="852" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.08.31-AM-1024x852.png" alt="" class="wp-image-7894" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.08.31-AM-1024x852.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.08.31-AM-300x250.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.08.31-AM-768x639.png 768w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.08.31-AM.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>This Nagios XI disk alert will trigger the &#8216;notify-service-by-pagerduty&#8217; command and pass the macro values to the PagerDuty Event API v1 resulting in a new PagerDuty alert.</p>



<p>This is the resulting PagerDuty alert display within the Alert tab. Note that I customized the column display to show the additional columns that could display alert information.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="530" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.22.46-AM-1024x530.png" alt="" class="wp-image-7895" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.22.46-AM-1024x530.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.22.46-AM-300x155.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.22.46-AM-768x398.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If &#8220;View Message&#8221; is clicked on in the lower left corner, a portion of the PagerDuty Event API v1 payload can be seen.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="526" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.24.37-AM-1024x526.png" alt="" class="wp-image-7896" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.24.37-AM-1024x526.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.24.37-AM-300x154.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.24.37-AM-768x395.png 768w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.24.37-AM.png 1856w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>By clicking on the alert summary I can open the alert&#8217;s detailed display.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="804" height="1024" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.27.12-AM-804x1024.png" alt="" class="wp-image-7899" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.27.12-AM-804x1024.png 804w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.27.12-AM-235x300.png 235w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.27.12-AM-768x979.png 768w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.27.12-AM.png 1466w" sizes="auto, (max-width: 804px) 100vw, 804px" /></figure>



<p>By clicking on the link next to &#8220;Related to Incident:&#8221;, the PagerDuty incident details is displayed.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="896" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.30.17-AM-1024x896.png" alt="" class="wp-image-7900" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.30.17-AM-1024x896.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.30.17-AM-300x262.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.30.17-AM-768x672.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If the PagerDuty user has configured their notification preferences to receive email, this is what they would be sent.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="886" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.32.52-AM-1024x886.png" alt="" class="wp-image-7901" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.32.52-AM-1024x886.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.32.52-AM-300x260.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.32.52-AM-768x665.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If the PagerDuty user has configured their notification preferences to receive push notifications on the PagerDuty mobile app, this is what they&#8217;d see for the incident and alert detail.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="843" src="http://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.35.01-AM-1024x843.png" alt="" class="wp-image-7902" srcset="https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.35.01-AM-1024x843.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.35.01-AM-300x247.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2019/01/Screen-Shot-2019-01-08-at-9.35.01-AM-768x632.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>In the next blog post, I&#8217;ll call out some of the reasons why running in this default configuration isn&#8217;t best practice and how this impacts an ops team&#8217;s response when using PagerDuty. I&#8217;ll also lay out the next steps that can be taken to move towards better practices when integrating Nagios with PagerDuty.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>In the Beginning &#8211; The “Monitoring Service”</title>
		<link>https://dougmcclure.net/blog/2018/12/in-the-beginning-the-monitoring-service/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Fri, 28 Dec 2018 14:42:16 +0000</pubDate>
				<category><![CDATA[Event Intelligence]]></category>
		<category><![CDATA[Event Routing]]></category>
		<category><![CDATA[Event Rules]]></category>
		<category><![CDATA[PagerDuty]]></category>
		<category><![CDATA[PagerDuty Best Practices]]></category>
		<category><![CDATA[Service Design]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Nagios XI]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=7884</guid>

					<description><![CDATA[Follow one of PagerDuty’s integration guides for common monitoring tools and you’ll quite easily end up with your very own “Monitoring Service” and open the floodgates for incoming signals, alerts or events from that tool now triggering PagerDuty alerts and incidents. In the end, hopefully, you’ll be paging the right on-call person at the right [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Follow one of PagerDuty’s integration guides for common monitoring tools and you’ll quite easily end up with your very own “Monitoring Service” and open the floodgates for incoming signals, alerts or events from that tool now triggering PagerDuty alerts and incidents. In the end, hopefully, you’ll be paging the right on-call person at the right time! PagerDuty makes it super easy to get started with this design pattern no matter the tool in your environment thanks to over 300+ integrations in our portfolio today. &nbsp;</p>



<p>Your “Monitoring Services” may resemble something like “Nagios XI -Datacenter 1” or “Splunk &#8211; Atlanta” or just plain old “New Relic”. I see them in all shapes and sizes across customers in all parts of the world and every industry and size. Internally here at PagerDuty, in addition to calling these “Monitoring Services” we also often refer to them as “Catch All Services”, “Event Sink Services”, or “Datacenter Services” because they do one thing well &#8211; catch all incoming signals, alerts or events in one single PagerDuty service and notify someone based upon the single escalation policy associated with that service.&nbsp;Works, but maybe not so well in the long run.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="376" src="http://dougmcclure.net/blog/wp-content/uploads/2018/12/MonitoringServiceExample-1024x376.png" alt="" class="wp-image-7885" srcset="https://dougmcclure.net/blog/wp-content/uploads/2018/12/MonitoringServiceExample-1024x376.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2018/12/MonitoringServiceExample-300x110.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2018/12/MonitoringServiceExample-768x282.png 768w, https://dougmcclure.net/blog/wp-content/uploads/2018/12/MonitoringServiceExample.png 1608w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The speed and ease at which you can integrate tools into PagerDuty <g class="gr_ gr_13 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="13" data-gr-id="13">is</g> awesome.&nbsp; In a very short time, you’re up and running getting value from PagerDuty.&nbsp; Any responder or any schedule on the escalation policy associated with these kinds of services will get paged. Application Developer team paged for network events, you bet! Security team paged for server <a href="http://foo.bar.com">foo.bar.com</a> disk space events, you got it! On-call responders paged at 3 am for a problem with “New Relic”, a piece of cake. Trying to engage the right team for the right alert/incident is very challenging when you only have one escalation policy to use for anything/everything that might be monitored by your integrated tool.</p>



<p>If you’d like to apply PagerDuty’s best practices for reducing the sheer number of incidents and notifications in this configuration you can simply turn on Time Based Alert Grouping at let&#8217;s say a two-minute grouping window.&nbsp; Group away!&nbsp; Sometime later, the Application Support team reaches out to you confused because there are some weird Cisco Chassis Card Inserted alerts grouped together with their important application incidents. The Storage Ops team pings you in Slack confused by the custom “Front Door Visitor” alert grouped into their DX8000 SAN incident. Time is time and <g class="gr_ gr_13 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling multiReplace" id="13" data-gr-id="13">Time Based</g> Alert Grouping is just doing its job perfectly across the mega “Monitoring Service”.</p>



<p>Ease and speed aside, as you can see above with not so subtle examples that there are a number of drawbacks from following the “Monitoring Service” design pattern and this configuration certainly isn’t a ‘best practice’.&nbsp; Over the next few blog posts, I’d like to take you along on a better practice journey by exploring PagerDuty’s service design best practices and our Event Intelligence product through practical applications when using Nagios XI.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cough, cough&#8230;.</title>
		<link>https://dougmcclure.net/blog/2018/12/cough-cough/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Thu, 27 Dec 2018 19:18:02 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=7866</guid>

					<description><![CDATA[Uggh, so much dust around here. I&#8217;m thankful for the power of my Dyson vacuum as I&#8217;m going to need it to get this blog back into some presentable shape for 2019. Let me start with this as a means of pushing some of the old stuff off the main page. 🙂]]></description>
										<content:encoded><![CDATA[
<p>Uggh, so much dust around here. I&#8217;m thankful for the power of my Dyson vacuum as I&#8217;m going to need it to get this blog back into some presentable shape for 2019. Let me start with this as a means of pushing some of the old stuff off the main page. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A Day in the Life in NextGenCo&#8217;s Digital Transformation Journey</title>
		<link>https://dougmcclure.net/blog/2017/03/a-day-in-the-life-in-nextgencos-digital-transformation-journey/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Thu, 30 Mar 2017 19:36:47 +0000</pubDate>
				<category><![CDATA[#codename:Eleanor]]></category>
		<category><![CDATA[ChatBot]]></category>
		<category><![CDATA[ChatOps]]></category>
		<category><![CDATA[Cognitive]]></category>
		<category><![CDATA[Cognitive Bot]]></category>
		<category><![CDATA[IBM Cloud Product Insights]]></category>
		<category><![CDATA[IBM Watson]]></category>
		<category><![CDATA[BlueMix]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[Conversation]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[IT Admin]]></category>
		<category><![CDATA[IT Ops]]></category>
		<category><![CDATA[IT SME]]></category>
		<category><![CDATA[Slack]]></category>
		<category><![CDATA[Watson]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=3208</guid>

					<description><![CDATA[I invite you to spend a few minutes reading this background story about the fictitious NextGenCo and ponder for a few minutes if it resonates with you and a day in your life? If so, pay particular attention to this last paragraph where I&#8217;m setting the stage for future blog posts and an invitation for [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="featured_image_link" href="https://dougmcclure.net/blog/2017/03/a-day-in-the-life-in-nextgencos-digital-transformation-journey/"><img loading="lazy" decoding="async" width="500" height="300" src="https://dougmcclure.net/blog/wp-content/uploads/2017/04/fig-10-04-2017_21-33-58.jpg" class="attachment-full size-full wp-post-image" alt="" /></a><br />
I invite you to spend a few minutes reading this background story about the fictitious NextGenCo and ponder for a few minutes if it resonates with you and a day in your life? If so, pay particular attention to this last paragraph where I&#8217;m setting the stage for future blog posts and an invitation for you to get involved!</p>
<p><em>NextGenCo is a decades-old enterprise rapidly accelerating their digital transformation and adoption of hybrid cloud architectures using IBM Bluemix to expand their Application Platform offerings. With many datacenters supporting their global operations, they are quickly modernizing by deploying more and more of their Application Platform infrastructure within IBM&#8217;s Bluemix Cloud. Every department is challenged by the CIO to improve availability, reliability, quality and spending within their areas of the business. </em></p>
<p>Not only are the changes being made in the infrastructure, technologies and architecture used to support their hybrid cloud pattern, but changes within the NextGenCo culture are happening as well to become more agile and collaborative across business and technology silos of their past. The adoption of DevOps practices such as continuous integration and delivery and use of tools like Slack for open, transparent collaboration, ChatOps and getting work done much more efficiently are helping their teams realize the benefits of NextGenCo&#8217;s more modern competitors.</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-3213" src="http://dougmcclure.net/blog/wp-content/uploads/2017/03/ANDY1-e1490898167393.png" alt="Andy, the IT Admin" width="50" height="51" /> Andy is a member of the Application Platform delivery team supporting key business applications within the NextGenCo environment. Andy&#8217;s primary role is as the lead IT Admin supporting WebSphere Application Servers (WAS) and various other middleware software used in the NextGenCo Application Platform.</p>
<p>As the lead WAS Admin, Andy spends considerable time worrying about the health, welfare and security of their WAS environment within the Application Platform and the business applications that depend on it. Andy&#8217;s team is constantly challenged to meet the demanding needs of the business with an ever-changing application environment. He is regularly challenged to cut costs, reduce spending and do more with less.</p>
<p>His team is overworked resulting in lower priority (yet important) work such as upgrades, maintenance and housekeeping often put off for extended periods of time.</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-3212" src="http://dougmcclure.net/blog/wp-content/uploads/2017/03/JIM1-e1490898309625.png" alt="Jim, the IT SME" width="50" height="50" /> Andy works with Jim who&#8217;s one of the top SMEs in the engineering department. Jim is one of the super-heroes often involved in complex application problems involving WAS and someone Andy can count on for help during outages as well as more challenging WAS maintenance planning.</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-3211" src="http://dougmcclure.net/blog/wp-content/uploads/2017/03/ANNE1-e1490898345868.png" alt="Anne, the Capacity Planner" width="50" height="50" /> He also relies heavily on Anne who runs Capacity Planning for the Application Platform. Much of the project work Andy’s team is responsible for comes from Anne’s upgrade change requests to support growth in the Application Platform.</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-3210" src="http://dougmcclure.net/blog/wp-content/uploads/2017/03/RJ1-e1490898412202.png" alt="RJ, the Ops Engineer" width="50" height="50" /> <img loading="lazy" decoding="async" class="alignleft size-full wp-image-3209" src="http://dougmcclure.net/blog/wp-content/uploads/2017/03/ANNETTE1-e1490898440886.png" alt="Annette, the IT Ops First Responder" width="50" height="50" /> Andy also has a close working relationship with RJ and Annette in the IT Ops organization. Andy, RJ and Annette collaborate and communicate within the NextGenCo Slack team where everyone is kept up to date with progress updates when problems occur or when Andy is executing change requests within the production WAS environment supporting NextGenCo&#8217;s critical business applications running on the Application Platform.</p>
<p>Andy&#8217;s team uses dozens of corporate tools, 3rd party software products, spreadsheets and data to ensure his team meets their commitments to the IT organization, CIO and the LoB. His team is measured against traditional IT metrics such as availability and performance service levels, IT budget Capex, Opex and expense targets as well as service quality (# outages, # incidents, MTTR).</p>
<p>As a leader, Andy desires to improve his team&#8217;s chemistry and work-life balance by looking for ways technology and process improvements could help them be more successful. Andy is always looking to get more done in his day. He regularly makes use of his time during his morning train ride into the office to plan his team&#8217;s daily priorities. <strong>From his iPad, Andy is able to quickly gain insights into his environment by asking Eleanor, his Watson Powered Cognitive ChatBot, &#8220;What&#8217;s Up?&#8221; within his Slack team.</strong></p>
<p>What would a day in your life look like if you had a IBM Watson powered cognitive assistant or ChatBot available to help you with your day-to-day work planning and execution? What if those mundane tasks, workflows and problem escalations could be radically simplified and augmented by your own bot, right where you are already having conversations and doing work? Watch for future blog posts as I take you along a cognitive journey demonstrating how Eleanor can help transform a day in your life supporting IBM middleware.</p>
<p>If you&#8217;re interested in exploring how IBM&#8217;s Watson and cognitive capabilities and experiences such as a cognitive assistant or ChatBot could come to life in your environment and for your IT roles like Andy, Jim, Anne, RJ or Annette please consider joining our next trial of #codename:Eleanor, our platform for multiple cognitive use cases within Cloud, IT, Network and DevOps teams. #codename:Eleanor will be first exposed within the new <a href="https://www.ibm.com/us-en/marketplace/product-insights" target="_blank" rel="noopener">IBM Cloud Product Insights offering</a> supporting IBM middleware such as WebSphere, Liberty, MQ, IIB and ODM (many more to come). Check out the detailed offering page within IBM Bluemix <a href="https://console.ng.bluemix.net/catalog/services/product-insights?env_id=ibm:yp:us-south" target="_blank" rel="noopener">here</a> for details on supported versions and how to get started with the core offering. If you&#8217;re an Andy, Jim or Anne supporting these applications, I want to help you experience Eleanor!</p>
<p>Sign up here for the April start of the <a href="http://ibm.biz/ProductInsightsTrial" target="_blank" rel="noopener">IBM Cloud Product Insights &#8211; Cognitive Trial</a> or feel free to reach out to me directly for more information at dmcclure@us.ibm.com.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WYNTK about IBM Operations Analytics &#8211; Log Analysis v1.3.x</title>
		<link>https://dougmcclure.net/blog/2015/06/wyntk-about-ibm-operations-analytics-log-analysis-v1-3-x/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Mon, 15 Jun 2015 14:07:39 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Anomaly Detection]]></category>
		<category><![CDATA[Event Analytics]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IBM Log Analytics]]></category>
		<category><![CDATA[IT Operations Analytics]]></category>
		<category><![CDATA[Log Analytics]]></category>
		<category><![CDATA[Logstash]]></category>
		<category><![CDATA[IOLA]]></category>
		<category><![CDATA[IT Ops]]></category>
		<category><![CDATA[itoa]]></category>
		<category><![CDATA[Log Analysis]]></category>
		<category><![CDATA[search]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=3185</guid>

					<description><![CDATA[Here we are again with another quarterly release of IBM&#8217;s Log Analysis solution. About three months ago or so we released version 1.3.0 and this week we&#8217;re releaseing version 1.3.1 full of all kinds of log ninja goodness. Let me get some basics out in this first post. ITOA Community and GitHub Our new (and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://dougmcclure.net/blog/2015/06/wyntk-about-ibm-operations-analytics-log-analysis-v1-3-x/" title="read more"><img loading="lazy" decoding="async" class="post_image" src="http://dougmcclure.net/blog/wp-content/uploads/2014/08/Logging_in_Finnish_Lapland-300x200.jpg" width="300" height="200" alt="WYNTK about IBM Operations Analytics &#8211; Log Analysis v1.3.x post image" /></a></p>
<p>Here we are again with another quarterly release of IBM&#8217;s Log Analysis solution.  About three months ago or so we released version 1.3.0 and this week we&#8217;re releaseing version 1.3.1 full of all kinds of log ninja goodness. Let me get some basics out in this first post.</p>
<p><strong>ITOA Community and GitHub</strong></p>
<p>Our new (and hopefully final!) community was launched during the IBM Interconnect conference and is available <a href="https://developer.ibm.com/itoa/" target="_blank">here</a>.  It&#8217;s here you&#8217;ll find blogs, wikis, forums and our resources catalog full of all kinds of things to help you get started with our ITOA portfolio.  What&#8217;s even cooler is our GitHub community linked in here where our SMEs, partners and clients can share their own best practices, configurations and code.  Check that out <a href="https://github.com/IBM-ITOAdev" target="_blank">here</a>.</p>
<p>Keep a close eye here as the catalog of available content packs rapidly grows.  We expect upwards of 100 new content packs to be available over the coming year.</p>
<p><strong>Documentation</strong></p>
<p>It&#8217;s always fun to try and find the docs isn&#8217;t it?  Here&#8217;s some quick links to the online pubs.</p>
<p><strong><a href="http://www-01.ibm.com/support/knowledgecenter/SSPFMY_1.3.1/com.ibm.scala_1.3.1.doc/kc_welcome-scala.html?lang=en" target="_blank">v1.3.1: Pubs</a></strong><br />
<strong><a href="http://www-01.ibm.com/support/knowledgecenter/SSPFMY_1.3.1/com.ibm.scala_1.3.1.doc/relnotes/c_scala_rn_overview.html?lang=en" target="_blank">v1.3.1: Release Notes</a></strong></p>
<p><strong><a href="http://www-01.ibm.com/support/knowledgecenter/SSPFMY_1.3.0/com.ibm.scala_1.3.0.doc/kc_welcome-scala.html" target="_blank">v1.3.0: Pubs</a></strong><br />
<strong><a href="http://www-01.ibm.com/support/knowledgecenter/SSPFMY_1.3.0/com.ibm.scala_1.3.0.doc/relnotes/c_scala_rn_overview.html" target="_blank">v1.3.0 Release Notes</a></strong></p>
<p>I&#8217;m not a mainframe guy myself, but if that&#8217;s your cup of tea, here&#8217;s the docs for our mainframe log analysis release. This release is based off of the v1.3.0 mentioned above.</p>
<p><a href="http://www-01.ibm.com/support/knowledgecenter/SS55JD_2.1.0/com.ibm.zosla.doc_210/welcome.html" target="_blank">v2.1.0</a><br />
<a href="http://www-01.ibm.com/support/knowledgecenter/SS55JD_2.1.0/com.ibm.zosla.doc_210/zla_v2100.html" target="_blank">v2.1.0 Release Notes</a></p>
<p>Here are some of the significant features in the v1.3.x release train so far. I&#8217;ll dive deeper into some of these with some how-to&#8217;s in follow on posts.</p>
<ul>
<li>Real Time Alerting, Alert Management GUI</li>
<li>&#8220;Anomaly&#8221; Detection</li>
<li>Logstash 1.4.2 Bundling with custom Logstash Output Plugin for LA</li>
<li>New OOTB Insight Packs &#8211; IBM MQ Series and IBM MQ Broker/Integration Bus</li>
<li>Ticket Analytics &#8211; IBM Control Desk, Service Now and BMC Remedy</li>
<li>Hadoop/HDFS Integrations &#8211; IBM Big Insights 3.x and Cloudera CDH 5.x</li>
<li>Role Based Access Control (RBAC) Phase 1</li>
<li>Auditing</li>
<li>Additional statistical functions for search facets (for use in visualizations and dashboards</li>
<li>Dashboard Auto-Refresh</li>
<li>Globalization for ten languages</li>
<li>Currency for Apache Solr, RHEL and browsers</li>
</ul>
<p>If any of this makes you feel warm and fuzzy, why not grab the free trial version (software or VM) and play around in your environment.  The LA 1.3.0 version is available <a href="https://www-01.ibm.com/marketing/iwm/iwm/web/preLogin.do?source=SCALA" target="_blank">here</a>.  I hope they get the LA 1.3.1 version up there soon, so keep an eye out for it at the same link.</p>
<p>Don&#8217;t hesitate to reach out to me directly if you have any questions or need some help!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Design and Deployment of a BlueMix Dev/Ops Log Solution: Progressing towards Milestone 1</title>
		<link>https://dougmcclure.net/blog/2014/08/design-and-deployment-of-a-bluemix-devops-log-solution-progressing-towards-milestone-1/</link>
					<comments>https://dougmcclure.net/blog/2014/08/design-and-deployment-of-a-bluemix-devops-log-solution-progressing-towards-milestone-1/#comments</comments>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Wed, 13 Aug 2014 18:10:48 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[IBM Log Analytics]]></category>
		<category><![CDATA[IT Operations Analytics]]></category>
		<category><![CDATA[Log Analytics]]></category>
		<category><![CDATA[Logstash]]></category>
		<category><![CDATA[Rsyslog]]></category>
		<category><![CDATA[Smart Cloud Analytics]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=3170</guid>

					<description><![CDATA[To catch up on this series, start back here. We started with a simple deployment planning activity &#8211; get some servers built so we can get the necessary software installed and then and start hacking some configurations together to allow sample data to be collected and indexed and some simple searches and visualizations from that [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://dougmcclure.net/blog/wp-content/uploads/2014/08/Logging_in_Finnish_Lapland.jpg"><img loading="lazy" decoding="async" src="http://dougmcclure.net/blog/wp-content/uploads/2014/08/Logging_in_Finnish_Lapland-300x200.jpg" alt="Logging_in_Finnish_Lapland" width="300" height="200" class="alignleft size-medium wp-image-3174" srcset="https://dougmcclure.net/blog/wp-content/uploads/2014/08/Logging_in_Finnish_Lapland-300x200.jpg 300w, https://dougmcclure.net/blog/wp-content/uploads/2014/08/Logging_in_Finnish_Lapland.jpg 1000w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>To catch up on this series, start back <a href="http://dougmcclure.net/blog/2014/08/swimming-in-the-big-bluemix-sea-design-and-deployment-of-a-log-analysis-solution-for-ibms-bluemix-cloud-foundry-paas/" title="Swimming in the BIG BlueMix Sea – Design and Deployment of a Log Analysis Solution for IBM’s BlueMix Cloud Foundry PaaS">here</a>.</p>
<p>We started with a simple deployment planning activity &#8211; get some servers built so we can get the necessary software installed and then and start hacking some configurations together to allow sample data to be collected and indexed and some simple searches and visualizations from that data to be available.  Enter fun activity #1 &#8211; SoftLayer and associated VPNs.  I would do anything for some way to stay logged into my SoftLayer VPN for longer than a day! Nothing pains me more than having 20 more more putty sessions up and then getting kicked off the VPN when the 24 hour timer ends.  Please tell me how I can change this behavior or have some magical way to reconnect the VPN and all those putty sessions!</p>
<p>My partner Hao on the Dev/Ops team sent me some sample logs from a handful of Cloud Foundry (CF) components including the Cloud Controller and DEA components.  Turns out each CF component type and end point system (CCI &#8211; SoftLayer Cloud Computing Instance) could have upwards of 10-20 different log types. I started out as I do with any project like this and began to immerse myself in the log samples. Before I was asked to start,  Hao started kicking the tires on our Log Analysis solution on his own and hit some of the fundamental challenges in this space in terms of how to get logs in.  He specifically called out logs that were wrapped in JSON, logs with timestamps in Epoch format, logs without timestamps, etc. as a few of his key challenges. </p>
<p>I think most of us in this space always start out in a common way &#8211; find the timestamps, find the message boundaries, find the unique message patterns that might exist within each log type and then think about what meaningful data should be extracted from each log type to enable problem isolation and resolution activities.  I talk to clients about taking an approach for finding a sweet spot in their log analysis architecture between simple consolidation and archival of everything, to enabling everything for search to gaining high value insights from log data.  Just because you have all kinds of logs doesn&#8217;t mean you must send them all into your log solution or invest a lot of time trying to parse and annotate every possible log message into unique and detailed fields. Finding the right balance of effort put into integration, parsing and annotation of logs, frequency of use and the value to the primary persona (Dev/Ops, IT Ops, App/Dev, etc.) are all dimensions and trade offs to consider before starting to boil the ocean. Simple indexing and search can go a long way before deep parsing and annotation is really required across all log types.</p>
<p>What this means to us for our first few milestones is that there are a lot of log types and we don&#8217;t have any firm requirements for what&#8217;s exactly needed yet. We don&#8217;t know which logs will prove to be most valuable to the global BlueMix Fabric Dev/Ops team. Obviously, some of these log types will be more useful in problem isolation and resolution activities.  We want to bring everything in initially in a simple manner and then get that iterative feedback on which logs provide most useful insights and work on parsing and annotating those for high value search, analysis and apps. Out of two dozen unique log sources in the CF environment, we started out by taking an approach that kept things as simple as possible. We wanted to get as much data in as quick as possible so we could get feedback from the global Dev/Ops team on which log types were the most useful to them.</p>
<p>From the beginning of my discussions with the Dev/Ops team, we needed to keep in line with their deployment model, base images and automation approaches as much as possible. We didn&#8217;t want to deploy the Tivoli Log File Agent (actually not supported on Ubuntu anyway) or install anything else to move the log data off the end point systems.  We decided to make use of the standard installation of rsyslog 4.2 (ancient!) on the Ubuntu 10.4 virtual cloud computing instances (CCIs) used within the BlueMix/CF/Softlayer environment. </p>
<p>We&#8217;re using the standard rsyslog imfile module to map in the 10-20 different log files per CCI into the standard rsyslog message format for shipping to a centralized rsyslog server. Each file we ship using imfile gets a functional tag assigned (eg DEA, CCNG, etc) which is useful downstream for filtering and parsing. On the centralized rsyslog server we&#8217;re using a custom template to create a simple CSV output format which we send to logstash for parsing and annotation.  The point here is that we took a simple approach and normalized all of the CF logs to a standard rsyslog format which gives us a number of standardized, well formatted slots single including one slot containing the entire original message content to use downstream.  I&#8217;ll spend an number of posts on rsyslog and logstash later!</p>
<p>Here&#8217;s an example of the typical imfile configuration:</p>
<p><code>### warden.log<br />
$InputFileName /var/vcap/sys/log/warden/warden.log<br />
$InputFileTag DEA_WARDEN_warden<br />
$InputFileStateFile stat-DEA_WARDEN_warden<br />
$InputFileSeverity debug<br />
$InputFileFacility local3<br />
$InputRunFileMonitor</code></p>
<p>This is the template we use to take the incoming rsyslog stream from all of the CCIs and turn it into a simple CSV formatted message structure.  In reality I could even simplify this a bit more by removing a couple of the fields I&#8217;m ultimately not indexing in the Log Analysis solution.</p>
<p><code>template(name="scalaLogFormatDSV" type="list") {<br />
		property(name="timestamp" dateFormat="rfc3339" position.from="1" position.to="19")<br />
		constant(value="Z,")<br />
		property(name="hostname")<br />
		constant(value=",")<br />
		property(name="fromhost")<br />
		constant(value=",")<br />
		property(name="syslogtag")<br />
		constant(value=",")<br />
		property(name="programname")<br />
		constant(value=",")<br />
		property(name="procid")<br />
		constant(value=",")<br />
		property(name="syslogfacility-text")<br />
		constant(value=",")<br />
		property(name="syslogseverity-text")<br />
		constant(value=",")<br />
		property(name="app-name")<br />
		constant(value=",")<br />
		property(name="msg" )<br />
		constant(value="\n")<br />
        }</code></p>
<p>This gives a simple output message format like this for each of the 24 or more log types in this environment.</p>
<p><code>2014-08-07T14:42:17Z,localhost,10.x.x.x,DEA_WARDEN_warden,DEA_WARDEN_warden,-,local3,debug,DEA_WARDEN_warden, {"timestamp":1407422537.8179543,"message":"info (took 0.065380)","log_level":"debug","source":"Warden::Container::Linux","data":{"handle":"123foobar","request":{"handle":"123foobar"},"response":{"state":"active","events":[],"host_ip":"10.x.x.x","container_ip":"10.x.x.x","container_path":"/var/vcap/data/warden/depot/123foobar","memory_stat":"#<warden::protocol::inforesponse::memorystat:0x00000003e611f0>","cpu_stat":"#<warden::protocol::inforesponse::cpustat:0x00000003eae220>","disk_stat":"#<warden::protocol::inforesponse::diskstat:0x0000000401d9a8>","bandwidth_stat":"#<warden::protocol::inforesponse::bandwidthstat:0x00000003f42dd0>","job_ids":[123foobar]}},"thread_id":123foobar,"fiber_id":123foobar,"process_id":123foobar,"file":"/var/vcap/data/packages/warden/43.2/warden/lib/warden/container/base.rb","lineno":300,"method":"dispatch"}</warden::protocol::inforesponse::bandwidthstat:0x00000003f42dd0></warden::protocol::inforesponse::diskstat:0x0000000401d9a8></warden::protocol::inforesponse::cpustat:0x00000003eae220></warden::protocol::inforesponse::memorystat:0x00000003e611f0></code></p>
<p>So much like the picture in this blog post, we&#8217;ve got lots of logs in all shapes and sizes. Some are huge, some are small and we&#8217;re getting them into a uniform format (eg uniform size/length for the log truck) in preparation for getting the most value from them (eg lumber). Up next, shipping an aggregated stream to logstash for parsing these normalized messages</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dougmcclure.net/blog/2014/08/design-and-deployment-of-a-bluemix-devops-log-solution-progressing-towards-milestone-1/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>IBM Log Analysis (SCALA) Tuning App v1</title>
		<link>https://dougmcclure.net/blog/2014/08/ibm-log-analysis-scala-tuning-app-v1/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Fri, 08 Aug 2014 02:19:50 +0000</pubDate>
				<category><![CDATA[IBM Log Analytics]]></category>
		<category><![CDATA[IT Operations Analytics]]></category>
		<category><![CDATA[Log Analytics]]></category>
		<category><![CDATA[Logstash]]></category>
		<category><![CDATA[Machine Data]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Smart Cloud Analytics]]></category>
		<category><![CDATA[elasticsearch]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[kibana]]></category>
		<category><![CDATA[Log Analysis]]></category>
		<category><![CDATA[logstash]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[tuning]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=3159</guid>

					<description><![CDATA[As part of this BlueMix Fabric Log Solution project, getting visibility into everything in my log solution architecture is pretty important. I&#8217;ve got a lot of instrumentation across the end-to-end pipeline so metrics are overflowing in my environment. I started to work on a simple app to pull all of this together so I can [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://dougmcclure.net/blog/wp-content/uploads/2014/08/SCALA-Log-Analysis-Tuning-App-v2.png"><img loading="lazy" decoding="async" src="http://dougmcclure.net/blog/wp-content/uploads/2014/08/SCALA-Log-Analysis-Tuning-App-v2-300x170.png" alt="SCALA Log Analysis Tuning App v2" width="300" height="170" class="alignleft size-medium wp-image-3167" srcset="https://dougmcclure.net/blog/wp-content/uploads/2014/08/SCALA-Log-Analysis-Tuning-App-v2-300x170.png 300w, https://dougmcclure.net/blog/wp-content/uploads/2014/08/SCALA-Log-Analysis-Tuning-App-v2-1024x583.png 1024w, https://dougmcclure.net/blog/wp-content/uploads/2014/08/SCALA-Log-Analysis-Tuning-App-v2.png 1574w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>  As part of this BlueMix Fabric Log Solution project, getting visibility into everything in my log solution architecture is pretty important.  I&#8217;ve got a lot of instrumentation across the end-to-end pipeline so metrics are overflowing in my environment.  I started to work on a simple app to pull all of this together so I can trend and visualize it over time and be able to see the impacts of tuning activities.</p>
<p>This is a first cut at pulling some of the metrics out of the Distributed EIF Receiver / Unity Generic Receiver logs. I&#8217;m shipping them with the logstash-forwarder, parsing them in logstash and sending them to the internal elasticsearch server for easy search and visualization using kibana. ELK at its finest!</p>
<p>I&#8217;ll update this as I go for other SCALA logs as well as others I&#8217;m using frequently such as rsyslog impstats.</p>
<p>Ping me or check my github soon for the configurations.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Swimming in the BIG BlueMix Sea &#8211; Design and Deployment of a Log Analysis Solution for IBM&#8217;s BlueMix Cloud Foundry PaaS</title>
		<link>https://dougmcclure.net/blog/2014/08/swimming-in-the-big-bluemix-sea-design-and-deployment-of-a-log-analysis-solution-for-ibms-bluemix-cloud-foundry-paas/</link>
		
		<dc:creator><![CDATA[doug]]></dc:creator>
		<pubDate>Thu, 07 Aug 2014 19:06:06 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Anomaly Detection]]></category>
		<category><![CDATA[Application Analytics]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Event Analytics]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IBM Log Analytics]]></category>
		<category><![CDATA[IT Operations Analytics]]></category>
		<category><![CDATA[Log Analytics]]></category>
		<category><![CDATA[Logstash]]></category>
		<category><![CDATA[Machine Data]]></category>
		<category><![CDATA[Predictive Analytics]]></category>
		<category><![CDATA[Smart Cloud Analytics]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[BlueMix]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[itoa]]></category>
		<category><![CDATA[ITOps]]></category>
		<category><![CDATA[Log Analysis]]></category>
		<category><![CDATA[Logging]]></category>
		<category><![CDATA[logstash]]></category>
		<category><![CDATA[rsyslog]]></category>
		<category><![CDATA[scala]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=3152</guid>

					<description><![CDATA[A few months back, I was asked to help deploy our Log Analysis solution for our BlueMix Fabric Dev/Ops team. Their pain point &#8211; getting value and insights from massive amounts of Cloud Foundry (CF) log data across multiple development, staging and production environments in order to provide a highly available BlueMix offering. No problem [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://dougmcclure.net/blog/wp-content/uploads/2014/08/The_deep_blue_sea_6834127561.jpg"><img loading="lazy" decoding="async" src="http://dougmcclure.net/blog/wp-content/uploads/2014/08/The_deep_blue_sea_6834127561-300x124.jpg" alt="The_deep_blue_sea_(6834127561)" width="300" height="124" class="alignleft size-medium wp-image-3153" srcset="https://dougmcclure.net/blog/wp-content/uploads/2014/08/The_deep_blue_sea_6834127561-300x124.jpg 300w, https://dougmcclure.net/blog/wp-content/uploads/2014/08/The_deep_blue_sea_6834127561-1024x424.jpg 1024w, https://dougmcclure.net/blog/wp-content/uploads/2014/08/The_deep_blue_sea_6834127561.jpg 1280w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> A few months back, I was asked to help deploy our Log Analysis solution for our BlueMix Fabric Dev/Ops team.  Their pain point &#8211; getting value and insights from massive amounts of Cloud Foundry (CF) log data across multiple development, staging and production environments in order to provide a highly available BlueMix offering.  No problem I thought. A log is a log is a log.  I&#8217;d done this a number of times for various applications or technologies using our Log Analysis solution. Three months later as we move this into an environment most closely resembling our production environment, things have gotten very interesting to say the least in terms of designing for a scale out log solution supporting 100&#8217;s to 1,000&#8217;s of GB of log data each day.</p>
<p>I want to share my journey here on my blog so others may benefit who chose to do something similar in their own Cloud Foundry environment or within their other very large application or technology environments using our Log Analysis solution.  Parts of this are certainly reusable with other similar log collection, consolidation, search and visualization solutions available today and are not all dependent on use of the IBM Log Analysis solution. The overall architecture and design approach, decisions and many of the configurations are reusable for anyone desiring to design, build and deploy a log management solution using modern products, tools and techniques.</p>
<p>Within most highly dynamic and growth projects, start-ups, etc., management and monitoring stuff is often an afterthought, a &#8220;we&#8217;ll get to it later&#8221; kind of thing. There were no firm business or technical requirements guiding us as we began this project.  I think everyone on the global Dev/Ops team knew it should be done and many were trying to attack the problem with scripts and one-off tools to help them keep their heads above water and deal with daily problems. What we need, expect and desire from the solution has evolved over each milestone of this project and will continue to as more of the global Dev/Ops team begins to use the solution on a daily basis.  There are however, a few fundamental architecture and design goals that I&#8217;ve anchored my work on this project around based on our early experiences in the project:</p>
<p><strong>Architecture Design Goals &#8211;</strong> We didn&#8217;t start with these from day zero, but they quickly became the focus of our work as we discovered the operational characteristics of each BlueMix Cloud Foundry environment.</p>
<ul>
<li>Support a sustained message volume of XX MB|GB/s < -- not hiding numbers here, we just haven't set a target yet!</li>
</li>
<li>Message delivery quality of XX %</li>
<li>End to end source to search availability in XX minutes – when a record is written, when is it available for search?</li>
<li>Absorb a sustained burst in message volume of XX MB|GB/s over XX minutes  </li>
<li>Process all rsyslog disk assist cache and/or buffers from burst within XX minutes</li>
</ul>
<p><strong>Need to Understand &#8211;</strong> With anything new, there are lots of unanswered questions and concerns from various parts of the Dev/Ops team. We need to work towards being able to answer some fundamental questions such as these.</p>
<ul>
<li>Total daily message volume (GB/TB), messages/sec, network utilization</li>
<li>Total message volume by CF component type (eg Cloud Controller) day/week/month</li>
<li>Total message volume by end point CCI (with a given CF component)</li>
<li>Retention period (eg 30 days) – system resources required, pruning frequency</li>
<li>Find the high value log types and/or messages needed for problem isolation/resolution and determine parsing/annotation requirements</li>
<li>Find the lower value log types and/or messages and enable filtering and the edge or consolidation elsewhere</li>
</ul>
<p><strong>Need to Answer &#8211;</strong> We need to know how to scale up the solution as the overall BlueMix offering grows. </p>
<ul>
<li>How must the log solution architecture scale with expected BlueMix growth?</li>
<li>What is the impact on current solution resources when new environments, components or end points are added?</li>
<li>How to scale architecture, control costs and provide good UX across a global deployment of BlueMix environments (datacenters)?</li>
</ul>
<p>That&#8217;s a good intro to what I&#8217;ve been up to lately along with all of the normal customer and development activity! A lot more to come for sure. Up next, The path to milestone 1 &#8211; Sample Cloud Controller and DEA Logs</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bookmarks for March 25th through June 18th</title>
		<link>https://dougmcclure.net/blog/2014/06/bookmarks-for-march-25th-through-june-18th/</link>
		
		<dc:creator><![CDATA[delicious]]></dc:creator>
		<pubDate>Wed, 18 Jun 2014 13:00:13 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[BSM]]></category>
		<category><![CDATA[Business Service Management]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[itmanagement]]></category>
		<category><![CDATA[ITSM]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">http://dougmcclure.net/blog/?p=3103</guid>

					<description><![CDATA[These are my links for March 25th through June 18th: OpenStack LumberJack &#8211; Part 1 rsyslog &#124; Professional OpenStack &#8211; Logging for OpenStack has come quite a ways. What I&#8217;m going to attempt to do over a few posts, is recreate and expand a bit on what was discussed at this last OpenStack Summit with [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>These are my links for March 25th through June 18th:</p>
<ul>
<li><a href="http://openstack.prov12n.com/openstack-lumberjack-part-1-rsyslog/">OpenStack LumberJack &ndash; Part 1 rsyslog | Professional OpenStack</a> &#8211; Logging for OpenStack has come quite a ways. What I&rsquo;m going to attempt to do over a few posts, is recreate and expand a bit on what was discussed at this last OpenStack Summit with regard to Log Management and Mining in OpenStack. For now, that means installing rsyslogd and setting it up to accept remote connections.</li>
<li><a href="http://www.rsyslog.com/doc/rsconf1_actionexeconlywhenpreviousissuspended.html">rsyslog.conf file</a> &#8211; </li>
<li><a href="http://wiki.rsyslog.com/index.php/FailoverSyslogServer">FailoverSyslogServer &#8211; rsyslog wiki</a> &#8211; </li>
<li><a href="https://access.redhat.com/site/solutions/59705">How to configure failover for rsyslog in Red Hat Enterprise Linux 6? &#8211; Red Hat Customer Portal</a> &#8211; </li>
<li><a href="http://searchhub.org/2014/06/03/introducing-the-solr-scale-toolkit/">Introducing the Solr Scale Toolkit | SearchHub | Lucene/Solr Open Source Search</a> &#8211; </li>
<li><a href="https://everythingshouldbevirtual.com/highly-available-elk-elasticsearch-logstash-kibana-setup">Highly Available ELK (Elasticsearch, Logstash and Kibana) Setup | Everything Should Be Virtual</a> &#8211; </li>
<li><a href="https://www.ddreier.com/logstash-configuration-dissection/">Logstash configuration dissection</a> &#8211; </li>
<li><a href="http://www.splunk.com/view/SP-CAAAMTA?awesm=splk.it_jo">Splunk Introduces Splunk Enterprise 6.1</a> &#8211; Enabling the Mission-critical Enterprise Multi-site Clustering: Delivers continuous availability for Splunk Enterprise deployments that span multiple sites, countries or continents by replicating raw and indexed data in a clustered configuration. Search Affinity: Provides a performance increase when using multi-site clustering by routing search and analytics requests to the nearest cluster, increasing performance and decreasing network usage. zLinux Forwarder: Allows for application and platform data from IBM mainframes to be easily collected and indexed by Splunk Enterprise. Data Preview with Structured Inputs: Enables previewing of massive data files to verify alignment of fields and headers before indexing to improve data quality and the time it takes to discover critical insights.</li>
<li><a href="http://tech.mobinlife.com/2013/09/06/streamlining-application-logs-collection-on-aws-elastic-beanstalk-with-logstash/">Streamlining application logs collection on AWS Elastic Beanstalk with logstash &ndash; part 1 | Mob in Tech</a> &#8211; However, we like to experiment things, so I decided to try the home made solution for the backend of our new upcoming mobile game. Our backend is a homebrewed Java REST webservices application hosted in an Elastic Beanstalk container, in the us-east-1 region. The final goal is to gather logs from all instances of the Java application into a local (Paris) Elastic Search database, in a scalable manner. In this case, scalable means for us: every single step of the data pipeline has to be horizontally scalable, meaning we can speed up the process by adding additional capacity at each step independently.</li>
<li><a href="http://blog.mmlac.com/how-to-pre-process-logs-with-logstash/">How to Pre-Process Logs with Logstash: Part III of &ldquo;Scalable and Robust Logging for Web Applications&rdquo; &larr; #workHard / partyHard</a> &#8211; This article is an introduction on how to pre-process logs from multiple sources in logstash before storing them in a data store or analyze them in real time. Some common use cases are unifying time formats across different log sources, anonymizing data, extracting only interesting information from the logs as well as tagging and selective distribution.</li>
<li><a href="http://programming.oreilly.com/2014/04/building-an-activity-feed-system-with-storm.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+oreilly%2Fprogramming+%28O%27Reilly+Programming%29">Building an Activity Feed System with Storm &#8211; Programming &#8211; O&#8217;Reilly Media</a> &#8211; Problem You want to build an activity stream processing system to filter and aggregate the raw event data generated by the users of your application. Solution Streams are a dominant metaphor for presenting information to users of the modern Internet. Used on sites like Facebook and Twitter and mobile apps like Instagram and Tinder, streams are an elegant tool for giving users a window into the deluge of information generated by the applications they use every day.</li>
<li><a href="http://www.michael-noll.com/blog/2014/03/17/wirbelsturm-one-click-deploy-storm-kafka-clusters-with-vagrant-puppet/">Wirbelsturm: 1-Click Deployments of Storm and Kafka clusters with Vagrant and Puppet &#8211; Michael G. Noll</a> &#8211; I am happy to announce the first public release of Wirbelsturm, a Vagrant and Puppet based tool to perform 1-click local and remote deployments, with a focus on big data related infrastructure. Wirbelsturm&rsquo;s goal is to make tasks such as &ldquo;I want to deploy a multi-node Storm cluster&rdquo; simple, easy, and fun. In this post I will introduce you to Wirbelsturm, talk a bit about its history, and show you how to launch a multi-node Storm (or Kafka or &hellip;) cluster faster than you can brew an espresso.</li>
<li><a href="http://www.rapidengines.com/">RapidEngines Application Analytics</a> &#8211; We provide the worlds fastest, most flexible and most scalable time series data platform. Delivered as software or a cloud service to help you visualize and detect application performance events before they impact your business.</li>
<li><a href="http://www.businesswire.com/news/home/20140410005415/en/SevOne-Acquires-Log-Analytics-Provider-RapidEngines?utm_content=bufferc196d&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer#.U0xdzBD7Hts">SevOne Acquires Log Analytics Provider RapidEngines | Business Wire</a> &#8211; SevOne, the leader of scalable performance monitoring solutions to the world&rsquo;s most connected companies, today announced it has acquired RapidEngines, a leading provider of highly scalable log analytics software for IT enterprises, service providers and application developers. The acquisition is the first from SevOne since closing the $150M investment from Bain Capital which remains one of the largest venture financings of 2013. SevOne&rsquo;s large customer base will now have access to RapidEngines&rsquo; log analytics software granting users the benefit of automatically collecting and organizing log data to better provide a detailed picture of user and machine behavior.</li>
<li><a href="http://googlecloudplatform.blogspot.com/2014/04/a-new-logs-viewer-for-google-cloud.html?utm_content=buffer6e879&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer">Google Cloud Platform Blog: A New Logs Viewer for Google Cloud Platform</a> &#8211; Today we are excited to announce a significantly updated Logs Viewer for App Engine users. Logs from all your instances can be viewed together in near real time, with greatly improved filtering, searching and browsing capabilities. This release includes UI and functional improvements. We&rsquo;ve added features that simplify navigation and make it easier to find the logs data you&rsquo;re looking for.</li>
<li><a href="http://www.logsearch.io/about.html">About | LOGSEARCH</a> &#8211; What started out as an internal development project from within City Index was soon after released as an open source project for all to benefit. City Index realised the potential value of the information available to them in the log files and required a flexible solution to not only view the log files but rather to view and cross analyse them.</li>
<li><a href="http://www.devx.com/opensource/approaches-to-indexing-multiple-logs-file-types-in-solr-and-setting-up-a-multi-node-multi-core-solr-cloud.html">Approaches to Indexing Multiple Logs File Types in Solr and Setting up a Multi Node, Multi Core Solr Cloud</a> &#8211; Apache Solr is a widely used open source search platform that internally uses Apache Lucene based indexing. Solr is very popular and provides a database to store indexed data and is a very high scalable, capable search solution for the enterprise platform. This article provides a basic vision for a single and multi-core approach to indexing and querying multiple log file types in Solr. Solr indexes the log files generated by the servers and allows searching the logs for troubleshooting. It has the capability to scale to work in a multi-node cluster set up in a distributed and fault tolerant manner. These capabilities are collectively called SolrCloud. Solr uses Zookeeper for working in a distributed manner</li>
<li><a href="http://blog.cloudera.com/blog/2013/07/morphlines-the-easy-way-to-build-and-integrate-etl-apps-for-apache-hadoop/">Introducing Morphlines: The Easy Way to Build and Integrate ETL Apps for Hadoop | Cloudera Developer Blog</a> &#8211; Morphlines can be seen as an evolution of Unix pipelines where the data model is generalized to work with streams of generic records, including arbitrary binary payloads. A morphline is an efficient way to consume records (e.g. Flume events, HDFS files, RDBMS tables, or Apache Avro objects), turn them into a stream of records, and pipe the stream of records through a set of easily configurable transformations on the way to a target application such as Solr, for example as outlined in the following figure: In this figure, a Flume Source receives syslog events and sends them to a Flume Morphline Sink, which converts each Flume event to a record and pipes it into a readLine command. The readLine command extracts the log line and pipes it into a grok command. The grok command uses regular expression pattern matching to extract some substrings of the line. It pipes the resulting structured record into the loadSolr command. Finally, the loadSolr command loads the record into Solr, typically a SolrCloud. In the process, raw data or semi-structured data is transformed into structured data according to application modelling requirements.</li>
<li><a href="http://blog.gopivotal.com/cloud-foundry-pivotal/news-2/pivotal-cf-1-1-advances-enterprise-paas-with-new-capabilities-2">Pivotal CF 1.1 Advances Enterprise PaaS with New Capabilities | Pivotal P.O.V.</a> &#8211; What&rsquo;s new in Pivotal CF 1.1:
<p>    Improved app event log aggregation &ndash; developers can now go to a unified log stream for full application event visibility (Watch) and drain logs to a 3rd party tool like Splunk for analysis (Watch)</li>
<li><a href="https://pypi.python.org/pypi/elasticsearch-curator/1.0.0">elasticsearch-curator 1.0.0 : Python Package Index</a> &#8211; Tending your time-series indices in Elasticsearch</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
