{"id":1460,"date":"2012-03-24T10:55:33","date_gmt":"2012-03-24T15:55:33","guid":{"rendered":"http:\/\/www.kickflop.net\/blog\/?p=1460"},"modified":"2012-03-24T10:57:49","modified_gmt":"2012-03-24T15:57:49","slug":"specialized-syslog-collector-for-metrics-via-syslog","status":"publish","type":"post","link":"https:\/\/www.kickflop.net\/blog\/2012\/03\/24\/specialized-syslog-collector-for-metrics-via-syslog\/","title":{"rendered":"Specialized Syslog Collector for Metrics via Syslog"},"content":{"rendered":"<p>I figured I would throw this out to the wolves, before working on any of the<br \/>\nideas, in hope of collecting experience from any who have worked with this<br \/>\nidea before me. I&#8217;m likely to implement at least a proof of concept unless<br \/>\nsomeone points out a glaring show-stopping logic flaw.<!--more--><\/p>\n<h2>Idea<\/h2>\n<p>Collect <a href=\"http:\/\/graphite.wikidot.com\/\">Graphite<\/a> (or Graphite-style) centralized metrics (anything you can think of) via <a href=\"http:\/\/en.wikipedia.org\/wiki\/Syslog\">syslog<\/a>. We don&#8217;t need a new way to send and collect small UDP messages.<\/p>\n<h2>Why<\/h2>\n<p>&#8220;Why not?&#8221; is the question really.<\/p>\n<p>&#8220;Why?&#8221; is easy:<\/p>\n<ol>\n<li>Uses as much omnipresent tooling as possible.<\/li>\n<li>Uses established system library calls instead of requiring developers to write, install, or copy\/paste new ones.<\/li>\n<li>Because I found myself asking the following this past week: &#8220;Why am I about to build and package GNU netcat, for distribution to all of our Solaris 10 boxes, to get remarkably simple frigging UDP packets sent from shell commands?&#8221;<\/li>\n<\/ol>\n<h2>How: Client (Ideas)<\/h2>\n<p>Standard syslog configuration:<\/p>\n<pre>well-known-facility.well-known-severity        @metricshost<\/pre>\n<p>Developers use standard syslog calls specifying the <code>well-known-facility<\/code> and <code>well-known-severity<\/code><\/p>\n<p>For non-real-time metrics from &#8220;shell land&#8221;, just use <a href=\"https:\/\/www.google.com\/search?q=logger+command+man+page&#038;oq=logger+command+man+page&#038;aq=f\"><code>logger(1)<\/code><\/a><\/p>\n<h2>How: Server (Ideas)<\/h2>\n<p>Tweak rsyslog or other well-known syslog &#8220;collector&#8221; product to:<\/p>\n<ol>\n<li>Parse basic Graphite or Graphite-like metric messages and perform RRD and\/or   Whisper writes.  Additionally could implement built-in stats aggregation stuff like StatsD quite easily.<\/li>\n<li>Ignore all non-metric-conforming syslog data<\/li>\n<\/ol>\n<p>Thanks for any thoughts below or via the <a href=\"https:\/\/groups.google.com\/d\/topic\/devops-toolchain\/zUYaAEarMv4\/discussion\">original thread<\/a> that links here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I figured I would throw this out to the wolves, before working on any of the ideas, in hope of&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,11,48],"tags":[],"class_list":["post-1460","post","type-post","status-publish","format-standard","hentry","category-programming","category-sysadmin","category-unixlinux"],"_links":{"self":[{"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/posts\/1460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/comments?post=1460"}],"version-history":[{"count":9,"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/posts\/1460\/revisions"}],"predecessor-version":[{"id":1470,"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/posts\/1460\/revisions\/1470"}],"wp:attachment":[{"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/media?parent=1460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/categories?post=1460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kickflop.net\/blog\/wp-json\/wp\/v2\/tags?post=1460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}