fluentd-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (320) hide show
  1. checksums.yaml +7 -0
  2. data/.bowerrc +3 -0
  3. data/.gitignore +31 -0
  4. data/.rspec +1 -0
  5. data/ChangeLog +3 -0
  6. data/Gemfile +21 -0
  7. data/Gemfile.lock +247 -0
  8. data/Gemfile.production +3 -0
  9. data/README.md +53 -0
  10. data/Rakefile +8 -0
  11. data/app/assets/images/.keep +0 -0
  12. data/app/assets/javascripts/alert.js +51 -0
  13. data/app/assets/javascripts/application.js +22 -0
  14. data/app/assets/javascripts/nested_setting.js +41 -0
  15. data/app/assets/javascripts/setting_format.js +15 -0
  16. data/app/assets/javascripts/tutorial.js +58 -0
  17. data/app/assets/javascripts/vue/fluent_log.js +64 -0
  18. data/app/assets/javascripts/vue/in_tail_format.js +153 -0
  19. data/app/assets/javascripts/vue/treeview.js +97 -0
  20. data/app/assets/javascripts/vue_common.js +4 -0
  21. data/app/assets/stylesheets/application.css +18 -0
  22. data/app/assets/stylesheets/common.css.scss +152 -0
  23. data/app/controllers/api_controller.rb +37 -0
  24. data/app/controllers/application_controller.rb +110 -0
  25. data/app/controllers/concerns/.keep +0 -0
  26. data/app/controllers/fluentd/agents_controller.rb +35 -0
  27. data/app/controllers/fluentd/settings/in_syslog_controller.rb +34 -0
  28. data/app/controllers/fluentd/settings/in_tail_controller.rb +57 -0
  29. data/app/controllers/fluentd/settings/out_forward_controller.rb +42 -0
  30. data/app/controllers/fluentd/settings/out_mongo_controller.rb +36 -0
  31. data/app/controllers/fluentd/settings/out_s3_controller.rb +36 -0
  32. data/app/controllers/fluentd/settings/out_td_controller.rb +36 -0
  33. data/app/controllers/fluentd/settings_controller.rb +18 -0
  34. data/app/controllers/fluentd_controller.rb +62 -0
  35. data/app/controllers/misc_controller.rb +69 -0
  36. data/app/controllers/plugins_controller.rb +44 -0
  37. data/app/controllers/polling_controller.rb +20 -0
  38. data/app/controllers/sessions_controller.rb +45 -0
  39. data/app/controllers/tutorials_controller.rb +40 -0
  40. data/app/controllers/users_controller.rb +28 -0
  41. data/app/controllers/welcome_controller.rb +5 -0
  42. data/app/helpers/application_helper.rb +55 -0
  43. data/app/helpers/fluentd/settings_helper.rb +2 -0
  44. data/app/helpers/miscs_helper.rb +2 -0
  45. data/app/helpers/settings_helper.rb +43 -0
  46. data/app/mailers/.keep +0 -0
  47. data/app/models/.keep +0 -0
  48. data/app/models/concerns/.keep +0 -0
  49. data/app/models/fluentd.rb +178 -0
  50. data/app/models/fluentd/agent.rb +28 -0
  51. data/app/models/fluentd/agent/common.rb +76 -0
  52. data/app/models/fluentd/agent/configuration.rb +35 -0
  53. data/app/models/fluentd/agent/fluentd_gem.rb +104 -0
  54. data/app/models/fluentd/agent/local_common.rb +101 -0
  55. data/app/models/fluentd/agent/remote.rb +7 -0
  56. data/app/models/fluentd/agent/td_agent.rb +44 -0
  57. data/app/models/fluentd/api.rb +6 -0
  58. data/app/models/fluentd/api/http.rb +26 -0
  59. data/app/models/fluentd/setting.rb +4 -0
  60. data/app/models/fluentd/setting/common.rb +185 -0
  61. data/app/models/fluentd/setting/in_syslog.rb +16 -0
  62. data/app/models/fluentd/setting/in_tail.rb +107 -0
  63. data/app/models/fluentd/setting/out_forward.rb +70 -0
  64. data/app/models/fluentd/setting/out_mongo.rb +35 -0
  65. data/app/models/fluentd/setting/out_s3.rb +29 -0
  66. data/app/models/fluentd/setting/out_td.rb +26 -0
  67. data/app/models/plugin.rb +193 -0
  68. data/app/models/settings.rb +4 -0
  69. data/app/models/user.rb +52 -0
  70. data/app/views/fluentd/_form.html.haml +31 -0
  71. data/app/views/fluentd/edit.html.haml +3 -0
  72. data/app/views/fluentd/errors.html.haml +19 -0
  73. data/app/views/fluentd/log.html.haml +9 -0
  74. data/app/views/fluentd/new.html.haml +3 -0
  75. data/app/views/fluentd/settings/_form.html.haml +43 -0
  76. data/app/views/fluentd/settings/edit.html.haml +7 -0
  77. data/app/views/fluentd/settings/in_syslog/_form.html.haml +9 -0
  78. data/app/views/fluentd/settings/in_syslog/show.html.haml +6 -0
  79. data/app/views/fluentd/settings/in_tail/_form.html.haml +42 -0
  80. data/app/views/fluentd/settings/in_tail/after_file_choose.html.haml +19 -0
  81. data/app/views/fluentd/settings/in_tail/after_format.html.haml +10 -0
  82. data/app/views/fluentd/settings/in_tail/confirm.html.haml +13 -0
  83. data/app/views/fluentd/settings/in_tail/show.html.haml +5 -0
  84. data/app/views/fluentd/settings/out_forward/_form.html.haml +22 -0
  85. data/app/views/fluentd/settings/out_forward/show.html.haml +6 -0
  86. data/app/views/fluentd/settings/out_mongo/_form.html.haml +30 -0
  87. data/app/views/fluentd/settings/out_mongo/finish.html.haml +4 -0
  88. data/app/views/fluentd/settings/out_mongo/show.html.haml +6 -0
  89. data/app/views/fluentd/settings/out_s3/_form.html.haml +39 -0
  90. data/app/views/fluentd/settings/out_s3/show.html.haml +6 -0
  91. data/app/views/fluentd/settings/out_td/_form.html.haml +18 -0
  92. data/app/views/fluentd/settings/out_td/show.html.haml +6 -0
  93. data/app/views/fluentd/settings/show.html.haml +10 -0
  94. data/app/views/fluentd/settings/source_and_output.html.haml +45 -0
  95. data/app/views/fluentd/show.html.haml +60 -0
  96. data/app/views/layouts/application.html.erb +102 -0
  97. data/app/views/layouts/sign_in.html.erb +28 -0
  98. data/app/views/misc/information.html.haml +75 -0
  99. data/app/views/misc/update_fluentd_ui.html.haml +45 -0
  100. data/app/views/plugins/installed.html.haml +67 -0
  101. data/app/views/plugins/recommended.html.haml +59 -0
  102. data/app/views/plugins/updated.html.haml +29 -0
  103. data/app/views/sessions/new.html.haml +13 -0
  104. data/app/views/shared/_error.html.haml +3 -0
  105. data/app/views/shared/_flash.html.haml +10 -0
  106. data/app/views/shared/_fluentd_nav.html.haml +12 -0
  107. data/app/views/shared/_global_nav.html.erb +80 -0
  108. data/app/views/shared/_initial_setup.html.haml +13 -0
  109. data/app/views/shared/_modal.html.erb +25 -0
  110. data/app/views/shared/_setting_errors.html.haml +5 -0
  111. data/app/views/shared/vue/_fluent_log.html.erb +25 -0
  112. data/app/views/shared/vue/_in_tail_format.html.erb +53 -0
  113. data/app/views/shared/vue/_treeview.html.erb +30 -0
  114. data/app/views/tutorials/chapter1.html.erb +31 -0
  115. data/app/views/tutorials/chapter2.html.haml +12 -0
  116. data/app/views/tutorials/chapter3.html.haml +12 -0
  117. data/app/views/tutorials/chapter4.html.haml +12 -0
  118. data/app/views/tutorials/chapter5.html.haml +10 -0
  119. data/app/views/tutorials/index.html.haml +26 -0
  120. data/app/views/users/show.html.haml +22 -0
  121. data/app/workers/all_plugin_check_update.rb +14 -0
  122. data/app/workers/fluentd_ui_restart.rb +41 -0
  123. data/app/workers/fluentd_ui_update_check.rb +15 -0
  124. data/app/workers/gem_installer.rb +17 -0
  125. data/app/workers/gem_uninstaller.rb +15 -0
  126. data/app/workers/gem_update_check.rb +10 -0
  127. data/bin/bundle +3 -0
  128. data/bin/fluentd-ui +13 -0
  129. data/bin/fluentd-ui-restart +12 -0
  130. data/bin/rails +8 -0
  131. data/bin/rake +8 -0
  132. data/bin/spring +18 -0
  133. data/bower.json +10 -0
  134. data/circle.yml +8 -0
  135. data/config.ru +4 -0
  136. data/config/application.rb +48 -0
  137. data/config/application.yml +211 -0
  138. data/config/boot.rb +4 -0
  139. data/config/environment.rb +5 -0
  140. data/config/environments/development.rb +36 -0
  141. data/config/environments/production.rb +69 -0
  142. data/config/environments/test.rb +40 -0
  143. data/config/initializers/backtrace_silencers.rb +7 -0
  144. data/config/initializers/cookies_serializer.rb +3 -0
  145. data/config/initializers/filter_parameter_logging.rb +4 -0
  146. data/config/initializers/inflections.rb +16 -0
  147. data/config/initializers/mime_types.rb +4 -0
  148. data/config/initializers/prefetch_gem_updates.rb +1 -0
  149. data/config/initializers/session_store.rb +3 -0
  150. data/config/initializers/wrap_parameters.rb +14 -0
  151. data/config/locales/en.yml +204 -0
  152. data/config/locales/ja.yml +194 -0
  153. data/config/locales/translation_en.yml +255 -0
  154. data/config/locales/translation_ja.yml +255 -0
  155. data/config/locales/tutorial_en.yml +117 -0
  156. data/config/locales/tutorial_ja.yml +120 -0
  157. data/config/routes.rb +93 -0
  158. data/config/secrets.yml +22 -0
  159. data/db/schema.rb +0 -0
  160. data/db/seeds.rb +11 -0
  161. data/fluentd-ui-ss01.png +0 -0
  162. data/fluentd-ui-ss02.png +0 -0
  163. data/fluentd-ui-ss03.png +0 -0
  164. data/fluentd-ui-ss04.png +0 -0
  165. data/fluentd-ui-ss05.png +0 -0
  166. data/fluentd-ui.gemspec +46 -0
  167. data/lib/assets/.keep +0 -0
  168. data/lib/file_reverse_reader.rb +56 -0
  169. data/lib/fluentd-ui.rb +22 -0
  170. data/lib/fluentd-ui/command.rb +52 -0
  171. data/lib/fluentd-ui/version.rb +3 -0
  172. data/lib/grok_converter.rb +39 -0
  173. data/lib/regexp_preview.rb +48 -0
  174. data/lib/tasks/.keep +0 -0
  175. data/lib/treeview.rb +45 -0
  176. data/log/.keep +0 -0
  177. data/public/404.html +67 -0
  178. data/public/422.html +67 -0
  179. data/public/500.html +66 -0
  180. data/public/favicon.ico +0 -0
  181. data/public/fluentd-logo-right-text.png +0 -0
  182. data/public/fluentd-logo.png +0 -0
  183. data/public/fluentd.png +0 -0
  184. data/public/robots.txt +5 -0
  185. data/spec/controllers/plugins_controller_spec.rb +5 -0
  186. data/spec/controllers/polling_controller_spec.rb +5 -0
  187. data/spec/controllers/sessions_controller_spec.rb +5 -0
  188. data/spec/controllers/tutorials_controller_spec.rb +5 -0
  189. data/spec/factories/fluentd.rb +11 -0
  190. data/spec/factories/plugins.rb +8 -0
  191. data/spec/factories/user.rb +6 -0
  192. data/spec/features/fluentd/setting/out_forward_spec.rb +45 -0
  193. data/spec/features/fluentd/setting/out_td_spec.rb +35 -0
  194. data/spec/features/sessions_spec.rb +55 -0
  195. data/spec/features/shared_examples/login_required.rb +4 -0
  196. data/spec/features/users_spec.rb +9 -0
  197. data/spec/grok_converter_spec.rb +50 -0
  198. data/spec/lib/file_reverse_reader_spec.rb +73 -0
  199. data/spec/lib/fluentd-ui_spec.rb +35 -0
  200. data/spec/models/fluentd/agent_spec.rb +91 -0
  201. data/spec/models/fluentd/setting/common_spec.rb +178 -0
  202. data/spec/models/fluentd/setting/in_syslog_spec.rb +35 -0
  203. data/spec/models/fluentd/setting/out_mongo_spec.rb +40 -0
  204. data/spec/models/fluentd/setting/out_td_spec.rb +38 -0
  205. data/spec/models/fluentd_spec.rb +166 -0
  206. data/spec/models/plugin_spec.rb +191 -0
  207. data/spec/models/user_spec.rb +15 -0
  208. data/spec/spec_helper.rb +58 -0
  209. data/spec/support/fixtures/error0.log +12 -0
  210. data/spec/support/fixtures/error2.log +130 -0
  211. data/spec/support/fluentd_agent_common_behavior.rb +114 -0
  212. data/spec/support/fluentd_agent_restart_strategy.rb +94 -0
  213. data/tmp/.gitkeep +0 -0
  214. data/vendor/assets/javascripts/.keep +0 -0
  215. data/vendor/assets/javascripts/bower/es6-promise/.bower.json +15 -0
  216. data/vendor/assets/javascripts/bower/es6-promise/bower.json +5 -0
  217. data/vendor/assets/javascripts/bower/es6-promise/promise.js +684 -0
  218. data/vendor/assets/javascripts/bower/es6-promise/promise.min.js +1 -0
  219. data/vendor/assets/javascripts/bower/lodash/.bower.json +33 -0
  220. data/vendor/assets/javascripts/bower/lodash/LICENSE.txt +22 -0
  221. data/vendor/assets/javascripts/bower/lodash/bower.json +23 -0
  222. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.js +7157 -0
  223. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.min.js +61 -0
  224. data/vendor/assets/javascripts/bower/lodash/dist/lodash.js +6785 -0
  225. data/vendor/assets/javascripts/bower/lodash/dist/lodash.min.js +56 -0
  226. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.js +4979 -0
  227. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.min.js +39 -0
  228. data/vendor/assets/javascripts/bower/vue/.bower.json +29 -0
  229. data/vendor/assets/javascripts/bower/vue/LICENSE +21 -0
  230. data/vendor/assets/javascripts/bower/vue/dist/vue.js +4713 -0
  231. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +7 -0
  232. data/vendor/assets/javascripts/bower/vue/src/batcher.js +45 -0
  233. data/vendor/assets/javascripts/bower/vue/src/binding.js +103 -0
  234. data/vendor/assets/javascripts/bower/vue/src/compiler.js +1037 -0
  235. data/vendor/assets/javascripts/bower/vue/src/config.js +19 -0
  236. data/vendor/assets/javascripts/bower/vue/src/deps-parser.js +65 -0
  237. data/vendor/assets/javascripts/bower/vue/src/directive.js +258 -0
  238. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +41 -0
  239. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +56 -0
  240. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +129 -0
  241. data/vendor/assets/javascripts/bower/vue/src/directives/model.js +174 -0
  242. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +56 -0
  243. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +50 -0
  244. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +246 -0
  245. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +40 -0
  246. data/vendor/assets/javascripts/bower/vue/src/directives/view.js +56 -0
  247. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +50 -0
  248. data/vendor/assets/javascripts/bower/vue/src/emitter.js +97 -0
  249. data/vendor/assets/javascripts/bower/vue/src/exp-parser.js +190 -0
  250. data/vendor/assets/javascripts/bower/vue/src/filters.js +190 -0
  251. data/vendor/assets/javascripts/bower/vue/src/fragment.js +84 -0
  252. data/vendor/assets/javascripts/bower/vue/src/main.js +186 -0
  253. data/vendor/assets/javascripts/bower/vue/src/observer.js +446 -0
  254. data/vendor/assets/javascripts/bower/vue/src/text-parser.js +96 -0
  255. data/vendor/assets/javascripts/bower/vue/src/transition.js +228 -0
  256. data/vendor/assets/javascripts/bower/vue/src/utils.js +321 -0
  257. data/vendor/assets/javascripts/bower/vue/src/viewmodel.js +180 -0
  258. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.js +1951 -0
  259. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.min.js +6 -0
  260. data/vendor/assets/javascripts/sb-admin-v2/demo/dashboard-demo.js +117 -0
  261. data/vendor/assets/javascripts/sb-admin-v2/demo/flot-demo.js +1242 -0
  262. data/vendor/assets/javascripts/sb-admin-v2/demo/morris-demo.js +155 -0
  263. data/vendor/assets/javascripts/sb-admin-v2/jquery-1.10.2.js +6 -0
  264. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.js +245 -0
  265. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/jquery.dataTables.js +14013 -0
  266. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/excanvas.min.js +1 -0
  267. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.js +2599 -0
  268. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.pie.js +750 -0
  269. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.resize.js +60 -0
  270. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.tooltip.min.js +12 -0
  271. data/vendor/assets/javascripts/sb-admin-v2/plugins/metisMenu/jquery.metisMenu.js +45 -0
  272. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/morris.js +1888 -0
  273. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/raphael-2.1.0.min.js +10 -0
  274. data/vendor/assets/javascripts/sb-admin-v2/sb-admin.js +18 -0
  275. data/vendor/assets/stylesheets/.keep +0 -0
  276. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.css +5830 -0
  277. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.min.css +7 -0
  278. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.css +1338 -0
  279. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.min.css +4 -0
  280. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/FontAwesome.otf +0 -0
  281. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  282. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.svg +414 -0
  283. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  284. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  285. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_bordered-pulled.scss +16 -0
  286. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_core.scss +12 -0
  287. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_fixed-width.scss +6 -0
  288. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_icons.scss +412 -0
  289. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_larger.scss +13 -0
  290. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_list.scss +19 -0
  291. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_mixins.scss +20 -0
  292. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_path.scss +14 -0
  293. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_rotated-flipped.scss +9 -0
  294. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_spinning.scss +30 -0
  295. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_stacked.scss +20 -0
  296. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_variables.scss +381 -0
  297. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/font-awesome.scss +17 -0
  298. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.eot +0 -0
  299. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.svg +229 -0
  300. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.ttf +0 -0
  301. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.woff +0 -0
  302. data/vendor/assets/stylesheets/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.css +233 -0
  303. data/vendor/assets/stylesheets/sb-admin-v2/plugins/morris/morris-0.4.3.min.css +2 -0
  304. data/vendor/assets/stylesheets/sb-admin-v2/plugins/social-buttons/social-buttons.css +68 -0
  305. data/vendor/assets/stylesheets/sb-admin-v2/plugins/timeline/timeline.css +144 -0
  306. data/vendor/assets/stylesheets/sb-admin-v2/sb-admin.css +329 -0
  307. data/vendor/patterns/firewalls +60 -0
  308. data/vendor/patterns/grok-patterns +94 -0
  309. data/vendor/patterns/haproxy +37 -0
  310. data/vendor/patterns/java +3 -0
  311. data/vendor/patterns/junos +9 -0
  312. data/vendor/patterns/linux-syslog +16 -0
  313. data/vendor/patterns/mcollective +1 -0
  314. data/vendor/patterns/mcollective-patterns +4 -0
  315. data/vendor/patterns/mongodb +4 -0
  316. data/vendor/patterns/nagios +108 -0
  317. data/vendor/patterns/postgresql +3 -0
  318. data/vendor/patterns/redis +3 -0
  319. data/vendor/patterns/ruby +2 -0
  320. metadata +659 -0
