logstash-lib 1.3.2

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.
Files changed (419) hide show
  1. data/.gitignore +24 -0
  2. data/.tailor +8 -0
  3. data/.travis.yml +12 -0
  4. data/CHANGELOG +1185 -0
  5. data/CONTRIBUTING.md +61 -0
  6. data/CONTRIBUTORS +79 -0
  7. data/LICENSE +14 -0
  8. data/Makefile +460 -0
  9. data/README.md +120 -0
  10. data/STYLE.md +96 -0
  11. data/bin/logstash +37 -0
  12. data/bin/logstash-test +4 -0
  13. data/bin/logstash-web +4 -0
  14. data/bin/logstash.lib.sh +78 -0
  15. data/bot/check_pull_changelog.rb +89 -0
  16. data/docs/configuration.md +260 -0
  17. data/docs/docgen.rb +242 -0
  18. data/docs/extending/example-add-a-new-filter.md +121 -0
  19. data/docs/extending/index.md +91 -0
  20. data/docs/flags.md +43 -0
  21. data/docs/generate_index.rb +28 -0
  22. data/docs/index.html.erb +56 -0
  23. data/docs/learn.md +46 -0
  24. data/docs/life-of-an-event.md +109 -0
  25. data/docs/logging-tool-comparisons.md +60 -0
  26. data/docs/plugin-doc.html.erb +91 -0
  27. data/docs/plugin-milestones.md +41 -0
  28. data/docs/plugin-synopsis.html.erb +24 -0
  29. data/docs/release-engineering.md +46 -0
  30. data/docs/release-test-results.md +14 -0
  31. data/docs/repositories.md +35 -0
  32. data/docs/tutorials/10-minute-walkthrough/apache-elasticsearch.conf +35 -0
  33. data/docs/tutorials/10-minute-walkthrough/apache-parse.conf +33 -0
  34. data/docs/tutorials/10-minute-walkthrough/apache_log.1 +1 -0
  35. data/docs/tutorials/10-minute-walkthrough/apache_log.2.bz2 +0 -0
  36. data/docs/tutorials/10-minute-walkthrough/hello-search.conf +25 -0
  37. data/docs/tutorials/10-minute-walkthrough/hello.conf +16 -0
  38. data/docs/tutorials/10-minute-walkthrough/index.md +124 -0
  39. data/docs/tutorials/10-minute-walkthrough/step-5-output.txt +17 -0
  40. data/docs/tutorials/getting-started-centralized-overview-diagram.png +0 -0
  41. data/docs/tutorials/getting-started-centralized-overview-diagram.xml +1 -0
  42. data/docs/tutorials/getting-started-centralized.md +217 -0
  43. data/docs/tutorials/getting-started-simple.md +200 -0
  44. data/docs/tutorials/just-enough-rabbitmq-for-logstash.md +201 -0
  45. data/docs/tutorials/media/frontend-response-codes.png +0 -0
  46. data/docs/tutorials/metrics-from-logs.md +84 -0
  47. data/docs/tutorials/zeromq.md +118 -0
  48. data/extract_services.rb +29 -0
  49. data/gembag.rb +64 -0
  50. data/lib/logstash-event.rb +2 -0
  51. data/lib/logstash.rb +4 -0
  52. data/lib/logstash/JRUBY-6970-openssl.rb +22 -0
  53. data/lib/logstash/JRUBY-6970.rb +102 -0
  54. data/lib/logstash/agent.rb +305 -0
  55. data/lib/logstash/certs/cacert.pem +3895 -0
  56. data/lib/logstash/codecs/base.rb +49 -0
  57. data/lib/logstash/codecs/compress_spooler.rb +50 -0
  58. data/lib/logstash/codecs/dots.rb +18 -0
  59. data/lib/logstash/codecs/edn.rb +28 -0
  60. data/lib/logstash/codecs/edn_lines.rb +36 -0
  61. data/lib/logstash/codecs/fluent.rb +55 -0
  62. data/lib/logstash/codecs/graphite.rb +114 -0
  63. data/lib/logstash/codecs/json.rb +41 -0
  64. data/lib/logstash/codecs/json_lines.rb +52 -0
  65. data/lib/logstash/codecs/json_spooler.rb +22 -0
  66. data/lib/logstash/codecs/line.rb +58 -0
  67. data/lib/logstash/codecs/msgpack.rb +43 -0
  68. data/lib/logstash/codecs/multiline.rb +189 -0
  69. data/lib/logstash/codecs/netflow.rb +342 -0
  70. data/lib/logstash/codecs/netflow/util.rb +212 -0
  71. data/lib/logstash/codecs/noop.rb +19 -0
  72. data/lib/logstash/codecs/oldlogstashjson.rb +56 -0
  73. data/lib/logstash/codecs/plain.rb +48 -0
  74. data/lib/logstash/codecs/rubydebug.rb +22 -0
  75. data/lib/logstash/codecs/spool.rb +38 -0
  76. data/lib/logstash/config/Makefile +4 -0
  77. data/lib/logstash/config/config_ast.rb +380 -0
  78. data/lib/logstash/config/file.rb +39 -0
  79. data/lib/logstash/config/grammar.rb +3504 -0
  80. data/lib/logstash/config/grammar.treetop +241 -0
  81. data/lib/logstash/config/mixin.rb +464 -0
  82. data/lib/logstash/config/registry.rb +13 -0
  83. data/lib/logstash/config/test.conf +18 -0
  84. data/lib/logstash/errors.rb +10 -0
  85. data/lib/logstash/event.rb +262 -0
  86. data/lib/logstash/filters/advisor.rb +178 -0
  87. data/lib/logstash/filters/alter.rb +173 -0
  88. data/lib/logstash/filters/anonymize.rb +93 -0
  89. data/lib/logstash/filters/base.rb +190 -0
  90. data/lib/logstash/filters/checksum.rb +50 -0
  91. data/lib/logstash/filters/cidr.rb +76 -0
  92. data/lib/logstash/filters/cipher.rb +145 -0
  93. data/lib/logstash/filters/clone.rb +35 -0
  94. data/lib/logstash/filters/collate.rb +114 -0
  95. data/lib/logstash/filters/csv.rb +94 -0
  96. data/lib/logstash/filters/date.rb +244 -0
  97. data/lib/logstash/filters/dns.rb +201 -0
  98. data/lib/logstash/filters/drop.rb +32 -0
  99. data/lib/logstash/filters/elapsed.rb +256 -0
  100. data/lib/logstash/filters/elasticsearch.rb +73 -0
  101. data/lib/logstash/filters/environment.rb +27 -0
  102. data/lib/logstash/filters/extractnumbers.rb +84 -0
  103. data/lib/logstash/filters/gelfify.rb +52 -0
  104. data/lib/logstash/filters/geoip.rb +145 -0
  105. data/lib/logstash/filters/grep.rb +153 -0
  106. data/lib/logstash/filters/grok.rb +425 -0
  107. data/lib/logstash/filters/grokdiscovery.rb +75 -0
  108. data/lib/logstash/filters/i18n.rb +51 -0
  109. data/lib/logstash/filters/json.rb +90 -0
  110. data/lib/logstash/filters/json_encode.rb +52 -0
  111. data/lib/logstash/filters/kv.rb +232 -0
  112. data/lib/logstash/filters/metaevent.rb +68 -0
  113. data/lib/logstash/filters/metrics.rb +237 -0
  114. data/lib/logstash/filters/multiline.rb +241 -0
  115. data/lib/logstash/filters/mutate.rb +399 -0
  116. data/lib/logstash/filters/noop.rb +21 -0
  117. data/lib/logstash/filters/prune.rb +149 -0
  118. data/lib/logstash/filters/punct.rb +32 -0
  119. data/lib/logstash/filters/railsparallelrequest.rb +86 -0
  120. data/lib/logstash/filters/range.rb +142 -0
  121. data/lib/logstash/filters/ruby.rb +42 -0
  122. data/lib/logstash/filters/sleep.rb +111 -0
  123. data/lib/logstash/filters/split.rb +64 -0
  124. data/lib/logstash/filters/sumnumbers.rb +73 -0
  125. data/lib/logstash/filters/syslog_pri.rb +107 -0
  126. data/lib/logstash/filters/translate.rb +121 -0
  127. data/lib/logstash/filters/unique.rb +29 -0
  128. data/lib/logstash/filters/urldecode.rb +57 -0
  129. data/lib/logstash/filters/useragent.rb +112 -0
  130. data/lib/logstash/filters/uuid.rb +58 -0
  131. data/lib/logstash/filters/xml.rb +139 -0
  132. data/lib/logstash/filters/zeromq.rb +123 -0
  133. data/lib/logstash/filterworker.rb +122 -0
  134. data/lib/logstash/inputs/base.rb +125 -0
  135. data/lib/logstash/inputs/collectd.rb +306 -0
  136. data/lib/logstash/inputs/drupal_dblog.rb +323 -0
  137. data/lib/logstash/inputs/drupal_dblog/jdbcconnection.rb +66 -0
  138. data/lib/logstash/inputs/elasticsearch.rb +140 -0
  139. data/lib/logstash/inputs/eventlog.rb +129 -0
  140. data/lib/logstash/inputs/eventlog/racob_fix.rb +44 -0
  141. data/lib/logstash/inputs/exec.rb +69 -0
  142. data/lib/logstash/inputs/file.rb +146 -0
  143. data/lib/logstash/inputs/ganglia.rb +127 -0
  144. data/lib/logstash/inputs/ganglia/gmondpacket.rb +146 -0
  145. data/lib/logstash/inputs/ganglia/xdr.rb +327 -0
  146. data/lib/logstash/inputs/gelf.rb +138 -0
  147. data/lib/logstash/inputs/gemfire.rb +222 -0
  148. data/lib/logstash/inputs/generator.rb +97 -0
  149. data/lib/logstash/inputs/graphite.rb +41 -0
  150. data/lib/logstash/inputs/heroku.rb +51 -0
  151. data/lib/logstash/inputs/imap.rb +136 -0
  152. data/lib/logstash/inputs/irc.rb +84 -0
  153. data/lib/logstash/inputs/log4j.rb +136 -0
  154. data/lib/logstash/inputs/lumberjack.rb +53 -0
  155. data/lib/logstash/inputs/pipe.rb +57 -0
  156. data/lib/logstash/inputs/rabbitmq.rb +126 -0
  157. data/lib/logstash/inputs/rabbitmq/bunny.rb +118 -0
  158. data/lib/logstash/inputs/rabbitmq/hot_bunnies.rb +1 -0
  159. data/lib/logstash/inputs/rabbitmq/march_hare.rb +129 -0
  160. data/lib/logstash/inputs/redis.rb +263 -0
  161. data/lib/logstash/inputs/relp.rb +106 -0
  162. data/lib/logstash/inputs/s3.rb +279 -0
  163. data/lib/logstash/inputs/snmptrap.rb +87 -0
  164. data/lib/logstash/inputs/sqlite.rb +185 -0
  165. data/lib/logstash/inputs/sqs.rb +172 -0
  166. data/lib/logstash/inputs/stdin.rb +46 -0
  167. data/lib/logstash/inputs/stomp.rb +84 -0
  168. data/lib/logstash/inputs/syslog.rb +237 -0
  169. data/lib/logstash/inputs/tcp.rb +231 -0
  170. data/lib/logstash/inputs/threadable.rb +18 -0
  171. data/lib/logstash/inputs/twitter.rb +82 -0
  172. data/lib/logstash/inputs/udp.rb +81 -0
  173. data/lib/logstash/inputs/unix.rb +163 -0
  174. data/lib/logstash/inputs/varnishlog.rb +48 -0
  175. data/lib/logstash/inputs/websocket.rb +50 -0
  176. data/lib/logstash/inputs/wmi.rb +72 -0
  177. data/lib/logstash/inputs/xmpp.rb +81 -0
  178. data/lib/logstash/inputs/zenoss.rb +143 -0
  179. data/lib/logstash/inputs/zeromq.rb +165 -0
  180. data/lib/logstash/kibana.rb +113 -0
  181. data/lib/logstash/loadlibs.rb +9 -0
  182. data/lib/logstash/logging.rb +89 -0
  183. data/lib/logstash/monkeypatches-for-bugs.rb +2 -0
  184. data/lib/logstash/monkeypatches-for-debugging.rb +47 -0
  185. data/lib/logstash/monkeypatches-for-performance.rb +66 -0
  186. data/lib/logstash/multiqueue.rb +53 -0
  187. data/lib/logstash/namespace.rb +16 -0
  188. data/lib/logstash/outputs/base.rb +120 -0
  189. data/lib/logstash/outputs/boundary.rb +116 -0
  190. data/lib/logstash/outputs/circonus.rb +78 -0
  191. data/lib/logstash/outputs/cloudwatch.rb +351 -0
  192. data/lib/logstash/outputs/csv.rb +55 -0
  193. data/lib/logstash/outputs/datadog.rb +93 -0
  194. data/lib/logstash/outputs/datadog_metrics.rb +123 -0
  195. data/lib/logstash/outputs/elasticsearch.rb +332 -0
  196. data/lib/logstash/outputs/elasticsearch/elasticsearch-template.json +44 -0
  197. data/lib/logstash/outputs/elasticsearch_http.rb +256 -0
  198. data/lib/logstash/outputs/elasticsearch_river.rb +214 -0
  199. data/lib/logstash/outputs/email.rb +299 -0
  200. data/lib/logstash/outputs/exec.rb +40 -0
  201. data/lib/logstash/outputs/file.rb +180 -0
  202. data/lib/logstash/outputs/ganglia.rb +75 -0
  203. data/lib/logstash/outputs/gelf.rb +208 -0
  204. data/lib/logstash/outputs/gemfire.rb +103 -0
  205. data/lib/logstash/outputs/google_bigquery.rb +570 -0
  206. data/lib/logstash/outputs/google_cloud_storage.rb +431 -0
  207. data/lib/logstash/outputs/graphite.rb +143 -0
  208. data/lib/logstash/outputs/graphtastic.rb +185 -0
  209. data/lib/logstash/outputs/hipchat.rb +80 -0
  210. data/lib/logstash/outputs/http.rb +142 -0
  211. data/lib/logstash/outputs/irc.rb +80 -0
  212. data/lib/logstash/outputs/jira.rb +109 -0
  213. data/lib/logstash/outputs/juggernaut.rb +105 -0
  214. data/lib/logstash/outputs/librato.rb +146 -0
  215. data/lib/logstash/outputs/loggly.rb +93 -0
  216. data/lib/logstash/outputs/lumberjack.rb +51 -0
  217. data/lib/logstash/outputs/metriccatcher.rb +103 -0
  218. data/lib/logstash/outputs/mongodb.rb +81 -0
  219. data/lib/logstash/outputs/nagios.rb +119 -0
  220. data/lib/logstash/outputs/nagios_nsca.rb +123 -0
  221. data/lib/logstash/outputs/null.rb +18 -0
  222. data/lib/logstash/outputs/opentsdb.rb +101 -0
  223. data/lib/logstash/outputs/pagerduty.rb +79 -0
  224. data/lib/logstash/outputs/pipe.rb +132 -0
  225. data/lib/logstash/outputs/rabbitmq.rb +96 -0
  226. data/lib/logstash/outputs/rabbitmq/bunny.rb +135 -0
  227. data/lib/logstash/outputs/rabbitmq/hot_bunnies.rb +1 -0
  228. data/lib/logstash/outputs/rabbitmq/march_hare.rb +143 -0
  229. data/lib/logstash/outputs/redis.rb +245 -0
  230. data/lib/logstash/outputs/riak.rb +152 -0
  231. data/lib/logstash/outputs/riemann.rb +109 -0
  232. data/lib/logstash/outputs/s3.rb +356 -0
  233. data/lib/logstash/outputs/sns.rb +124 -0
  234. data/lib/logstash/outputs/solr_http.rb +78 -0
  235. data/lib/logstash/outputs/sqs.rb +141 -0
  236. data/lib/logstash/outputs/statsd.rb +116 -0
  237. data/lib/logstash/outputs/stdout.rb +53 -0
  238. data/lib/logstash/outputs/stomp.rb +67 -0
  239. data/lib/logstash/outputs/syslog.rb +145 -0
  240. data/lib/logstash/outputs/tcp.rb +145 -0
  241. data/lib/logstash/outputs/udp.rb +38 -0
  242. data/lib/logstash/outputs/websocket.rb +46 -0
  243. data/lib/logstash/outputs/websocket/app.rb +29 -0
  244. data/lib/logstash/outputs/websocket/pubsub.rb +45 -0
  245. data/lib/logstash/outputs/xmpp.rb +78 -0
  246. data/lib/logstash/outputs/zabbix.rb +108 -0
  247. data/lib/logstash/outputs/zeromq.rb +125 -0
  248. data/lib/logstash/pipeline.rb +286 -0
  249. data/lib/logstash/plugin.rb +150 -0
  250. data/lib/logstash/plugin_mixins/aws_config.rb +93 -0
  251. data/lib/logstash/program.rb +15 -0
  252. data/lib/logstash/runner.rb +238 -0
  253. data/lib/logstash/sized_queue.rb +8 -0
  254. data/lib/logstash/test.rb +183 -0
  255. data/lib/logstash/threadwatchdog.rb +37 -0
  256. data/lib/logstash/time_addon.rb +33 -0
  257. data/lib/logstash/util.rb +106 -0
  258. data/lib/logstash/util/buftok.rb +139 -0
  259. data/lib/logstash/util/charset.rb +39 -0
  260. data/lib/logstash/util/fieldreference.rb +50 -0
  261. data/lib/logstash/util/password.rb +25 -0
  262. data/lib/logstash/util/prctl.rb +11 -0
  263. data/lib/logstash/util/relp.rb +326 -0
  264. data/lib/logstash/util/require-helper.rb +18 -0
  265. data/lib/logstash/util/socket_peer.rb +7 -0
  266. data/lib/logstash/util/zenoss.rb +566 -0
  267. data/lib/logstash/util/zeromq.rb +47 -0
  268. data/lib/logstash/version.rb +6 -0
  269. data/locales/en.yml +170 -0
  270. data/logstash-event.gemspec +29 -0
  271. data/logstash.gemspec +128 -0
  272. data/patterns/firewalls +60 -0
  273. data/patterns/grok-patterns +91 -0
  274. data/patterns/haproxy +37 -0
  275. data/patterns/java +3 -0
  276. data/patterns/linux-syslog +14 -0
  277. data/patterns/mcollective +1 -0
  278. data/patterns/mcollective-patterns +4 -0
  279. data/patterns/nagios +108 -0
  280. data/patterns/postgresql +3 -0
  281. data/patterns/redis +3 -0
  282. data/patterns/ruby +2 -0
  283. data/pkg/build.sh +135 -0
  284. data/pkg/centos/after-install.sh +1 -0
  285. data/pkg/centos/before-install.sh +10 -0
  286. data/pkg/centos/before-remove.sh +11 -0
  287. data/pkg/centos/sysconfig +15 -0
  288. data/pkg/debian/after-install.sh +5 -0
  289. data/pkg/debian/before-install.sh +13 -0
  290. data/pkg/debian/before-remove.sh +13 -0
  291. data/pkg/debian/build.sh +34 -0
  292. data/pkg/debian/debian/README +6 -0
  293. data/pkg/debian/debian/changelog +17 -0
  294. data/pkg/debian/debian/compat +1 -0
  295. data/pkg/debian/debian/control +16 -0
  296. data/pkg/debian/debian/copyright +27 -0
  297. data/pkg/debian/debian/dirs +19 -0
  298. data/pkg/debian/debian/docs +0 -0
  299. data/pkg/debian/debian/logstash.default +39 -0
  300. data/pkg/debian/debian/logstash.init +201 -0
  301. data/pkg/debian/debian/logstash.install +1 -0
  302. data/pkg/debian/debian/logstash.logrotate +9 -0
  303. data/pkg/debian/debian/logstash.postinst +68 -0
  304. data/pkg/debian/debian/logstash.postrm +23 -0
  305. data/pkg/debian/debian/manpage.1.ex +59 -0
  306. data/pkg/debian/debian/preinst.ex +37 -0
  307. data/pkg/debian/debian/prerm.ex +40 -0
  308. data/pkg/debian/debian/release.conf +5 -0
  309. data/pkg/debian/debian/rules +80 -0
  310. data/pkg/debian/debian/watch.ex +22 -0
  311. data/pkg/logrotate.conf +8 -0
  312. data/pkg/logstash-web.default +41 -0
  313. data/pkg/logstash-web.sysv.debian +201 -0
  314. data/pkg/logstash-web.upstart.ubuntu +18 -0
  315. data/pkg/logstash.default +45 -0
  316. data/pkg/logstash.sysv.debian +202 -0
  317. data/pkg/logstash.sysv.redhat +158 -0
  318. data/pkg/logstash.upstart.ubuntu +20 -0
  319. data/pkg/rpm/SOURCES/logstash.conf +26 -0
  320. data/pkg/rpm/SOURCES/logstash.init +80 -0
  321. data/pkg/rpm/SOURCES/logstash.logrotate +8 -0
  322. data/pkg/rpm/SOURCES/logstash.sysconfig +3 -0
  323. data/pkg/rpm/SOURCES/logstash.wrapper +105 -0
  324. data/pkg/rpm/SPECS/logstash.spec +180 -0
  325. data/pkg/rpm/readme.md +4 -0
  326. data/pkg/ubuntu/after-install.sh +7 -0
  327. data/pkg/ubuntu/before-install.sh +12 -0
  328. data/pkg/ubuntu/before-remove.sh +13 -0
  329. data/pull_release_note.rb +25 -0
  330. data/require-analyze.rb +22 -0
  331. data/spec/README.md +14 -0
  332. data/spec/codecs/edn.rb +40 -0
  333. data/spec/codecs/edn_lines.rb +53 -0
  334. data/spec/codecs/graphite.rb +96 -0
  335. data/spec/codecs/json.rb +57 -0
  336. data/spec/codecs/json_lines.rb +51 -0
  337. data/spec/codecs/json_spooler.rb +43 -0
  338. data/spec/codecs/msgpack.rb +39 -0
  339. data/spec/codecs/multiline.rb +60 -0
  340. data/spec/codecs/oldlogstashjson.rb +55 -0
  341. data/spec/codecs/plain.rb +35 -0
  342. data/spec/codecs/spool.rb +35 -0
  343. data/spec/conditionals/test.rb +323 -0
  344. data/spec/config.rb +31 -0
  345. data/spec/event.rb +165 -0
  346. data/spec/examples/fail2ban.rb +28 -0
  347. data/spec/examples/graphite-input.rb +41 -0
  348. data/spec/examples/mysql-slow-query.rb +70 -0
  349. data/spec/examples/parse-apache-logs.rb +66 -0
  350. data/spec/examples/parse-haproxy-logs.rb +115 -0
  351. data/spec/examples/syslog.rb +48 -0
  352. data/spec/filters/alter.rb +96 -0
  353. data/spec/filters/anonymize.rb +189 -0
  354. data/spec/filters/checksum.rb +41 -0
  355. data/spec/filters/clone.rb +67 -0
  356. data/spec/filters/collate.rb +122 -0
  357. data/spec/filters/csv.rb +174 -0
  358. data/spec/filters/date.rb +285 -0
  359. data/spec/filters/date_performance.rb +31 -0
  360. data/spec/filters/dns.rb +159 -0
  361. data/spec/filters/drop.rb +19 -0
  362. data/spec/filters/elapsed.rb +294 -0
  363. data/spec/filters/environment.rb +43 -0
  364. data/spec/filters/geoip.rb +62 -0
  365. data/spec/filters/grep.rb +342 -0
  366. data/spec/filters/grok.rb +473 -0
  367. data/spec/filters/grok/timeout2.rb +56 -0
  368. data/spec/filters/grok/timeouts.rb +39 -0
  369. data/spec/filters/i18n.rb +25 -0
  370. data/spec/filters/json.rb +72 -0
  371. data/spec/filters/json_encode.rb +37 -0
  372. data/spec/filters/kv.rb +403 -0
  373. data/spec/filters/metrics.rb +212 -0
  374. data/spec/filters/multiline.rb +119 -0
  375. data/spec/filters/mutate.rb +180 -0
  376. data/spec/filters/noop.rb +221 -0
  377. data/spec/filters/prune.rb +441 -0
  378. data/spec/filters/punct.rb +18 -0
  379. data/spec/filters/railsparallelrequest.rb +112 -0
  380. data/spec/filters/range.rb +169 -0
  381. data/spec/filters/split.rb +58 -0
  382. data/spec/filters/translate.rb +70 -0
  383. data/spec/filters/unique.rb +25 -0
  384. data/spec/filters/useragent.rb +42 -0
  385. data/spec/filters/xml.rb +157 -0
  386. data/spec/inputs/file.rb +107 -0
  387. data/spec/inputs/gelf.rb +52 -0
  388. data/spec/inputs/generator.rb +30 -0
  389. data/spec/inputs/imap.rb +60 -0
  390. data/spec/inputs/redis.rb +63 -0
  391. data/spec/inputs/relp.rb +70 -0
  392. data/spec/inputs/tcp.rb +101 -0
  393. data/spec/jar.rb +21 -0
  394. data/spec/outputs/csv.rb +266 -0
  395. data/spec/outputs/elasticsearch.rb +161 -0
  396. data/spec/outputs/elasticsearch_http.rb +240 -0
  397. data/spec/outputs/email.rb +173 -0
  398. data/spec/outputs/file.rb +82 -0
  399. data/spec/outputs/graphite.rb +236 -0
  400. data/spec/outputs/redis.rb +127 -0
  401. data/spec/speed.rb +20 -0
  402. data/spec/sqlite-test.rb +81 -0
  403. data/spec/support/LOGSTASH-733.rb +21 -0
  404. data/spec/support/LOGSTASH-820.rb +25 -0
  405. data/spec/support/akamai-grok.rb +26 -0
  406. data/spec/support/date-http.rb +17 -0
  407. data/spec/support/postwait1.rb +26 -0
  408. data/spec/support/pull375.rb +21 -0
  409. data/spec/test_utils.rb +125 -0
  410. data/spec/util/fieldeval_spec.rb +44 -0
  411. data/test/jenkins/config.xml.erb +74 -0
  412. data/test/jenkins/create-jobs.rb +23 -0
  413. data/test/jenkins/generatorjob.config.xml +66 -0
  414. data/tools/Gemfile +14 -0
  415. data/tools/Gemfile.jruby-1.9.lock +322 -0
  416. data/tools/Gemfile.rbx-2.1.lock +516 -0
  417. data/tools/Gemfile.ruby-1.9.1.lock +310 -0
  418. data/tools/Gemfile.ruby-2.0.0.lock +310 -0
  419. metadata +629 -0
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+ require 'ffi-rzmq'
3
+ require "logstash/namespace"
4
+
5
+ module LogStash::Util::ZeroMQ
6
+ CONTEXT = ZMQ::Context.new
7
+ # LOGSTASH-400
8
+ # see https://github.com/chuckremes/ffi-rzmq/blob/master/lib/ffi-rzmq/socket.rb#L93-117
9
+ STRING_OPTS = %w{IDENTITY SUBSCRIBE UNSUBSCRIBE}
10
+
11
+ def context
12
+ CONTEXT
13
+ end
14
+
15
+ def setup(socket, address)
16
+ if server?
17
+ error_check(socket.bind(address), "binding to #{address}")
18
+ else
19
+ error_check(socket.connect(address), "connecting to #{address}")
20
+ end
21
+ @logger.info("0mq: #{server? ? 'connected' : 'bound'}", :address => address)
22
+ end
23
+
24
+ def error_check(rc, doing)
25
+ unless ZMQ::Util.resultcode_ok?(rc)
26
+ @logger.error("ZeroMQ error while #{doing}", { :error_code => rc })
27
+ raise "ZeroMQ Error while #{doing}"
28
+ end
29
+ end # def error_check
30
+
31
+ def setopts(socket, options)
32
+ options.each do |opt,value|
33
+ sockopt = opt.split('::')[1]
34
+ option = ZMQ.const_defined?(sockopt) ? ZMQ.const_get(sockopt) : ZMQ.const_missing(sockopt)
35
+ unless STRING_OPTS.include?(sockopt)
36
+ begin
37
+ Float(value)
38
+ value = value.to_i
39
+ rescue ArgumentError
40
+ raise "#{sockopt} requires a numeric value. #{value} is not numeric"
41
+ end
42
+ end # end unless
43
+ error_check(socket.setsockopt(option, value),
44
+ "while setting #{opt} == #{value}")
45
+ end # end each
46
+ end # end setopts
47
+ end # module LogStash::Util::ZeroMQ
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ # The version of logstash.
3
+ LOGSTASH_VERSION = "1.3.2"
4
+
5
+ # Note to authors: this should not include dashes because 'gem' barfs if
6
+ # you include a dash in the version string.
@@ -0,0 +1,170 @@
1
+ # YAML notes
2
+ # |- means 'scalar block' useful for formatted text
3
+ # > means 'scalar block' but it chomps all newlines. Useful
4
+ # for unformatted text.
5
+ en:
6
+ oops: |-
7
+ +---------------------------------------------------------+
8
+ | An unexpected error occurred. This is probably a bug. |
9
+ | You can find help with this problem in a few places: |
10
+ | |
11
+ | * chat: #logstash IRC channel on freenode irc. |
12
+ | IRC via the web: http://goo.gl/TI4Ro |
13
+ | * email: logstash-users@googlegroups.com |
14
+ | * bug system: https://logstash.jira.com/ |
15
+ | |
16
+ +---------------------------------------------------------+
17
+ The error reported is:
18
+ %{error}
19
+ logstash:
20
+ pipeline:
21
+ worker-error: |-
22
+ A plugin had an unrecoverable error. Will restart this plugin.
23
+ Plugin: %{plugin}
24
+ Error: %{error}
25
+ worker-error-debug: |-
26
+ A plugin had an unrecoverable error. Will restart this plugin.
27
+ Plugin: %{plugin}
28
+ Error: %{error}
29
+ Exception: %{exception}
30
+ Stack: %{stacktrace}
31
+ plugin-loading-error: >-
32
+ Couldn't find any %{type} plugin named '%{name}'. Are you
33
+ sure this is correct? Trying to load the %{name} %{type} plugin
34
+ resulted in this error: %{error}
35
+ plugin-type-loading-error: >-
36
+ Could not find any plugin type named '%{type}'. Check for typos.
37
+ Valid plugin types are 'input' 'filter' and 'output'
38
+ output-worker-unsupported: >-
39
+ %{plugin} output plugin: setting 'workers => %{worker_count}' is not
40
+ supported by this plugin. I will continue working as if you had not set
41
+ this setting.
42
+ output-worker-unsupported-with-message: >-
43
+ %{plugin} output plugin: setting 'workers => %{worker_count}' is not
44
+ supported by this plugin. I will continue working as if you had not set
45
+ this setting.
46
+ plugin:
47
+ milestone:
48
+ "0": >-
49
+ Using milestone 0 %{type} plugin '%{name}'. This plugin isn't well
50
+ supported by the community and likely has no maintainer. For more
51
+ information on plugin milestones, see
52
+ http://logstash.net/docs/%{LOGSTASH_VERSION}/plugin-milestones
53
+ "1": >-
54
+ Using milestone 1 %{type} plugin '%{name}'. This plugin should work,
55
+ but would benefit from use by folks like you. Please let us know if you
56
+ find bugs or have suggestions on how to improve this plugin. For more
57
+ information on plugin milestones, see
58
+ http://logstash.net/docs/%{LOGSTASH_VERSION}/plugin-milestones
59
+ "2": >-
60
+ Using milestone 2 %{type} plugin '%{name}'. This plugin should be
61
+ stable, but if you see strange behavior, please let us know!
62
+ For more information on plugin milestones, see
63
+ http://logstash.net/docs/%{LOGSTASH_VERSION}/plugin-milestones
64
+ agent:
65
+ sighup: >-
66
+ SIGHUP received.
67
+ missing-configuration: >-
68
+ No configuration file was specified. Perhaps you forgot to provide
69
+ the '-f yourlogstash.conf' flag?
70
+ error: >-
71
+ Error: %{error}
72
+ interrupted: >-
73
+ Interrupt received. Shutting down the pipeline.
74
+ configuration:
75
+ file-not-found: |-
76
+ No config files found: %{path}
77
+ Can you make sure this path is a logstash config file?
78
+ setting_missing: |-
79
+ Missing a required setting for the %{plugin} %{type} plugin:
80
+
81
+ %{type} {
82
+ %{plugin} {
83
+ %{setting} => # SETTING MISSING
84
+ ...
85
+ }
86
+ }
87
+ setting_invalid: |-
88
+ Invalid setting for %{plugin} %{type} plugin:
89
+
90
+ %{type} {
91
+ %{plugin} {
92
+ # This setting must be a %{value_type}
93
+ # %{note}
94
+ %{setting} => %{value}
95
+ ...
96
+ }
97
+ }
98
+ invalid_plugin_settings: >-
99
+ Something is wrong with your configuration.
100
+ invalid_plugin_register: >-
101
+ Cannot register %{plugin} %{type} plugin.
102
+ The error reported is:
103
+ %{error}
104
+ plugin_path_missing: >-
105
+ You specified a plugin path that does not exist: %{path}
106
+ no_plugins_found: |-
107
+ Could not find any plugins in "%{path}"
108
+ I tried to find files matching the following, but found none:
109
+ %{plugin_glob}
110
+ log_file_failed: |-
111
+ Failed to open %{path} for writing: %{error}
112
+
113
+ This is often a permissions issue, or the wrong
114
+ path was specified?
115
+ flag:
116
+ # Note: Wrap these at 45 chars so they display nicely when clamp emits
117
+ # them in an 80-character terminal
118
+ config: |+
119
+ Load the logstash config from a specific file
120
+ or directory. If a direcory is given, all
121
+ files in that directory will be concatonated
122
+ in lexicographical order and then parsed as a
123
+ single config file. You can also specify
124
+ wildcards (globs) and any matched files will
125
+ be loaded in the order described above.
126
+ config-string: |+
127
+ Use the given string as the configuration
128
+ data. Same syntax as the config file. If not
129
+ input is specified, then 'stdin { type =>
130
+ stdin }' is the default input. If no output
131
+ is specified, then 'stdout { debug => true
132
+ }}' is default output.
133
+ filterworkers: |+
134
+ Sets the number of filter workers to run.
135
+ watchdog-timeout: |+
136
+ Set the filter watchdog timeout (in seconds).
137
+ This timeout is used to detect stuck filters;
138
+ stuck filters usually symptoms of bugs.
139
+ When a filter takes longer than TIMEOUT
140
+ seconds, it will cause logstash to abort.
141
+ log: |+
142
+ Write logstash internal logs to the given
143
+ file. Without this flag, logstash will emit
144
+ logs to standard output.
145
+ verbosity: |+
146
+ Increase verbosity of logstash internal logs.
147
+ Specifying once will show 'informational'
148
+ logs. Specifying twice will show 'debug'
149
+ logs. This flag is deprecated. You should use
150
+ --verbose or --debug instead.
151
+ version: |+
152
+ Emit the version of logstash and its friends,
153
+ then exit.
154
+ pluginpath: |+
155
+ A path of where to find plugins. This flag
156
+ can be given multiple times to include
157
+ multiple paths. Plugins are expected to be
158
+ in a specific directory hierarchy:
159
+ 'PATH/logstash/TYPE/NAME.rb' where TYPE is
160
+ 'input' 'filter' or 'output' and NAME is the
161
+ name of the plugin.
162
+ quiet: |+
163
+ Quieter logstash logging. This causes only
164
+ errors to be emitted.
165
+ verbose: |+
166
+ More verbose logging. This causes 'info'
167
+ level logs to be emitted.
168
+ debug: |+
169
+ Most verbose logging. This causes 'debug'
170
+ level logs to be emitted.
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ Gem::Specification.new do |gem|
3
+ gem.authors = ["Jordan Sissel"]
4
+ gem.email = ["jls@semicomplete.com"]
5
+ gem.description = %q{Library that contains the classes required to create LogStash events}
6
+ gem.summary = %q{Library that contains the classes required to create LogStash events}
7
+ gem.homepage = "https://github.com/logstash/logstash"
8
+ gem.license = "Apache License (2.0)"
9
+
10
+ gem.files = %w{
11
+ lib/logstash-event.rb
12
+ lib/logstash/event.rb
13
+ lib/logstash/namespace.rb
14
+ lib/logstash/util/fieldreference.rb
15
+ lib/logstash/util.rb
16
+ spec/event.rb
17
+ LICENSE
18
+ }
19
+
20
+ gem.test_files = []
21
+ gem.name = "logstash-event"
22
+ gem.require_paths = ["lib"]
23
+ gem.version = "1.2.02"
24
+
25
+ gem.add_development_dependency "rspec"
26
+ gem.add_development_dependency "guard"
27
+ gem.add_development_dependency "guard-rspec"
28
+ gem.add_development_dependency "insist", "1.0.0"
29
+ end
@@ -0,0 +1,128 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/logstash/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Jordan Sissel", "Pete Fritchman"]
6
+ gem.email = ["jls@semicomplete.com", "petef@databits.net"]
7
+ gem.description = %q{scalable log and event management (search, archive, pipeline)}
8
+ gem.summary = %q{logstash - log and event management}
9
+ gem.homepage = "http://logstash.net/"
10
+ gem.license = "Apache License (2.0)"
11
+
12
+ gem.files = `git ls-files`.split($\)
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "logstash"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = LOGSTASH_VERSION
17
+
18
+ # Core dependencies
19
+ gem.add_runtime_dependency "cabin", [">=0.6.0"] #(Apache 2.0 license)
20
+ gem.add_runtime_dependency "json" #(ruby license)
21
+ gem.add_runtime_dependency "minitest" # for running the tests from the jar, (MIT license)
22
+ gem.add_runtime_dependency "pry" #(ruby license)
23
+ gem.add_runtime_dependency "stud" #(Apache 2.0 license)
24
+ gem.add_runtime_dependency "clamp" # for command line args/flags (MIT license)
25
+ gem.add_runtime_dependency "i18n" #(MIT license)
26
+
27
+ # Web dependencies
28
+ gem.add_runtime_dependency "ftw", ["~> 0.0.39"] #(Apache 2.0 license)
29
+ gem.add_runtime_dependency "haml" #(MIT license)
30
+ gem.add_runtime_dependency "rack" #(MIT license)
31
+ gem.add_runtime_dependency "sass" #(MIT license)
32
+ gem.add_runtime_dependency "sinatra" #(MIT license)
33
+ gem.add_runtime_dependency "mime-types" #(GPL 2.0)
34
+
35
+ # Input/Output/Filter dependencies
36
+ #TODO Can these be optional?
37
+ gem.add_runtime_dependency "awesome_print" #(MIT license)
38
+ gem.add_runtime_dependency "aws-sdk" #{Apache 2.0 license}
39
+ gem.add_runtime_dependency "google-api-client" #{Apache 2.0 license}
40
+ gem.add_runtime_dependency "heroku" #(MIT license)
41
+ gem.add_runtime_dependency "addressable" #(Apache 2.0 license)
42
+ gem.add_runtime_dependency "extlib", ["0.9.16"] #(MIT license)
43
+ gem.add_runtime_dependency "elasticsearch" #(Apache 2.0 license)
44
+ gem.add_runtime_dependency "ffi" #(LGPL-3 license)
45
+ gem.add_runtime_dependency "ffi-rzmq", ["1.0.0"] #(MIT license)
46
+ gem.add_runtime_dependency "filewatch", ["0.5.1"] #(BSD license)
47
+ gem.add_runtime_dependency "gelfd", ["0.2.0"] #(Apache 2.0 license)
48
+ gem.add_runtime_dependency "gelf", ["1.3.2"] #(MIT license)
49
+ gem.add_runtime_dependency "gmetric", ["0.1.3"] #(MIT license)
50
+ gem.add_runtime_dependency "jiralicious", ["0.2.2"] #(MIT license)
51
+ gem.add_runtime_dependency "jls-grok", ["0.10.12"] #(BSD license)
52
+ gem.add_runtime_dependency "mail" #(MIT license)
53
+ gem.add_runtime_dependency "mongo" #(Apache 2.0 license)
54
+ gem.add_runtime_dependency "metriks" #(MIT license)
55
+ gem.add_runtime_dependency "onstomp" #(Apache 2.0 license)
56
+ gem.add_runtime_dependency "redis" #(MIT license)
57
+ gem.add_runtime_dependency "riak-client", ["1.0.3"] #(Apache 2.0 license)
58
+ gem.add_runtime_dependency "riemann-client", ["0.2.1"] #(MIT license)
59
+ gem.add_runtime_dependency "statsd-ruby", ["1.2.0"] #(MIT license)
60
+ gem.add_runtime_dependency "uuidtools" # For generating amqp queue names (Apache 2.0 license)
61
+ gem.add_runtime_dependency "xml-simple" #(ruby license?)
62
+ gem.add_runtime_dependency "xmpp4r", ["0.5"] #(ruby license)
63
+ gem.add_runtime_dependency "jls-lumberjack", [">=0.0.19"] #(Apache 2.0 license)
64
+ gem.add_runtime_dependency "geoip", [">= 1.3.2"] #(GPL license)
65
+ gem.add_runtime_dependency "beefcake", "0.3.7" #(MIT license)
66
+ gem.add_runtime_dependency "php-serialize" # For input drupal_dblog (MIT license)
67
+ gem.add_runtime_dependency "murmurhash3" #(MIT license)
68
+ gem.add_runtime_dependency "rufus-scheduler", "~> 2.0.24" #(MIT license)
69
+ gem.add_runtime_dependency "user_agent_parser", [">= 2.0.0"] #(MIT license)
70
+ gem.add_runtime_dependency "snmp" #(ruby license)
71
+ gem.add_runtime_dependency "varnish-rb" #(MIT license)
72
+ gem.add_runtime_dependency "mail" #(MIT license)
73
+ gem.add_runtime_dependency "rbnacl" #(MIT license)
74
+ gem.add_runtime_dependency "sequel" #(MIT license)
75
+ gem.add_runtime_dependency "jdbc-sqlite3" #(MIT license)
76
+ gem.add_runtime_dependency "bindata", [">= 1.5.0"] #(ruby license)
77
+ gem.add_runtime_dependency "twitter", "5.0.0.rc.1" #(MIT license)
78
+ gem.add_runtime_dependency "rsolr" #(Apache 2.0 license)
79
+ gem.add_runtime_dependency "edn" #(MIT license)
80
+
81
+ if RUBY_PLATFORM == 'java'
82
+ gem.platform = RUBY_PLATFORM
83
+ gem.add_runtime_dependency "jruby-elasticsearch", ["0.0.17"] #(BSD license)
84
+ gem.add_runtime_dependency "jruby-httpclient" #(Apache 2.0 license)
85
+ gem.add_runtime_dependency "bouncy-castle-java", "1.5.0147" #(MIT license)
86
+ gem.add_runtime_dependency "jruby-openssl", "0.8.7" #(CPL/GPL/LGPL license)
87
+ gem.add_runtime_dependency "jruby-win32ole" #(unknown license)
88
+ gem.add_runtime_dependency "jdbc-mysql" # For input drupal_dblog (BSD license)
89
+ gem.add_runtime_dependency "msgpack-jruby" #(Apache 2.0 license)
90
+ else
91
+ gem.add_runtime_dependency "excon" #(MIT license)
92
+ gem.add_runtime_dependency "mysql2" # For input drupal_dblog (MIT license)
93
+ gem.add_runtime_dependency "msgpack" #(Apache 2.0 license)
94
+ end
95
+
96
+ if RUBY_PLATFORM != 'java'
97
+ gem.add_runtime_dependency "bunny", ["~> 1.0.5"] #(MIT license)
98
+ else
99
+ gem.add_runtime_dependency "march_hare", ["~> 2.0.0"] #(MIT license)
100
+ end
101
+
102
+ if RUBY_VERSION >= '1.9.1'
103
+ gem.add_runtime_dependency "cinch" # cinch requires 1.9.1+ #(MIT license)
104
+ end
105
+
106
+ if RUBY_ENGINE == "rbx"
107
+ # rubinius puts the ruby stdlib into gems.
108
+ gem.add_runtime_dependency "rubysl"
109
+
110
+ # Include racc to make the xml tests pass.
111
+ # https://github.com/rubinius/rubinius/issues/2632#issuecomment-26954565
112
+ gem.add_runtime_dependency "racc"
113
+ end
114
+
115
+ # These are runtime-deps so you can do 'java -jar logstash.jar rspec <test>'
116
+ gem.add_runtime_dependency "spoon" #(Apache 2.0 license)
117
+ gem.add_runtime_dependency "mocha" #(MIT license)
118
+ gem.add_runtime_dependency "shoulda" #(MIT license)
119
+ gem.add_runtime_dependency "rspec" #(MIT license)
120
+ gem.add_runtime_dependency "insist", "1.0.0" #(Apache 2.0 license)
121
+ gem.add_runtime_dependency "rumbster" # For faking smtp in email tests (Apache 2.0 license)
122
+
123
+ #Development Deps
124
+ gem.add_development_dependency "coveralls"
125
+
126
+ #Jenkins Deps
127
+ gem.add_runtime_dependency "ci_reporter"
128
+ end
@@ -0,0 +1,60 @@
1
+ # NetScreen firewall logs
2
+ NETSCREENSESSIONLOG %{SYSLOGTIMESTAMP:date} %{IPORHOST:device} %{IPORHOST}: NetScreen device_id=%{WORD:device_id}%{DATA}: start_time=%{QUOTEDSTRING:start_time} duration=%{INT:duration} policy_id=%{INT:policy_id} service=%{DATA:service} proto=%{INT:proto} src zone=%{WORD:src_zone} dst zone=%{WORD:dst_zone} action=%{WORD:action} sent=%{INT:sent} rcvd=%{INT:rcvd} src=%{IPORHOST:src_ip} dst=%{IPORHOST:dst_ip} src_port=%{INT:src_port} dst_port=%{INT:dst_port} src-xlated ip=%{IPORHOST:src_xlated_ip} port=%{INT:src_xlated_port} dst-xlated ip=%{IPORHOST:dst_xlated_ip} port=%{INT:dst_xlated_port} session_id=%{INT:session_id} reason=%{GREEDYDATA:reason}
3
+
4
+ #== Cisco ASA ==
5
+ CISCO_TAGGED_SYSLOG ^<%{POSINT:syslog_pri}>%{CISCOTIMESTAMP:timestamp}( %{SYSLOGHOST:sysloghost})?: %%{CISCOTAG:ciscotag}:
6
+ CISCOTIMESTAMP %{MONTH} +%{MONTHDAY}(?: %{YEAR})? %{TIME}
7
+ CISCOTAG [A-Z0-9]+-%{INT}-(?:[A-Z0-9_]+)
8
+ # Common Particles
9
+ CISCO_ACTION Built|Teardown|Deny|Denied|denied|requested|permitted|denied by ACL|discarded|est-allowed|Dropping|created|deleted
10
+ CISCO_REASON Duplicate TCP SYN|Failed to locate egress interface|Invalid transport field|No matching connection|DNS Response|DNS Query|(?:%{WORD}\s*)*
11
+ CISCO_DIRECTION Inbound|inbound|Outbound|outbound
12
+ CISCO_INTERVAL first hit|%{INT}-second interval
13
+ CISCO_XLATE_TYPE static|dynamic
14
+ # ASA-2-106001
15
+ CISCOFW106001 %{CISCO_DIRECTION:direction} %{WORD:protocol} connection %{CISCO_ACTION:action} from %{IP:src_ip}/%{INT:src_port} to %{IP:dst_ip}/%{INT:dst_port} flags %{GREEDYDATA:tcp_flags} on interface %{GREEDYDATA:interface}
16
+ # ASA-2-106006, ASA-2-106007, ASA-2-106010
17
+ CISCOFW106006_106007_106010 %{CISCO_ACTION:action} %{CISCO_DIRECTION:direction} %{WORD:protocol} (?:from|src) %{IP:src_ip}/%{INT:src_port}(\(%{DATA:src_fwuser}\))? (?:to|dst) %{IP:dst_ip}/%{INT:dst_port}(\(%{DATA:dst_fwuser}\))? (?:on interface %{DATA:interface}|due to %{CISCO_REASON:reason})
18
+ # ASA-3-106014
19
+ CISCOFW106014 %{CISCO_ACTION:action} %{CISCO_DIRECTION:direction} %{WORD:protocol} src %{DATA:src_interface}:%{IP:src_ip}(\(%{DATA:src_fwuser}\))? dst %{DATA:dst_interface}:%{IP:dst_ip}(\(%{DATA:dst_fwuser}\))? \(type %{INT:icmp_type}, code %{INT:icmp_code}\)
20
+ # ASA-6-106015
21
+ CISCOFW106015 %{CISCO_ACTION:action} %{WORD:protocol} \(%{DATA:policy_id}\) from %{IP:src_ip}/%{INT:src_port} to %{IP:dst_ip}/%{INT:dst_port} flags %{DATA:tcp_flags} on interface %{GREEDYDATA:interface}
22
+ # ASA-1-106021
23
+ CISCOFW106021 %{CISCO_ACTION:action} %{WORD:protocol} reverse path check from %{IP:src_ip} to %{IP:dst_ip} on interface %{GREEDYDATA:interface}
24
+ # ASA-4-106023
25
+ CISCOFW106023 %{CISCO_ACTION:action} %{WORD:protocol} src %{DATA:src_interface}:%{IP:src_ip}(/%{INT:src_port})?(\(%{DATA:src_fwuser}\))? dst %{DATA:dst_interface}:%{IP:dst_ip}(/%{INT:dst_port})?(\(%{DATA:dst_fwuser}\))?( \(type %{INT:icmp_type}, code %{INT:icmp_code}\))? by access-group %{DATA:policy_id} \[%{DATA:hashcode1}, %{DATA:hashcode2}\]
26
+ # ASA-5-106100
27
+ CISCOFW106100 access-list %{WORD:policy_id} %{CISCO_ACTION:action} %{WORD:protocol} %{DATA:src_interface}/%{IP:src_ip}\(%{INT:src_port}\)(\(%{DATA:src_fwuser}\))? -> %{DATA:dst_interface}/%{IP:dst_ip}\(%{INT:dst_port}\)(\(%{DATA:src_fwuser}\))? hit-cnt %{INT:hit_count} %{CISCO_INTERVAL:interval} \[%{DATA:hashcode1}, %{DATA:hashcode2}\]
28
+ # ASA-6-110002
29
+ CISCOFW110002 %{CISCO_REASON:reason} for %{WORD:protocol} from %{DATA:src_interface}:%{IP:src_ip}/%{INT:src_port} to %{IP:dst_ip}/%{INT:dst_port}
30
+ # ASA-6-302010
31
+ CISCOFW302010 %{INT:connection_count} in use, %{INT:connection_count_max} most used
32
+ # ASA-6-302013, ASA-6-302014, ASA-6-302015, ASA-6-302016
33
+ CISCOFW302013_302014_302015_302016 %{CISCO_ACTION:action}(?: %{CISCO_DIRECTION:direction})? %{WORD:protocol} connection %{INT:connection_id} for %{DATA:src_interface}:%{IP:src_ip}/%{INT:src_port}( \(%{IP:src_mapped_ip}/%{INT:src_mapped_port}\))?(\(%{DATA:src_fwuser}\))? to %{DATA:dst_interface}:%{IP:dst_ip}/%{INT:dst_port}( \(%{IP:dst_mapped_ip}/%{INT:dst_mapped_port}\))?(\(%{DATA:dst_fwuser}\))?( duration %{TIME:duration} bytes %{INT:bytes})?(?: %{CISCO_REASON:reason})?( \(%{DATA:user}\))?
34
+ # ASA-6-302020, ASA-6-302021
35
+ CISCOFW302020_302021 %{CISCO_ACTION:action}(?: %{CISCO_DIRECTION:direction})? %{WORD:protocol} connection for faddr %{IP:dst_ip}/%{INT:icmp_seq_num}(?:\(%{DATA:fwuser}\))? gaddr %{IP:src_xlated_ip}/%{INT:icmp_code_xlated} laddr %{IP:src_ip}/%{INT:icmp_code}( \(%{DATA:user}\))?
36
+ # ASA-6-305011
37
+ CISCOFW305011 %{CISCO_ACTION:action} %{CISCO_XLATE_TYPE:xlate_type} %{WORD:protocol} translation from %{DATA:src_interface}:%{IP:src_ip}(/%{INT:src_port})?(\(%{DATA:src_fwuser}\))? to %{DATA:src_xlated_interface}:%{IP:src_xlated_ip}/%{DATA:src_xlated_port}
38
+ # ASA-3-313001, ASA-3-313004, ASA-3-313008
39
+ CISCOFW313001_313004_313008 %{CISCO_ACTION:action} %{WORD:protocol} type=%{INT:icmp_type}, code=%{INT:icmp_code} from %{IP:src_ip} on interface %{DATA:interface}( to %{IP:dst_ip})?
40
+ # ASA-4-313005
41
+ CISCOFW313005 %{CISCO_REASON:reason} for %{WORD:protocol} error message: %{WORD:err_protocol} src %{DATA:err_src_interface}:%{IP:err_src_ip}(\(%{DATA:err_src_fwuser}\))? dst %{DATA:err_dst_interface}:%{IP:err_dst_ip}(\(%{DATA:err_dst_fwuser}\))? \(type %{INT:err_icmp_type}, code %{INT:err_icmp_code}\) on %{DATA:interface} interface\. Original IP payload: %{WORD:protocol} src %{IP:orig_src_ip}/%{INT:orig_src_port}(\(%{DATA:orig_src_fwuser}\))? dst %{IP:orig_dst_ip}/%{INT:orig_dst_port}(\(%{DATA:orig_dst_fwuser}\))?
42
+ # ASA-4-402117
43
+ CISCOFW402117 %{WORD:protocol}: Received a non-IPSec packet \(protocol= %{WORD:orig_protocol}\) from %{IP:src_ip} to %{IP:dst_ip}
44
+ # ASA-4-402119
45
+ CISCOFW402119 %{WORD:protocol}: Received an %{WORD:orig_protocol} packet \(SPI= %{DATA:spi}, sequence number= %{DATA:seq_num}\) from %{IP:src_ip} \(user= %{DATA:user}\) to %{IP:dst_ip} that failed anti-replay checking
46
+ # ASA-4-419001
47
+ CISCOFW419001 %{CISCO_ACTION:action} %{WORD:protocol} packet from %{DATA:src_interface}:%{IP:src_ip}/%{INT:src_port} to %{DATA:dst_interface}:%{IP:dst_ip}/%{INT:dst_port}, reason: %{GREEDYDATA:reason}
48
+ # ASA-4-419002
49
+ CISCOFW419002 %{CISCO_REASON:reason} from %{DATA:src_interface}:%{IP:src_ip}/%{INT:src_port} to %{DATA:dst_interface}:%{IP:dst_ip}/%{INT:dst_port} with different initial sequence number
50
+ # ASA-4-500004
51
+ CISCOFW500004 %{CISCO_REASON:reason} for protocol=%{WORD:protocol}, from %{IP:src_ip}/%{INT:src_port} to %{IP:dst_ip}/%{INT:dst_port}
52
+ # ASA-6-602303, ASA-6-602304
53
+ CISCOFW602303_602304 %{WORD:protocol}: An %{CISCO_DIRECTION:direction} %{GREEDYDATA:tunnel_type} SA \(SPI= %{DATA:spi}\) between %{IP:src_ip} and %{IP:dst_ip} \(user= %{DATA:user}\) has been %{CISCO_ACTION:action}
54
+ # ASA-7-710001, ASA-7-710002, ASA-7-710003, ASA-7-710005, ASA-7-710006
55
+ CISCOFW710001_710002_710003_710005_710006 %{WORD:protocol} (?:request|access) %{CISCO_ACTION:action} from %{IP:src_ip}/%{INT:src_port} to %{DATA:dst_interface}:%{IP:dst_ip}/%{INT:dst_port}
56
+ # ASA-6-713172
57
+ CISCOFW713172 Group = %{GREEDYDATA:group}, IP = %{IP:src_ip}, Automatic NAT Detection Status:\s+Remote end\s*%{DATA:is_remote_natted}\s*behind a NAT device\s+This\s+end\s*%{DATA:is_local_natted}\s*behind a NAT device
58
+ # ASA-4-733100
59
+ CISCOFW733100 \[\s*%{DATA:drop_type}\s*\] drop %{DATA:drop_rate_id} exceeded. Current burst rate is %{INT:drop_rate_current_burst} per second, max configured rate is %{INT:drop_rate_max_burst}; Current average rate is %{INT:drop_rate_current_avg} per second, max configured rate is %{INT:drop_rate_max_avg}; Cumulative total count is %{INT:drop_total_count}
60
+ #== End Cisco ASA ==
@@ -0,0 +1,91 @@
1
+ USERNAME [a-zA-Z0-9._-]+
2
+ USER %{USERNAME}
3
+ INT (?:[+-]?(?:[0-9]+))
4
+ BASE10NUM (?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)))
5
+ NUMBER (?:%{BASE10NUM})
6
+ BASE16NUM (?<![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+))
7
+ BASE16FLOAT \b(?<![0-9A-Fa-f.])(?:[+-]?(?:0x)?(?:(?:[0-9A-Fa-f]+(?:\.[0-9A-Fa-f]*)?)|(?:\.[0-9A-Fa-f]+)))\b
8
+
9
+ POSINT \b(?:[1-9][0-9]*)\b
10
+ NONNEGINT \b(?:[0-9]+)\b
11
+ WORD \b\w+\b
12
+ NOTSPACE \S+
13
+ SPACE \s*
14
+ DATA .*?
15
+ GREEDYDATA .*
16
+ QUOTEDSTRING (?>(?<!\\)(?>"(?>\\.|[^\\"]+)+"|""|(?>'(?>\\.|[^\\']+)+')|''|(?>`(?>\\.|[^\\`]+)+`)|``))
17
+ UUID [A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}
18
+
19
+ # Networking
20
+ MAC (?:%{CISCOMAC}|%{WINDOWSMAC}|%{COMMONMAC})
21
+ CISCOMAC (?:(?:[A-Fa-f0-9]{4}\.){2}[A-Fa-f0-9]{4})
22
+ WINDOWSMAC (?:(?:[A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2})
23
+ COMMONMAC (?:(?:[A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2})
24
+ IPV6 ((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?
25
+ IPV4 (?<![0-9])(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))(?![0-9])
26
+ IP (?:%{IPV6}|%{IPV4})
27
+ HOSTNAME \b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b)
28
+ HOST %{HOSTNAME}
29
+ IPORHOST (?:%{HOSTNAME}|%{IP})
30
+ HOSTPORT (?:%{IPORHOST=~/\./}:%{POSINT})
31
+
32
+ # paths
33
+ PATH (?:%{UNIXPATH}|%{WINPATH})
34
+ UNIXPATH (?>/(?>[\w_%!$@:.,-]+|\\.)*)+
35
+ TTY (?:/dev/(pts|tty([pq])?)(\w+)?/?(?:[0-9]+))
36
+ WINPATH (?>[A-Za-z]+:|\\)(?:\\[^\\?*]*)+
37
+ URIPROTO [A-Za-z]+(\+[A-Za-z+]+)?
38
+ URIHOST %{IPORHOST}(?::%{POSINT:port})?
39
+ # uripath comes loosely from RFC1738, but mostly from what Firefox
40
+ # doesn't turn into %XX
41
+ URIPATH (?:/[A-Za-z0-9$.+!*'(){},~:;=@#%_\-]*)+
42
+ #URIPARAM \?(?:[A-Za-z0-9]+(?:=(?:[^&]*))?(?:&(?:[A-Za-z0-9]+(?:=(?:[^&]*))?)?)*)?
43
+ URIPARAM \?[A-Za-z0-9$.+!*'|(){},~@#%&/=:;_?\-\[\]]*
44
+ URIPATHPARAM %{URIPATH}(?:%{URIPARAM})?
45
+ URI %{URIPROTO}://(?:%{USER}(?::[^@]*)?@)?(?:%{URIHOST})?(?:%{URIPATHPARAM})?
46
+
47
+ # Months: January, Feb, 3, 03, 12, December
48
+ MONTH \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b
49
+ MONTHNUM (?:0?[1-9]|1[0-2])
50
+ MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
51
+
52
+ # Days: Monday, Tue, Thu, etc...
53
+ DAY (?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?)
54
+
55
+ # Years?
56
+ YEAR (?>\d\d){1,2}
57
+ HOUR (?:2[0123]|[01]?[0-9])
58
+ MINUTE (?:[0-5][0-9])
59
+ # '60' is a leap second in most time standards and thus is valid.
60
+ SECOND (?:(?:[0-5][0-9]|60)(?:[:.,][0-9]+)?)
61
+ TIME (?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9])
62
+ # datestamp is YYYY/MM/DD-HH:MM:SS.UUUU (or something like it)
63
+ DATE_US %{MONTHNUM}[/-]%{MONTHDAY}[/-]%{YEAR}
64
+ DATE_EU %{MONTHDAY}[./-]%{MONTHNUM}[./-]%{YEAR}
65
+ ISO8601_TIMEZONE (?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
66
+ ISO8601_SECOND (?:%{SECOND}|60)
67
+ TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
68
+ DATE %{DATE_US}|%{DATE_EU}
69
+ DATESTAMP %{DATE}[- ]%{TIME}
70
+ TZ (?:[PMCE][SD]T|UTC)
71
+ DATESTAMP_RFC822 %{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME} %{TZ}
72
+ DATESTAMP_OTHER %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{TZ} %{YEAR}
73
+
74
+ # Syslog Dates: Month Day HH:MM:SS
75
+ SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}
76
+ PROG (?:[\w._/%-]+)
77
+ SYSLOGPROG %{PROG:program}(?:\[%{POSINT:pid}\])?
78
+ SYSLOGHOST %{IPORHOST}
79
+ SYSLOGFACILITY <%{NONNEGINT:facility}.%{NONNEGINT:priority}>
80
+ HTTPDATE %{MONTHDAY}/%{MONTH}/%{YEAR}:%{TIME} %{INT}
81
+
82
+ # Shortcuts
83
+ QS %{QUOTEDSTRING}
84
+
85
+ # Log formats
86
+ SYSLOGBASE %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource} %{SYSLOGPROG}:
87
+ COMMONAPACHELOG %{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-)
88
+ COMBINEDAPACHELOG %{COMMONAPACHELOG} %{QS:referrer} %{QS:agent}
89
+
90
+ # Log Levels
91
+ LOGLEVEL ([A-a]lert|ALERT|[T|t]race|TRACE|[D|d]ebug|DEBUG|[N|n]otice|NOTICE|[I|i]nfo|INFO|[W|w]arn?(?:ing)?|WARN?(?:ING)?|[E|e]rr?(?:or)?|ERR?(?:OR)?|[C|c]rit?(?:ical)?|CRIT?(?:ICAL)?|[F|f]atal|FATAL|[S|s]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?)