{"id":1221,"date":"2021-03-26T22:31:25","date_gmt":"2021-03-26T13:31:25","guid":{"rendered":"https:\/\/www.opentone.co.jp\/ot-lab\/?p=1221"},"modified":"2025-05-12T10:06:14","modified_gmt":"2025-05-12T01:06:14","slug":"fluentd-log","status":"publish","type":"post","link":"https:\/\/www.opentone.co.jp\/ot-lab\/all\/web-system\/fluentd-log","title":{"rendered":"fluentd\u306e\u30ed\u30b0"},"content":{"rendered":"\n<p>\u3053\u3093\u306b\u3061\u306f\u3002NM\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u300cfluentd\u306e\u30ed\u30b0\u304c\u80a5\u5927\u5316\u3057\u3066\u3057\u307e\u3063\u305f\uff01\u300d<\/p>\n\n\n\n<p>\u300c\u3067\u3082\u3001\u904b\u7528\u3092\u6b62\u3081\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u3002\u300d<\/p>\n\n\n\n<p>\u3068\u3044\u3046\u554f\u984c\u306b\u3064\u3044\u3066\u3068\u3001fluentd \u81ea\u8eab\u306e\u30ed\u30b0\u306e\u30ed\u30fc\u30c6\u30fc\u30c8\u306b\u3064\u3044\u3066\u3001\u3046\u307e\u304f\u30b0\u30b0\u308c\u306a\u304b\u3063\u305f\u306e\u3067\u5099\u5fd8\u9332\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>\u5bfe\u8c61 <code>fluentd<\/code> \u306f\u3001\u8d77\u52d5\u6642\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u8d77\u52d5\u3055\u305b\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fluentd -c config-file --log log-path -d pid-file\n<\/code><\/pre>\n\n\n\n<p><code>-c<\/code>\u3067 config \u3092\u6307\u5b9a\u3057\u3001 <code>-d<\/code> \u3067\u30c7\u30fc\u30e2\u30f3\u3068\u3057\u3066\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059\u3002<br>\uff08<code>pid-file<\/code> \u306b\u306f\u3001\u8d77\u52d5\u3057\u305ffluentd\u306ePID\u304c\u66f8\u304d\u8fbc\u307e\u308c\u308b\uff09<\/p>\n\n\n\n<p>\u304f\u3069\u3044\u3088\u3046\u3067\u3059\u304c\u3001\u554f\u984c\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u306f\u3001<code>--log<\/code> \u3067\u6307\u5b9a\u3057\u305f\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306e\u80a5\u5927\u5316\u3067\u3059\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>\u4e00\u5fdc\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u304c\u3001<code>fluentd<\/code> \u3092\u8d77\u52d5\u4e2d\u306b\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u9000\u907f\u3057\u3066\u3082\u3001\u65b0\u3057\u304f\u751f\u6210\u3055\u308c\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u3084\u306f\u308a\u3001\u53e4\u3044\u30d5\u30a1\u30a4\u30eb\u30cf\u30f3\u30c9\u30eb\u3092\u3064\u304b\u3093\u3067\u3044\u308b\u306e\u3067\u3057\u3087\u3046\u306d\u3002<\/p>\n\n\n\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u3069\u306e\u3088\u3046\u306b\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u7ba1\u7406\u3057\u3066\u3044\u308b\u306e\u304b\u3092\u898b\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u76ee\u7684\u306e <a href=\"https:\/\/github.com\/fluent\/fluentd\">fluentd<\/a> \u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u3001<a href=\"https:\/\/github.com\/fluent\/fluentd\/blob\/v0.12.15\/lib\/fluent\/supervisor.rb\">lib\/fluent\/supervisor.rb<\/a> \u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>47\u884c ~ 62\u884c\u306e <code>init<\/code> \u30e1\u30bd\u30c3\u30c9\u3067\u3001\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306e\u6307\u5b9a\u304c\u3042\u308c\u3070\u3001\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092Open\u3057\u3001File\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\u3002<\/p>\n\n\n\n<p>\u6307\u5b9a\u304c\u306a\u3051\u308c\u3070\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\uff08\u6a19\u6e96\u51fa\u529b\uff09\u306e <code>Log<\/code> \u30af\u30e9\u30b9\u3092\u751f\u6210\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      def init\n        if @path &amp;&amp; @path != \"-\"\n          @io = File.open(@path, \"a\")\n          if @chuser || @chgroup\n            chuid = @chuser ? Supervisor.get_etc_passwd(@chuser).uid : nil\n            chgid = @chgroup ? Supervisor.get_etc_group(@chgroup).gid : nil\n            File.chown(chuid, chgid, @path)\n          end\n        else\n          @io = STDOUT\n        end\n\n        $log = Fluent::Log.new(@io, @level, @opts)\n        $log.enable_color(false) if @path\n        $log.enable_debug if @level &lt;= Fluent::Log::LEVEL_DEBUG\n      end\n<\/code><\/pre>\n\n\n\n<p>\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u9000\u907f\u3057\u3066\u3082\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u304c\u751f\u6210\u3055\u308c\u306a\u304b\u3063\u305f\u3002\u3068\u3044\u3046\u3053\u3068\u306f\u3001<br>\u3053\u3053\u3067\u751f\u6210\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u30cf\u30f3\u30c9\u30eb\u3092\u3064\u304b\u3093\u3060\u307e\u307e\u306a\u306e\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>\u3057\u304b\u3057\u300168\u884c\uff5e73\u884c\u306e <code>reopen!<\/code> \u30e1\u30bd\u30c3\u30c9\u3067\u3001\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092 reopen \u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      def reopen!\n        if @path &amp;&amp; @path != \"-\"\n          @io.reopen(@path, \"a\")\n        end\n        self\n      end\n<\/code><\/pre>\n\n\n\n<p>\u3068\u3044\u3046\u3053\u3068\u306f\u3001\u3053\u308c\u3092\u547c\u3079\u3070\u30d5\u30a1\u30a4\u30eb\u30cf\u30f3\u30c9\u30eb\u3092\u66f4\u65b0\u3067\u304d\u308b\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u3067\u306f <code>reopen!<\/code> \u306f\u3069\u3053\u3067\u547c\u3070\u308c\u3066\u3044\u308b\u306e\u304b\u3068\u3044\u3046\u3068\u3001<\/p>\n\n\n\n<p><code>install_main_process_signal_handlers<\/code> \u30e1\u30bd\u30c3\u30c9\u306e\u3001520\u884c\u76ee\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      trap :USR1 do\n        $log.debug \"fluentd main process get SIGUSR1\"\n        $log.info \"force flushing buffered events\"\n        @log.reopen!\n<\/code><\/pre>\n\n\n\n<p><code>USR1<\/code> \u30b7\u30b0\u30ca\u30eb\u3092\u53d7\u3051\u53d6\u3063\u305f\u969b\u306b\u3001<code>reopen!<\/code>\u3057\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p>\u3068\u3044\u3046\u3053\u3068\u306f\u3001<\/p>\n\n\n\n<p>\u904b\u7528\u3092\u6b62\u3081\u305a\u306b\u30ed\u30b0\u3092\u30ed\u30fc\u30c6\u30fc\u30c8\u3057\u305f\u3044\u5834\u5408\u306b\u306f\u3001\u30ed\u30b0\u3092\u9000\u907f\u5f8c\u306b\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>test -s pid-file &amp;&amp; kill -USR1 `cat pid-file`\n<\/code><\/pre>\n\n\n\n<p>\u3068\u3044\u3046\u3088\u3046\u306b\u3001USR1\u30b7\u30b0\u30ca\u30eb\u3067\u3064\u3064\u3044\u3066\u3084\u308b\u3053\u3068\u3067\uff2f\uff2b\u3002<\/p>\n<div class=\"opent-_2\" style=\"margin-top: 10px;margin-right: 10px;margin-bottom: 10px;margin-left: 10px;\" id=\"opent-1863557074\"><a href=\"https:\/\/www.opentone.co.jp\/backlog\/\" aria-label=\"twitter_backlogskt_new\"><img src=\"https:\/\/www.opentone.co.jp\/ot-lab\/wp-content\/uploads\/sites\/11\/2023\/02\/twitter_backlogskt_new.jpg\" alt=\"\"  srcset=\"https:\/\/www.opentone.co.jp\/ot-lab\/wp-content\/uploads\/sites\/11\/2023\/02\/twitter_backlogskt_new.jpg 1024w, https:\/\/www.opentone.co.jp\/ot-lab\/wp-content\/uploads\/sites\/11\/2023\/02\/twitter_backlogskt_new-300x157.jpg 300w, https:\/\/www.opentone.co.jp\/ot-lab\/wp-content\/uploads\/sites\/11\/2023\/02\/twitter_backlogskt_new-768x401.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" width=\"384\" height=\"200\"   \/><\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3002NM\u3067\u3059\u3002 \u300cfluentd\u306e\u30ed\u30b0\u304c\u80a5\u5927\u5316\u3057\u3066\u3057\u307e\u3063\u305f\uff01\u300d \u300c\u3067\u3082\u3001\u904b\u7528\u3092\u6b62\u3081\u308b\u3053\u3068\u304c\u51fa<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[28],"tags":[],"class_list":["post-1221","post","type-post","status-publish","format-standard","hentry","category-web-system",""],"acf":[],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"engage-mag-carousel-img":false,"engage-mag-carousel-img-landscape":false,"engage-mag-carousel-large-img":false,"engage-mag-carousel-large-img-landscape":false,"engage-mag-large-thumb":false,"engage-mag-small-thumb":false},"uagb_author_info":{"display_name":"ah106rx4o4","author_link":"https:\/\/www.opentone.co.jp\/ot-lab\/author\/ah106rx4o4"},"uagb_comment_info":0,"uagb_excerpt":"\u3053\u3093\u306b\u3061\u306f\u3002NM\u3067\u3059\u3002 \u300cfluentd\u306e\u30ed\u30b0\u304c\u80a5\u5927\u5316\u3057\u3066\u3057\u307e\u3063\u305f\uff01\u300d \u300c\u3067\u3082\u3001\u904b\u7528\u3092\u6b62\u3081\u308b\u3053\u3068\u304c\u51fa","_links":{"self":[{"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/posts\/1221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/comments?post=1221"}],"version-history":[{"count":1,"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/posts\/1221\/revisions"}],"predecessor-version":[{"id":1222,"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/posts\/1221\/revisions\/1222"}],"wp:attachment":[{"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/media?parent=1221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/categories?post=1221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.opentone.co.jp\/ot-lab\/wp-json\/wp\/v2\/tags?post=1221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}