@@ -0,0 +1,117 @@
1
+ en:
2
+ tutorials:
3
+ index:
4
+ step1: "Setup fluentd"
5
+ step2: "Start fluentd"
6
+ page_title: Tutorial
7
+ start_tutorial: Start tutorial
8
+ chapter1:
9
+ page_title: "Chapter 1 | Try to send data"
10
+ description: You can send an arbitrary JSON data via HTTP. URL path will be tag name.
11
+ send: Send
12
+ chapter2:
13
+ page_title: "Chapter 2 | in_http and out_stdout"
14
+ lesson_markdown: |
15
+ You can see the log when fluentd started.
16
+
17
+ 2014-06-05 14:43:14 +0900 [info]: adding source type="http"
18
+ 2014-06-05 14:43:14 +0900 [info]: adding match pattern="debug.*" type="stdout"
19
+
20
+ Line 1 enable http plugin that allows to receive HTTP requests.
21
+
22
+ Line 2 enable stdout plugin that process the data with matched `debug.*` tag.
23
+
24
+ These settings are defined as following fluent.conf:
25
+
26
+ <source>
27
+ type http
28
+ port %{http_port}
29
+ </source>
30
+
31
+ <match debug.*>
32
+ type stdout
33
+ </match>
34
+ chapter3:
35
+ page_title: "Chapter 3 | Build your fluentd!"
36
+ lesson_markdown: |
37
+ fluentd can receive from [syslog protocol](http://docs.fluentd.org/articles/in_syslog), [file](http://docs.fluentd.org/articles/in_tail), etc.
38
+
39
+ Also fluentd can output to [MongoDB](http://docs.fluentd.org/articles/out_mongo), [AWS S3](http://docs.fluentd.org/articles/out_s3), etc.
40
+
41
+ ![fluentd](/fluentd.png)
42
+
43
+ These input/output are provided as plugin. Install them and write a setting, then restart fluentd, you can get the power!
44
+
45
+ [Many plugins](/plugins/recommended) are available. And you can [edit config file from here](%{edit_config_url}).
46
+ chapter4:
47
+ page_title: "Chapter 4 | Use case"
48
+ lesson_markdown: |
49
+ ### Monitoring Apache 5xx response and email it
50
+
51
+ **Required plugins**
52
+
53
+ - fluent-plugin-grepcounter
54
+ - fluent-plugin-mail
55
+
56
+ **config file example**
57
+
58
+ <source>
59
+ type tail
60
+ format apache2
61
+ path /var/log/apache2/access.log #This is the location of your Apache log
62
+ tag apache.access
63
+ </source>
64
+
65
+ <match apache.access>
66
+ type grepcounter
67
+ count_interval 3 # Time window to grep and count the # of events
68
+ input_key code # We look at the (http status) "code" field
69
+ regexp ^5\d\d$ # This regexp matches 5xx status codes
70
+ threshold 1 # The # of events to trigger emitting an output
71
+ add_tag_prefix error_5xx # The output event's tag will be error_5xx.apache.access
72
+ </match>
73
+
74
+ <match error_5xx.apache.access>
75
+ # The event that comes here looks like
76
+ # {
77
+ # "count":1,
78
+ # "input_tag":"error_5xx.apache.access",
79
+ # "input_tag_last":"access",
80
+ # "message":[500]
81
+ # }
82
+
83
+ type mail
84
+ host smtp.gmail.com # This is for Gmail and Google Apps. Any SMTP server should work
85
+ port 587 # port for smtp.gmail.com
86
+ user example@gmail.com # your Gmail here for login
87
+ password XXXXXX # Gmail password
88
+ enable_starttls_auto true # Gmail required this
89
+
90
+ from YOUR_SENDER_EMAIL_HERE
91
+ to YOUR_RECIPIENT_EMAIL_HERE
92
+ subject [URGENT] APACHE 5XX ERROR
93
+ message Total 5xx error count: %s\n\nPlease check your Apache webserver ASAP
94
+ message_out_keys count # The value of 'count' will be substituted into %s above.
95
+ </match>
96
+
97
+ **process flow**
98
+
99
+ [log file] ->
100
+ (in_tail) ->
101
+ Capturing file content with tagged as apache.access ->
102
+ (match apache.access) ->
103
+ "grepcounter" re-send data with appending prefix ->
104
+ (match error_5xx.apache.access) ->
105
+ "mail" send a mail
106
+ chapter5:
107
+ page_title: "Chapter 5 | Finish!"
108
+ lesson_markdown: |
109
+ Tutorial is over. congratulation!
110
+
111
+ Other resources:
112
+
113
+ - [Quick start](http://docs.fluentd.org/articles/quickstart)
114
+ - [Forum](https://groups.google.com/forum/?fromgroups#!forum/fluentd)
115
+ - [Source code(GitHub)](https://github.com/fluent/fluentd)
116
+ - [Twitter @fluentd](https://twitter.com/fluentd)
117
+
@@ -0,0 +1,120 @@
1
+ ja:
2
+ tutorials:
3
+ index:
4
+ page_title: チュートリアル
5
+ step1: "fluentdをセットアップ"
6
+ step2: "fluentdを起動"
7
+ start_tutorial: "チュートリアルを始める"
8
+ chapter1:
9
+ page_title: "Chapter 1 | データを渡してみる"
10
+ description: fluentdに任意のデータをJSONで送ることができます。URLのパスがタグの名前になります。
11
+ learn_more: |
12
+ 他にもin_tail, in_syslogなどのinputプラグインがあります。
13
+ <a href="http://docs.fluentd.org/ja/articles/input-plugin-overview">Learn More</a>
14
+ send: 送信
15
+ chapter2:
16
+ page_title: "Chapter 2 | in_httpとout_stdout"
17
+ lesson_markdown: |
18
+ fluentdの起動時にこのようなログがあるかと思います。
19
+
20
+ 2014-06-05 14:43:14 +0900 [info]: adding source type="http"
21
+ 2014-06-05 14:43:14 +0900 [info]: adding match pattern="debug.*" type="stdout"
22
+
23
+ この1行目でhttpが有効化されています。これでHTTPリクエストを受け付けるようになります。
24
+
25
+ 2行目でstdoutが有効化されています。受け取ったデータのうち、タグが`debug.*`にマッチするものはstdoutへと渡されます。
26
+
27
+ この2つはfluent.confでそれぞれ次のように設定されています。
28
+
29
+ <source>
30
+ type http
31
+ port %{http_port}
32
+ </source>
33
+
34
+ <match debug.*>
35
+ type stdout
36
+ </match>
37
+ chapter3:
38
+ page_title: "Chapter 3 | fluentdを構築しよう!"
39
+ lesson_markdown: |
40
+ fluentdはHTTP以外にも[syslogプロトコル](http://docs.fluentd.org/ja/articles/in_syslog)や[ファイル](http://docs.fluentd.org/ja/articles/in_tail)を入力として受け取ることができます。
41
+
42
+ また出力についても、stdout以外に[MongoDB](http://docs.fluentd.org/ja/articles/out_mongo)や[AWS S3](http://docs.fluentd.org/ja/articles/out_s3)などを出力先として指定できます。
43
+
44
+ ![fluentd](/fluentd.png)
45
+
46
+ これらはプラグインとして提供されています。プラグインをインストールし、設定ファイルに追記してfluentdを再起動すると使用可能となります。
47
+
48
+ [数多くのプラグイン](/plugins/recommended)がありますので、用途にあったものを探して使いましょう! 設定ファイルは[ここから編集できます。](%{edit_config_url})
49
+ chapter4:
50
+ page_title: "Chapter 4 | 設定事例"
51
+ lesson_markdown: |
52
+ ### 例:Apacheの5xxレスポンスを検知してメールを送る
53
+
54
+ **必要なプラグイン**
55
+
56
+ - fluent-plugin-grepcounter
57
+ - fluent-plugin-mail
58
+
59
+ **設定ファイル例**
60
+
61
+ <source>
62
+ type tail
63
+ format apache2
64
+ path /var/log/apache2/access.log #This is the location of your Apache log
65
+ tag apache.access
66
+ </source>
67
+
68
+ <match apache.access>
69
+ type grepcounter
70
+ count_interval 3 # Time window to grep and count the # of events
71
+ input_key code # We look at the (http status) "code" field
72
+ regexp ^5\d\d$ # This regexp matches 5xx status codes
73
+ threshold 1 # The # of events to trigger emitting an output
74
+ add_tag_prefix error_5xx # The output event's tag will be error_5xx.apache.access
75
+ </match>
76
+
77
+ <match error_5xx.apache.access>
78
+ # The event that comes here looks like
79
+ # {
80
+ # "count":1,
81
+ # "input_tag":"error_5xx.apache.access",
82
+ # "input_tag_last":"access",
83
+ # "message":[500]
84
+ # }
85
+
86
+ type mail
87
+ host smtp.gmail.com # This is for Gmail and Google Apps. Any SMTP server should work
88
+ port 587 # port for smtp.gmail.com
89
+ user example@gmail.com # your Gmail here for login
90
+ password XXXXXX # Gmail password
91
+ enable_starttls_auto true # Gmail required this
92
+
93
+ from YOUR_SENDER_EMAIL_HERE
94
+ to YOUR_RECIPIENT_EMAIL_HERE
95
+ subject [URGENT] APACHE 5XX ERROR
96
+ message Total 5xx error count: %s\n\nPlease check your Apache webserver ASAP
97
+ message_out_keys count # The value of 'count' will be substituted into %s above.
98
+ </match>
99
+
100
+ **処理の流れ**
101
+
102
+ [log file] ->
103
+ (in_tail) ->
104
+ apache.accessタグでfluentdに取り込む ->
105
+ (apache.accessにマッチ) ->
106
+ grepcounterがタグにprefixを追加して再送 ->
107
+ (error_5xx.apache.accessにマッチ) ->
108
+ mailがメール送信
109
+ chapter5:
110
+ page_title: "Chapter 5 | チュートリアル完了"
111
+ lesson_markdown: |
112
+ 以上でチュートリアルは終了です。お疲れさまでした!
113
+
114
+ 関連リソース:
115
+
116
+ - [クイックスタートガイド](http://docs.fluentd.org/ja/articles/quickstart)
117
+ - [メーリングリスト](https://groups.google.com/forum/?fromgroups#!forum/fluentd)
118
+ - [ソースコード(GitHub)](https://github.com/fluent/fluentd)
119
+ - [Twitter @fluentd](https://twitter.com/fluentd)
120
+
@@ -0,0 +1,93 @@
1
+ Rails.application.routes.draw do
2
+ root "welcome#home"
3
+
4
+ resource :daemon, controller: :fluentd do
5
+ get "log"
6
+ get "raw_log"
7
+ get "errors"
8
+
9
+ scope module: :fluentd do
10
+ resource :agent, only: [] do
11
+ put "start"
12
+ put "stop"
13
+ put "restart"
14
+ get "log_tail"
15
+ end
16
+
17
+ resource :setting, only: [:show, :edit, :update] do
18
+ get "source_and_output"
19
+
20
+ resource :in_tail, only: [:show], module: :settings, controller: :in_tail do
21
+ post "after_file_choose"
22
+ post "after_format"
23
+ post "confirm"
24
+ post "finish"
25
+ end
26
+
27
+ resource :in_syslog, only: [:show], module: :settings, controller: :in_syslog do
28
+ post "finish"
29
+ end
30
+
31
+ resource :out_mongo, only: [:show], module: :settings, controller: :out_mongo do
32
+ post "finish"
33
+ end
34
+
35
+ resource :out_td, only: [:show], module: :settings, controller: :out_td do
36
+ post "finish"
37
+ end
38
+
39
+ resource :out_s3, only: [:show], module: :settings, controller: :out_s3 do
40
+ post "finish"
41
+ end
42
+
43
+ resource :out_forward, only: [:show], module: :settings, controller: :out_forward do
44
+ post "finish"
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ resource :sessions
51
+
52
+ resources :plugins do
53
+ collection do
54
+ get :installed
55
+ get :recommended
56
+ get :updated
57
+ patch :install
58
+ patch :uninstall
59
+ patch :upgrade
60
+ patch :bulk_upgrade
61
+ end
62
+ end
63
+
64
+ resource :user, only: [:show, :edit, :update]
65
+
66
+ get "misc" => "misc#show"
67
+ get "misc/information"
68
+ post "misc/update_fluentd_ui"
69
+ get "misc/upgrading_status"
70
+ get "misc/download_info"
71
+
72
+ namespace :polling do
73
+ get "alerts"
74
+ end
75
+
76
+ namespace :tutorials do
77
+ get "/" => :index
78
+ get "chapter1"
79
+ get "chapter2"
80
+ get "chapter3"
81
+ get "chapter4"
82
+ get "chapter5"
83
+ get "log_tail"
84
+ post "request_fluentd"
85
+ end
86
+
87
+ namespace :api do
88
+ get "tree"
89
+ get "file_preview"
90
+ post "regexp_preview"
91
+ post "grok_to_regexp"
92
+ end
93
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: 79a259b8c70133d47d6d667fb932021e6b2e1a6be3cbd378f3a1105eaabbfbcc9b7804473c94f60c0f599f8a885fd831425e79b3bf35b3cf2f06ad4979de6048
15
+
16
+ test:
17
+ secret_key_base: fe23b4a81c05fab9380d5a5214f33055b6cf2cc75dcc5f3d0cd5128f2893b31b8dd47b707829ef0dcefe3146e3dc10e57552b717ab47c1c56022a20fc806ba67
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
File without changes
@@ -0,0 +1,11 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
+ # Mayor.create(name: 'Emanuel', city: cities.first)
8
+
9
+ unless User.exists?
10
+ User.create!(name: "admin", password: Settings.default_password)
11
+ end
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'fluentd-ui/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "fluentd-ui"
8
+ spec.version = FluentdUI::VERSION
9
+ spec.authors = ["Masahiro Nakagawa", "uu59"]
10
+ spec.email = ["repeatedly@gmail.com", "k@uu59.org"]
11
+ spec.summary = %q{Web UI for Fluentd}
12
+ spec.description = %q{Web UI for Fluentd}
13
+ spec.homepage = "https://github.com/fluent/fluentd-ui"
14
+ spec.license = "MIT"
15
+
16
+ unless (ARGV & %w(rake build)).length.zero?
17
+ # NOTE: `fluentd-ui start` will run `bundle exec ...`. so this gemspec file evaluated by bundler then exec `git ls-files`
18
+ # but `git ls-files` would be warn if $PWD is not git dir, and unnecessary this step for to do it.
19
+ # And spec.files required for building a .gem only.
20
+ # Thus git ls-files only invoked with `rake build` command
21
+ spec.files = `git ls-files`.split($/)
22
+ end
23
+ spec.executables = ["fluentd-ui"]
24
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
25
+ spec.require_paths = ["lib"]
26
+
27
+ spec.add_dependency "fluentd", "~> 0.10.51"
28
+ spec.add_dependency 'rails', '4.1.4'
29
+ spec.add_dependency 'sucker_punch', "~> 1.0.5"
30
+ spec.add_dependency 'i18n_generators', '1.2.1'
31
+ spec.add_dependency 'bcrypt', '~> 3.1.5'
32
+ spec.add_dependency 'addressable'
33
+ spec.add_dependency "font-awesome-rails"
34
+ spec.add_dependency 'sass-rails', '~> 4.0.3'
35
+ spec.add_dependency "haml-rails", "~> 0.5.3"
36
+ spec.add_dependency 'jquery-rails', "~> 3.1.0"
37
+ spec.add_dependency 'jbuilder', '~> 2.0'
38
+ spec.add_dependency "bundler"
39
+ spec.add_dependency "httpclient"
40
+ spec.add_dependency "settingslogic"
41
+ spec.add_dependency "puma"
42
+ spec.add_dependency "thor"
43
+ spec.add_dependency "kramdown", "> 1.0.0"
44
+ spec.add_dependency "kramdown-haml"
45
+ spec.add_dependency "rubyzip", "~> 1.1" # API changed as Zip::ZipFile -> Zip::File since v1.0.0
46
+ end
File without changes
@@ -0,0 +1,56 @@
1
+ class FileReverseReader
2
+ attr_reader :io, :step
3
+
4
+ def initialize(io, step = 1024 * 1024 * 1)
5
+ @io = io
6
+ @step = step
7
+ end
8
+
9
+ def each_line(&block)
10
+ io.seek(0, IO::SEEK_END)
11
+ buf = ""
12
+ loop do
13
+ if reach_start_of_file?
14
+ last_pos = io.pos
15
+ io.seek(0, IO::SEEK_SET)
16
+ buf.insert(0, io.read(last_pos))
17
+ split_each_line(buf, &block)
18
+ break
19
+ end
20
+
21
+ io.seek(-1 * step, IO::SEEK_CUR)
22
+ buf.insert(0, io.read(step))
23
+ io.seek(-1 * step, IO::SEEK_CUR)
24
+ next if buf[$/].nil?
25
+ gap = buf.index($/)
26
+ buf.gsub!(/\A.*?\n/, "")
27
+ split_each_line(buf, &block)
28
+ buf = ""
29
+ io.seek(gap, IO::SEEK_CUR)
30
+ end
31
+ end
32
+
33
+ def tail(limit = 10)
34
+ enum_for(:each_line).first(limit).reverse
35
+ end
36
+
37
+ def binary_file?
38
+ sample = io.read(1024) || ""
39
+ sample2 = sample.force_encoding('ascii-8bit').encode('us-ascii', :undef => :replace, :invalid => :replace, :replace => "")
40
+ sample != sample2 # maybe binary file
41
+ ensure
42
+ io.rewind
43
+ end
44
+
45
+ private
46
+
47
+ def split_each_line(buf, &block)
48
+ buf.split($/).reverse.each do |line|
49
+ block.call(line)
50
+ end
51
+ end
52
+
53
+ def reach_start_of_file?
54
+ step >= io.pos
55
+ end
56
+ end