<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.christophchamp.com/index.php?action=history&amp;feed=atom&amp;title=Sensu</id>
		<title>Sensu - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.christophchamp.com/index.php?action=history&amp;feed=atom&amp;title=Sensu"/>
		<link rel="alternate" type="text/html" href="http://wiki.christophchamp.com/index.php?title=Sensu&amp;action=history"/>
		<updated>2026-04-30T16:39:15Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://wiki.christophchamp.com/index.php?title=Sensu&amp;diff=6527&amp;oldid=prev</id>
		<title>Christoph at 00:59, 19 February 2016</title>
		<link rel="alternate" type="text/html" href="http://wiki.christophchamp.com/index.php?title=Sensu&amp;diff=6527&amp;oldid=prev"/>
				<updated>2016-02-19T00:59:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:59, 19 February 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l60&quot; &gt;Line 60:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160;  &amp;quot;${ENDPOINT}/checks/${check}&amp;quot; | jq -r '.command';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160;  &amp;quot;${ENDPOINT}/checks/${check}&amp;quot; | jq -r '.command';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  done&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  done&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Run Sensu checks as sudo==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In order for a sensu check to be run as sudo, perform the following:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; # Make sure to:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; $ usermod -aG wheel sensu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; # Make sure the following line exists in `visudo`:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; # %wheel&amp;#160; ALL=(ALL)&amp;#160; &amp;#160; &amp;#160;  NOPASSWD: ALL&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; $ cat &amp;lt;&amp;lt; EOF &amp;gt;/etc/sudoers.d/sensu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; Defaults:sensu !requiretty&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; Defaults:sensu secure_path = /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; sensu ALL = NOPASSWD: /etc/sensu/plugins/*.sh&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; EOF&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christoph</name></author>	</entry>

	<entry>
		<id>http://wiki.christophchamp.com/index.php?title=Sensu&amp;diff=6525&amp;oldid=prev</id>
		<title>Christoph: Created page with &quot;'''Sensu''' is an open source computer monitoring framework. It is useful for monitoring servers, services, application health, and business KPIs. Get notified about failures...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.christophchamp.com/index.php?title=Sensu&amp;diff=6525&amp;oldid=prev"/>
				<updated>2016-02-19T00:41:58Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Sensu&amp;#039;&amp;#039;&amp;#039; is an open source computer monitoring framework. It is useful for monitoring servers, services, application health, and business KPIs. Get notified about failures...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Sensu''' is an open source computer monitoring framework. It is useful for monitoring servers, services, application health, and business KPIs. Get notified about failures before your users do. Collect and analyze custom metrics.&lt;br /&gt;
&lt;br /&gt;
==Sensu API examples==&lt;br /&gt;
''Note: These examples use [[jq]] for simple JSON parsing from the CLI.''&lt;br /&gt;
&lt;br /&gt;
* Setup environment variables for the various Sensu API endpoints:&lt;br /&gt;
 $ USER=&amp;lt;redacted&amp;gt;&lt;br /&gt;
 $ PASSWORD=&amp;lt;redacted&amp;gt;&lt;br /&gt;
 $ PORT=4567&lt;br /&gt;
 $ SENSU_HOST=localhost&lt;br /&gt;
 $ ENDPOINT=${USER}:${PASSWORD}@${SENSU_HOST}:${PORT}&lt;br /&gt;
&lt;br /&gt;
* Get a list of clients (i.e., hostnames):&lt;br /&gt;
&lt;br /&gt;
 $ curl -sH &amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/clients&amp;quot; |\&lt;br /&gt;
        jq '[.[] | .name]'&lt;br /&gt;
&lt;br /&gt;
* Get a list of checks for all &amp;quot;controller&amp;quot; nodes:&lt;br /&gt;
&lt;br /&gt;
 $ curl -sH &amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/checks&amp;quot; |\&lt;br /&gt;
        jq '[.[] | select(.subscribers[] == &amp;quot;controller&amp;quot;) | .name]'&lt;br /&gt;
