{"id":363,"date":"2018-08-22T12:36:35","date_gmt":"2018-08-22T03:36:35","guid":{"rendered":"http:\/\/dong1lkim.oboki.net\/?p=363"},"modified":"2019-09-01T22:21:05","modified_gmt":"2019-09-01T13:21:05","slug":"fluentd-usecase-exec","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/data-engineering\/fluentd\/fluentd-usecase-exec\/","title":{"rendered":"[Fluentd] Usecase &#8211; exec"},"content":{"rendered":"<h1>Fluentd Use Case<\/h1>\n<h2>exec \ud50c\ub7ec\uadf8\uc778 \ud65c\uc6a9\ud558\uae30<\/h2>\n<blockquote><p>\n  in_exec \ud50c\ub7ec\uadf8\uc778\uc744 \ud65c\uc6a9\ud558\uba74 \uc0ac\uc6a9\uc790\uac00 \uc218\uc9d1\ud558\uace0\uc790 \ud558\ub294 \uc815\ud655\ud55c \uc815\ubcf4\ub97c \ub9cc\ub4e4\uc5b4\ub0b4\uc11c \uc218\uc9d1\ud560 \uc218 \uc788\ub2e4.\n<\/p><\/blockquote>\n<h3>linux_free<\/h3>\n<p>linux \ubaa8\ub2c8\ud130\ub9c1 \uba85\ub839\uc5b4\uc778 free \uc758 \uacb0\uacfc\ub97c \uc8fc\uae30\uc801\uc73c\ub85c \uc218\uc9d1\ud574\ubcf8\ub2e4.<\/p>\n<h4>\ub370\uc774\ud130 \uc18c\uc2a4 \uc2a4\ud06c\ub9bd\ud2b8<\/h4>\n<p><code>vi \/app\/fluentd\/scripts\/free.sh<\/code><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\nDATE=<code>date &quot;+%Y-%m-%d %H:%M:%S&quot;<\/code>\nDATA=<code>free -k | grep &quot;Mem:&quot; | awk &#039;{print $2,$3,$4,$5,$6,$7}&#039;<\/code>\n\necho $DATA $DATE\n<\/code><\/pre>\n<h4>fluentd config<\/h4>\n<pre><code class=\"xml\"># linux_free\n## Input\n\n    @type exec\n    command \/app\/fluentd\/scripts\/free.sh\n\n        @type regexp\n        expression \/^(?\\d+)\\s+(?\\d+)\\s+(?\\d+)\\s+(?\\d+)\\s+(?\\d+)\\s+(?\\d+)\\s+(?.*)$\/\n\n    tag \"exec.free.#{Socket.gethostname}\"\n    run_interval 3s\n    time_key time\n    time_format %Y-%m-%d %H:%M:%S\n\n## Filter\n\n    @type record_transformer\n\n        hostname \"#{Socket.gethostname}\"\n\n## Output\n\n    @type copy\n    #\n    #   @type stdout\n    #   include_tag_key true\n    #   include_time_key true\n    #\n\n        @type elasticsearch\n        hosts 192.168.179.81:9200,192.168.179.82:9200,\n        logstash_format true\n        logstash_prefix linux_free\n        logstash_dateformat %Y%m%d\n        include_tag_key true\n        tag_key @log_name\n        flush_interval 3s\n\n<\/code><\/pre>\n<h3>linux_vmstat<\/h3>\n<p>linux \ubaa8\ub2c8\ud130\ub9c1 \uba85\ub839\uc5b4\uc778 vmstat\uc758 \uacb0\uacfc\ub97c \uc8fc\uae30\uc801\uc73c\ub85c \uc218\uc9d1\ud574\ubcf8\ub2e4.<\/p>\n<h4>\ub370\uc774\ud130 \uc18c\uc2a4 \uc2a4\ud06c\ub9bd\ud2b8<\/h4>\n<p><code>vi \/app\/fluentd\/scripts\/vmstat.sh<\/code><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\nvmstat -t | grep -v \"^procs\" | grep -v -P \"^\\s+r\"\n<\/code><\/pre>\n<h4>fluentd config<\/h4>\n<pre><code class=\"xml\"># linux_vmstat\n## Input\n&lt;source&gt;\n    @type exec\n    command \/app\/fluentd\/scripts\/vmstat.sh\n    &lt;parse&gt;\n        @type regexp\n        expression \/^(?&lt;procs_r&gt;\\d+)\\s+(?&lt;procs_b&gt;\\d+)\\s+(?&lt;memory_swpd&gt;\\d+)\\s+(?&lt;memory_free&gt;\\d+)\\s+(?&lt;memory_buff&gt;\\d+)\\s+(?&lt;memory_cache&gt;\\d+)\\s+(?&lt;swap_si&gt;\\d+)\\s+(?&lt;swap_so&gt;\\d+)\\s+(?&lt;io_bi&gt;\\d+)\\s+(?&lt;io_bo&gt;\\d+)\\s+(?&lt;system_in&gt;\\d+)\\s+(?&lt;system_cs&gt;\\d+)\\s+(?&lt;cpu_us&gt;\\d+)\\s+(?&lt;cpu_sy&gt;\\d+)\\s+(?&lt;cpu_id&gt;\\d+)\\s+(?&lt;cpu_wa&gt;\\d+)\\s+(?&lt;cpu_st&gt;\\d+)\\s+(?&lt;time&gt;.*)$\/\n    &lt;\/parse&gt;\n    tag \"exec.vmstat.#{Socket.gethostname}\"\n    run_interval 3s\n    time_key time\n    time_format %Y-%m-%d %H:%M:%S\n&lt;\/source&gt;\n\n## Filter\n&lt;filter exec.vmstat.**&gt;\n    @type record_transformer\n    &lt;record&gt;\n        hostname \"#{Socket.gethostname}\"\n    &lt;\/record&gt;\n&lt;\/filter&gt;\n\n## Output\n&lt;match exec.vmstat.**&gt;\n    @type copy\n    #&lt;store&gt;\n    #   @type stdout\n    #   include_tag_key true\n    #   include_time_key true\n    #&lt;\/store&gt;\n    &lt;store&gt;\n        @type elasticsearch\n        hosts 192.168.179.81:9200,192.168.179.82:9200,\n        logstash_format true\n        logstash_prefix linux_vmstat\n        logstash_dateformat %Y%m%d\n        include_tag_key true\n        tag_key @log_name\n        flush_interval 3s\n    &lt;\/store&gt;\n&lt;\/match&gt;\n<\/code><\/pre>\n<h3>linux_who<\/h3>\n<p>linux \ubaa8\ub2c8\ud130\ub9c1 \uba85\ub839\uc5b4\uc778 who\uc758 \uacb0\uacfc\ub97c \uc8fc\uae30\uc801\uc73c\ub85c \uc218\uc9d1\ud574\ubcf8\ub2e4.<\/p>\n<h4>\ub370\uc774\ud130 \uc18c\uc2a4 \uc2a4\ud06c\ub9bd\ud2b8<\/h4>\n<p><code>vi \/app\/fluentd\/scripts\/who.sh<\/code><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\nwho | awk '{print $0, strftime(\"%Y-%m-%d %H:%M:%S\")}'\n<\/code><\/pre>\n<h4>fluentd config<\/h4>\n<pre><code class=\"xml\"># linux_who\n## Input\n&lt;source&gt;\n    @type exec\n    command \/app\/fluentd\/scripts\/who.sh\n    &lt;parse&gt;\n        @type regexp\n        expression \/^(?&lt;NAME&gt;\\S+)\\s+(?&lt;LINE&gt;\\S+)\\s+(?&lt;TIME&gt;\\S{3}\\s\\d+\\s\\d{2}:\\d{2}+)\\s+(?&lt;COMMENT&gt;\\S+)\\s+(?&lt;time&gt;.*)$\/\n    &lt;\/parse&gt;\n    tag \"exec.who.#{Socket.gethostname}\"\n    run_interval 3s\n    time_key time\n    time_format %Y-%m-%d %H:%M:%S\n&lt;\/source&gt;\n\n## Filter\n&lt;filter exec.who.**&gt;\n    @type record_transformer\n    &lt;record&gt;\n        hostname \"#{Socket.gethostname}\"\n    &lt;\/record&gt;\n&lt;\/filter&gt;\n\n## Output\n&lt;match exec.who.**&gt;\n    @type copy\n    #&lt;store&gt;\n    #   @type stdout\n    #   include_tag_key true\n    #   include_time_key true\n    #&lt;\/store&gt;\n    &lt;store&gt;\n        @type elasticsearch\n        hosts 192.168.179.81:9200,192.168.179.82:9200,\n        logstash_format true\n        logstash_prefix linux_who\n        logstash_dateformat %Y%m%d\n        include_tag_key true\n        tag_key @log_name\n        flush_interval 3s\n    &lt;\/store&gt;\n&lt;\/match&gt;\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Fluentd Use Case exec \ud50c\ub7ec\uadf8\uc778 \ud65c\uc6a9\ud558\uae30 in_exec \ud50c\ub7ec\uadf8\uc778\uc744 \ud65c\uc6a9\ud558\uba74 \uc0ac\uc6a9\uc790\uac00 \uc218\uc9d1\ud558\uace0\uc790 \ud558\ub294 \uc815\ud655\ud55c \uc815\ubcf4\ub97c \ub9cc\ub4e4\uc5b4\ub0b4\uc11c \uc218\uc9d1\ud560 \uc218 \uc788\ub2e4. linux_free linux \ubaa8\ub2c8\ud130\ub9c1 \uba85\ub839\uc5b4\uc778 free \uc758 \uacb0\uacfc\ub97c \uc8fc\uae30\uc801\uc73c\ub85c \uc218\uc9d1\ud574\ubcf8\ub2e4. \ub370\uc774\ud130 \uc18c\uc2a4 \uc2a4\ud06c\ub9bd\ud2b8 vi \/app\/fluentd\/scripts\/free.sh #!\/bin\/bash DATE=date &quot;+%Y-%m-%d %H:%M:%S&quot; DATA=free -k | grep &quot;Mem:&quot; | awk &#039;{print $2,$3,$4,$5,$6,$7}&#039; echo $DATA $DATE fluentd config # linux_free ## Input @type [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[142],"class_list":["post-363","post","type-post","status-publish","format-standard","hentry","category-fluentd","tag-fluented"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":6,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":1245,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/363\/revisions\/1245"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}