&lt;br /&gt;
* Create a stash (i.e., silence alert):&lt;br /&gt;
&lt;br /&gt;
 $ CLIENT=lab-controller.openstack.lan&lt;br /&gt;
 $ CHECK=check-nova-boot&lt;br /&gt;
 $ MESSAGE=&amp;quot;silencing during maintenance&amp;quot;&lt;br /&gt;
 $ EXPIRE=300 # seconds&lt;br /&gt;
 $ curl -XPOST -H&amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/stashes&amp;quot; \&lt;br /&gt;
        -d &amp;quot;{\&amp;quot;path\&amp;quot;:\&amp;quot;silence/${CLIENT}/${CHECK}\&amp;quot;,\&lt;br /&gt;
             \&amp;quot;content\&amp;quot;:{\&amp;quot;message\&amp;quot;:\&amp;quot;${MESSAGE}\&amp;quot;},\&amp;quot;expire\&amp;quot;:${EXPIRE}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Delete the above stash:&lt;br /&gt;
&lt;br /&gt;
 $ curl -XDELETE -H&amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/stashes&amp;quot; \&lt;br /&gt;
        -d &amp;quot;{\&amp;quot;path\&amp;quot;:\&amp;quot;silence/${CLIENT}/${CHECK}\&amp;quot;}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Create stashes for all checks on a given client (where the client is a &amp;quot;controller&amp;quot; subscriber):&lt;br /&gt;
&lt;br /&gt;
 $ for check in $(curl -sH&amp;quot;Content-type:application/json&amp;quot; \&lt;br /&gt;
       &amp;quot;${ENDPOINT}/checks&amp;quot; |\&lt;br /&gt;
       jq -r '[.[] | select(.subscribers[] == &amp;quot;controller&amp;quot;) | .name] | .[]'); do&lt;br /&gt;
       curl -XPOST -H&amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/stashes&amp;quot; \&lt;br /&gt;
            -d &amp;quot;{\&amp;quot;path\&amp;quot;:\&amp;quot;silence/${CLIENT}/${check}\&amp;quot;,\&lt;br /&gt;
                 \&amp;quot;content\&amp;quot;:{\&amp;quot;message\&amp;quot;:\&amp;quot;${MESSAGE}\&amp;quot;},\&amp;quot;expire\&amp;quot;:${EXPIRE}}&amp;quot;&lt;br /&gt;
   done&lt;br /&gt;
&lt;br /&gt;
* Or, to completely silence a given client:&lt;br /&gt;
&lt;br /&gt;
 $ CLIENT=lab-controller.openstack.lan&lt;br /&gt;
 $ curl -XPOST -H&amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/stashes&amp;quot; \&lt;br /&gt;
        -d &amp;quot;{\&amp;quot;path\&amp;quot;:\&amp;quot;silence/${CLIENT}\&amp;quot;,\&lt;br /&gt;
          \&amp;quot;content\&amp;quot;:{\&amp;quot;message\&amp;quot;:\&amp;quot;${MESSAGE}\&amp;quot;},\&amp;quot;expire\&amp;quot;:${EXPIRE}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Get a list of the actual commands each check is running on a given client (where the client is a &amp;quot;controller&amp;quot; node): &lt;br /&gt;
&lt;br /&gt;
 $ for check in $(curl -sH&amp;quot;Content-type:application/json&amp;quot; &amp;quot;${ENDPOINT}/checks&amp;quot; |\&lt;br /&gt;
       jq -r '[.[] | select(.subscribers[] == &amp;quot;controller&amp;quot;) | .name] | .[]'); do&lt;br /&gt;
       curl -sH&amp;quot;Content-type:application/json&amp;quot; \&lt;br /&gt;
       &amp;quot;${ENDPOINT}/checks/${check}&amp;quot; | jq -r '.command';&lt;br /&gt;
   done&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://sensuapp.org/ Official website]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical and Specialized Skills]]&lt;/div&gt;</summary>
		<author><name>Christoph</name></author>	</entry>

	</feed>