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.
- data/.gitignore +24 -0
- data/.tailor +8 -0
- data/.travis.yml +12 -0
- data/CHANGELOG +1185 -0
- data/CONTRIBUTING.md +61 -0
- data/CONTRIBUTORS +79 -0
- data/LICENSE +14 -0
- data/Makefile +460 -0
- data/README.md +120 -0
- data/STYLE.md +96 -0
- data/bin/logstash +37 -0
- data/bin/logstash-test +4 -0
- data/bin/logstash-web +4 -0
- data/bin/logstash.lib.sh +78 -0
- data/bot/check_pull_changelog.rb +89 -0
- data/docs/configuration.md +260 -0
- data/docs/docgen.rb +242 -0
- data/docs/extending/example-add-a-new-filter.md +121 -0
- data/docs/extending/index.md +91 -0
- data/docs/flags.md +43 -0
- data/docs/generate_index.rb +28 -0
- data/docs/index.html.erb +56 -0
- data/docs/learn.md +46 -0
- data/docs/life-of-an-event.md +109 -0
- data/docs/logging-tool-comparisons.md +60 -0
- data/docs/plugin-doc.html.erb +91 -0
- data/docs/plugin-milestones.md +41 -0
- data/docs/plugin-synopsis.html.erb +24 -0
- data/docs/release-engineering.md +46 -0
- data/docs/release-test-results.md +14 -0
- data/docs/repositories.md +35 -0
- data/docs/tutorials/10-minute-walkthrough/apache-elasticsearch.conf +35 -0
- data/docs/tutorials/10-minute-walkthrough/apache-parse.conf +33 -0
- data/docs/tutorials/10-minute-walkthrough/apache_log.1 +1 -0
- data/docs/tutorials/10-minute-walkthrough/apache_log.2.bz2 +0 -0
- data/docs/tutorials/10-minute-walkthrough/hello-search.conf +25 -0
- data/docs/tutorials/10-minute-walkthrough/hello.conf +16 -0
- data/docs/tutorials/10-minute-walkthrough/index.md +124 -0
- data/docs/tutorials/10-minute-walkthrough/step-5-output.txt +17 -0
- data/docs/tutorials/getting-started-centralized-overview-diagram.png +0 -0
- data/docs/tutorials/getting-started-centralized-overview-diagram.xml +1 -0
- data/docs/tutorials/getting-started-centralized.md +217 -0
- data/docs/tutorials/getting-started-simple.md +200 -0
- data/docs/tutorials/just-enough-rabbitmq-for-logstash.md +201 -0
- data/docs/tutorials/media/frontend-response-codes.png +0 -0
- data/docs/tutorials/metrics-from-logs.md +84 -0
- data/docs/tutorials/zeromq.md +118 -0
- data/extract_services.rb +29 -0
- data/gembag.rb +64 -0
- data/lib/logstash-event.rb +2 -0
- data/lib/logstash.rb +4 -0
- data/lib/logstash/JRUBY-6970-openssl.rb +22 -0
- data/lib/logstash/JRUBY-6970.rb +102 -0
- data/lib/logstash/agent.rb +305 -0
- data/lib/logstash/certs/cacert.pem +3895 -0
- data/lib/logstash/codecs/base.rb +49 -0
- data/lib/logstash/codecs/compress_spooler.rb +50 -0
- data/lib/logstash/codecs/dots.rb +18 -0
- data/lib/logstash/codecs/edn.rb +28 -0
- data/lib/logstash/codecs/edn_lines.rb +36 -0
- data/lib/logstash/codecs/fluent.rb +55 -0
- data/lib/logstash/codecs/graphite.rb +114 -0
- data/lib/logstash/codecs/json.rb +41 -0
- data/lib/logstash/codecs/json_lines.rb +52 -0
- data/lib/logstash/codecs/json_spooler.rb +22 -0
- data/lib/logstash/codecs/line.rb +58 -0
- data/lib/logstash/codecs/msgpack.rb +43 -0
- data/lib/logstash/codecs/multiline.rb +189 -0
- data/lib/logstash/codecs/netflow.rb +342 -0
- data/lib/logstash/codecs/netflow/util.rb +212 -0
- data/lib/logstash/codecs/noop.rb +19 -0
- data/lib/logstash/codecs/oldlogstashjson.rb +56 -0
- data/lib/logstash/codecs/plain.rb +48 -0
- data/lib/logstash/codecs/rubydebug.rb +22 -0
- data/lib/logstash/codecs/spool.rb +38 -0
- data/lib/logstash/config/Makefile +4 -0
- data/lib/logstash/config/config_ast.rb +380 -0
- data/lib/logstash/config/file.rb +39 -0
- data/lib/logstash/config/grammar.rb +3504 -0
- data/lib/logstash/config/grammar.treetop +241 -0
- data/lib/logstash/config/mixin.rb +464 -0
- data/lib/logstash/config/registry.rb +13 -0
- data/lib/logstash/config/test.conf +18 -0
- data/lib/logstash/errors.rb +10 -0
- data/lib/logstash/event.rb +262 -0
- data/lib/logstash/filters/advisor.rb +178 -0
- data/lib/logstash/filters/alter.rb +173 -0
- data/lib/logstash/filters/anonymize.rb +93 -0
- data/lib/logstash/filters/base.rb +190 -0
- data/lib/logstash/filters/checksum.rb +50 -0
- data/lib/logstash/filters/cidr.rb +76 -0
- data/lib/logstash/filters/cipher.rb +145 -0
- data/lib/logstash/filters/clone.rb +35 -0
- data/lib/logstash/filters/collate.rb +114 -0
- data/lib/logstash/filters/csv.rb +94 -0
- data/lib/logstash/filters/date.rb +244 -0
- data/lib/logstash/filters/dns.rb +201 -0
- data/lib/logstash/filters/drop.rb +32 -0
- data/lib/logstash/filters/elapsed.rb +256 -0
- data/lib/logstash/filters/elasticsearch.rb +73 -0
- data/lib/logstash/filters/environment.rb +27 -0
- data/lib/logstash/filters/extractnumbers.rb +84 -0
- data/lib/logstash/filters/gelfify.rb +52 -0
- data/lib/logstash/filters/geoip.rb +145 -0
- data/lib/logstash/filters/grep.rb +153 -0
- data/lib/logstash/filters/grok.rb +425 -0
- data/lib/logstash/filters/grokdiscovery.rb +75 -0
- data/lib/logstash/filters/i18n.rb +51 -0
- data/lib/logstash/filters/json.rb +90 -0
- data/lib/logstash/filters/json_encode.rb +52 -0
- data/lib/logstash/filters/kv.rb +232 -0
- data/lib/logstash/filters/metaevent.rb +68 -0
- data/lib/logstash/filters/metrics.rb +237 -0
- data/lib/logstash/filters/multiline.rb +241 -0
- data/lib/logstash/filters/mutate.rb +399 -0
- data/lib/logstash/filters/noop.rb +21 -0
- data/lib/logstash/filters/prune.rb +149 -0
- data/lib/logstash/filters/punct.rb +32 -0
- data/lib/logstash/filters/railsparallelrequest.rb +86 -0
- data/lib/logstash/filters/range.rb +142 -0
- data/lib/logstash/filters/ruby.rb +42 -0
- data/lib/logstash/filters/sleep.rb +111 -0
- data/lib/logstash/filters/split.rb +64 -0
- data/lib/logstash/filters/sumnumbers.rb +73 -0
- data/lib/logstash/filters/syslog_pri.rb +107 -0
- data/lib/logstash/filters/translate.rb +121 -0
- data/lib/logstash/filters/unique.rb +29 -0
- data/lib/logstash/filters/urldecode.rb +57 -0
- data/lib/logstash/filters/useragent.rb +112 -0
- data/lib/logstash/filters/uuid.rb +58 -0
- data/lib/logstash/filters/xml.rb +139 -0
- data/lib/logstash/filters/zeromq.rb +123 -0
- data/lib/logstash/filterworker.rb +122 -0
- data/lib/logstash/inputs/base.rb +125 -0
- data/lib/logstash/inputs/collectd.rb +306 -0
- data/lib/logstash/inputs/drupal_dblog.rb +323 -0
- data/lib/logstash/inputs/drupal_dblog/jdbcconnection.rb +66 -0
- data/lib/logstash/inputs/elasticsearch.rb +140 -0
- data/lib/logstash/inputs/eventlog.rb +129 -0
- data/lib/logstash/inputs/eventlog/racob_fix.rb +44 -0
- data/lib/logstash/inputs/exec.rb +69 -0
- data/lib/logstash/inputs/file.rb +146 -0
- data/lib/logstash/inputs/ganglia.rb +127 -0
- data/lib/logstash/inputs/ganglia/gmondpacket.rb +146 -0
- data/lib/logstash/inputs/ganglia/xdr.rb +327 -0
- data/lib/logstash/inputs/gelf.rb +138 -0
- data/lib/logstash/inputs/gemfire.rb +222 -0
- data/lib/logstash/inputs/generator.rb +97 -0
- data/lib/logstash/inputs/graphite.rb +41 -0
- data/lib/logstash/inputs/heroku.rb +51 -0
- data/lib/logstash/inputs/imap.rb +136 -0
- data/lib/logstash/inputs/irc.rb +84 -0
- data/lib/logstash/inputs/log4j.rb +136 -0
- data/lib/logstash/inputs/lumberjack.rb +53 -0
- data/lib/logstash/inputs/pipe.rb +57 -0
- data/lib/logstash/inputs/rabbitmq.rb +126 -0
- data/lib/logstash/inputs/rabbitmq/bunny.rb +118 -0
- data/lib/logstash/inputs/rabbitmq/hot_bunnies.rb +1 -0
- data/lib/logstash/inputs/rabbitmq/march_hare.rb +129 -0
- data/lib/logstash/inputs/redis.rb +263 -0
- data/lib/logstash/inputs/relp.rb +106 -0
- data/lib/logstash/inputs/s3.rb +279 -0
- data/lib/logstash/inputs/snmptrap.rb +87 -0
- data/lib/logstash/inputs/sqlite.rb +185 -0
- data/lib/logstash/inputs/sqs.rb +172 -0
- data/lib/logstash/inputs/stdin.rb +46 -0
- data/lib/logstash/inputs/stomp.rb +84 -0
- data/lib/logstash/inputs/syslog.rb +237 -0
- data/lib/logstash/inputs/tcp.rb +231 -0
- data/lib/logstash/inputs/threadable.rb +18 -0
- data/lib/logstash/inputs/twitter.rb +82 -0
- data/lib/logstash/inputs/udp.rb +81 -0
- data/lib/logstash/inputs/unix.rb +163 -0
- data/lib/logstash/inputs/varnishlog.rb +48 -0
- data/lib/logstash/inputs/websocket.rb +50 -0
- data/lib/logstash/inputs/wmi.rb +72 -0
- data/lib/logstash/inputs/xmpp.rb +81 -0
- data/lib/logstash/inputs/zenoss.rb +143 -0
- data/lib/logstash/inputs/zeromq.rb +165 -0
- data/lib/logstash/kibana.rb +113 -0
- data/lib/logstash/loadlibs.rb +9 -0
- data/lib/logstash/logging.rb +89 -0
- data/lib/logstash/monkeypatches-for-bugs.rb +2 -0
- data/lib/logstash/monkeypatches-for-debugging.rb +47 -0
- data/lib/logstash/monkeypatches-for-performance.rb +66 -0
- data/lib/logstash/multiqueue.rb +53 -0
- data/lib/logstash/namespace.rb +16 -0
- data/lib/logstash/outputs/base.rb +120 -0
- data/lib/logstash/outputs/boundary.rb +116 -0
- data/lib/logstash/outputs/circonus.rb +78 -0
- data/lib/logstash/outputs/cloudwatch.rb +351 -0
- data/lib/logstash/outputs/csv.rb +55 -0
- data/lib/logstash/outputs/datadog.rb +93 -0
- data/lib/logstash/outputs/datadog_metrics.rb +123 -0
- data/lib/logstash/outputs/elasticsearch.rb +332 -0
- data/lib/logstash/outputs/elasticsearch/elasticsearch-template.json +44 -0
- data/lib/logstash/outputs/elasticsearch_http.rb +256 -0
- data/lib/logstash/outputs/elasticsearch_river.rb +214 -0
- data/lib/logstash/outputs/email.rb +299 -0
- data/lib/logstash/outputs/exec.rb +40 -0
- data/lib/logstash/outputs/file.rb +180 -0
- data/lib/logstash/outputs/ganglia.rb +75 -0
- data/lib/logstash/outputs/gelf.rb +208 -0
- data/lib/logstash/outputs/gemfire.rb +103 -0
- data/lib/logstash/outputs/google_bigquery.rb +570 -0
- data/lib/logstash/outputs/google_cloud_storage.rb +431 -0
- data/lib/logstash/outputs/graphite.rb +143 -0
- data/lib/logstash/outputs/graphtastic.rb +185 -0
- data/lib/logstash/outputs/hipchat.rb +80 -0
- data/lib/logstash/outputs/http.rb +142 -0
- data/lib/logstash/outputs/irc.rb +80 -0
- data/lib/logstash/outputs/jira.rb +109 -0
- data/lib/logstash/outputs/juggernaut.rb +105 -0
- data/lib/logstash/outputs/librato.rb +146 -0
- data/lib/logstash/outputs/loggly.rb +93 -0
- data/lib/logstash/outputs/lumberjack.rb +51 -0
- data/lib/logstash/outputs/metriccatcher.rb +103 -0
- data/lib/logstash/outputs/mongodb.rb +81 -0
- data/lib/logstash/outputs/nagios.rb +119 -0
- data/lib/logstash/outputs/nagios_nsca.rb +123 -0
- data/lib/logstash/outputs/null.rb +18 -0
- data/lib/logstash/outputs/opentsdb.rb +101 -0
- data/lib/logstash/outputs/pagerduty.rb +79 -0
- data/lib/logstash/outputs/pipe.rb +132 -0
- data/lib/logstash/outputs/rabbitmq.rb +96 -0
- data/lib/logstash/outputs/rabbitmq/bunny.rb +135 -0
- data/lib/logstash/outputs/rabbitmq/hot_bunnies.rb +1 -0
- data/lib/logstash/outputs/rabbitmq/march_hare.rb +143 -0
- data/lib/logstash/outputs/redis.rb +245 -0
- data/lib/logstash/outputs/riak.rb +152 -0
- data/lib/logstash/outputs/riemann.rb +109 -0
- data/lib/logstash/outputs/s3.rb +356 -0
- data/lib/logstash/outputs/sns.rb +124 -0
- data/lib/logstash/outputs/solr_http.rb +78 -0
- data/lib/logstash/outputs/sqs.rb +141 -0
- data/lib/logstash/outputs/statsd.rb +116 -0
- data/lib/logstash/outputs/stdout.rb +53 -0
- data/lib/logstash/outputs/stomp.rb +67 -0
- data/lib/logstash/outputs/syslog.rb +145 -0
- data/lib/logstash/outputs/tcp.rb +145 -0
- data/lib/logstash/outputs/udp.rb +38 -0
- data/lib/logstash/outputs/websocket.rb +46 -0
- data/lib/logstash/outputs/websocket/app.rb +29 -0
- data/lib/logstash/outputs/websocket/pubsub.rb +45 -0
- data/lib/logstash/outputs/xmpp.rb +78 -0
- data/lib/logstash/outputs/zabbix.rb +108 -0
- data/lib/logstash/outputs/zeromq.rb +125 -0
- data/lib/logstash/pipeline.rb +286 -0
- data/lib/logstash/plugin.rb +150 -0
- data/lib/logstash/plugin_mixins/aws_config.rb +93 -0
- data/lib/logstash/program.rb +15 -0
- data/lib/logstash/runner.rb +238 -0
- data/lib/logstash/sized_queue.rb +8 -0
- data/lib/logstash/test.rb +183 -0
- data/lib/logstash/threadwatchdog.rb +37 -0
- data/lib/logstash/time_addon.rb +33 -0
- data/lib/logstash/util.rb +106 -0
- data/lib/logstash/util/buftok.rb +139 -0
- data/lib/logstash/util/charset.rb +39 -0
- data/lib/logstash/util/fieldreference.rb +50 -0
- data/lib/logstash/util/password.rb +25 -0
- data/lib/logstash/util/prctl.rb +11 -0
- data/lib/logstash/util/relp.rb +326 -0
- data/lib/logstash/util/require-helper.rb +18 -0
- data/lib/logstash/util/socket_peer.rb +7 -0
- data/lib/logstash/util/zenoss.rb +566 -0
- data/lib/logstash/util/zeromq.rb +47 -0
- data/lib/logstash/version.rb +6 -0
- data/locales/en.yml +170 -0
- data/logstash-event.gemspec +29 -0
- data/logstash.gemspec +128 -0
- data/patterns/firewalls +60 -0
- data/patterns/grok-patterns +91 -0
- data/patterns/haproxy +37 -0
- data/patterns/java +3 -0
- data/patterns/linux-syslog +14 -0
- data/patterns/mcollective +1 -0
- data/patterns/mcollective-patterns +4 -0
- data/patterns/nagios +108 -0
- data/patterns/postgresql +3 -0
- data/patterns/redis +3 -0
- data/patterns/ruby +2 -0
- data/pkg/build.sh +135 -0
- data/pkg/centos/after-install.sh +1 -0
- data/pkg/centos/before-install.sh +10 -0
- data/pkg/centos/before-remove.sh +11 -0
- data/pkg/centos/sysconfig +15 -0
- data/pkg/debian/after-install.sh +5 -0
- data/pkg/debian/before-install.sh +13 -0
- data/pkg/debian/before-remove.sh +13 -0
- data/pkg/debian/build.sh +34 -0
- data/pkg/debian/debian/README +6 -0
- data/pkg/debian/debian/changelog +17 -0
- data/pkg/debian/debian/compat +1 -0
- data/pkg/debian/debian/control +16 -0
- data/pkg/debian/debian/copyright +27 -0
- data/pkg/debian/debian/dirs +19 -0
- data/pkg/debian/debian/docs +0 -0
- data/pkg/debian/debian/logstash.default +39 -0
- data/pkg/debian/debian/logstash.init +201 -0
- data/pkg/debian/debian/logstash.install +1 -0
- data/pkg/debian/debian/logstash.logrotate +9 -0
- data/pkg/debian/debian/logstash.postinst +68 -0
- data/pkg/debian/debian/logstash.postrm +23 -0
- data/pkg/debian/debian/manpage.1.ex +59 -0
- data/pkg/debian/debian/preinst.ex +37 -0
- data/pkg/debian/debian/prerm.ex +40 -0
- data/pkg/debian/debian/release.conf +5 -0
- data/pkg/debian/debian/rules +80 -0
- data/pkg/debian/debian/watch.ex +22 -0
- data/pkg/logrotate.conf +8 -0
- data/pkg/logstash-web.default +41 -0
- data/pkg/logstash-web.sysv.debian +201 -0
- data/pkg/logstash-web.upstart.ubuntu +18 -0
- data/pkg/logstash.default +45 -0
- data/pkg/logstash.sysv.debian +202 -0
- data/pkg/logstash.sysv.redhat +158 -0
- data/pkg/logstash.upstart.ubuntu +20 -0
- data/pkg/rpm/SOURCES/logstash.conf +26 -0
- data/pkg/rpm/SOURCES/logstash.init +80 -0
- data/pkg/rpm/SOURCES/logstash.logrotate +8 -0
- data/pkg/rpm/SOURCES/logstash.sysconfig +3 -0
- data/pkg/rpm/SOURCES/logstash.wrapper +105 -0
- data/pkg/rpm/SPECS/logstash.spec +180 -0
- data/pkg/rpm/readme.md +4 -0
- data/pkg/ubuntu/after-install.sh +7 -0
- data/pkg/ubuntu/before-install.sh +12 -0
- data/pkg/ubuntu/before-remove.sh +13 -0
- data/pull_release_note.rb +25 -0
- data/require-analyze.rb +22 -0
- data/spec/README.md +14 -0
- data/spec/codecs/edn.rb +40 -0
- data/spec/codecs/edn_lines.rb +53 -0
- data/spec/codecs/graphite.rb +96 -0
- data/spec/codecs/json.rb +57 -0
- data/spec/codecs/json_lines.rb +51 -0
- data/spec/codecs/json_spooler.rb +43 -0
- data/spec/codecs/msgpack.rb +39 -0
- data/spec/codecs/multiline.rb +60 -0
- data/spec/codecs/oldlogstashjson.rb +55 -0
- data/spec/codecs/plain.rb +35 -0
- data/spec/codecs/spool.rb +35 -0
- data/spec/conditionals/test.rb +323 -0
- data/spec/config.rb +31 -0
- data/spec/event.rb +165 -0
- data/spec/examples/fail2ban.rb +28 -0
- data/spec/examples/graphite-input.rb +41 -0
- data/spec/examples/mysql-slow-query.rb +70 -0
- data/spec/examples/parse-apache-logs.rb +66 -0
- data/spec/examples/parse-haproxy-logs.rb +115 -0
- data/spec/examples/syslog.rb +48 -0
- data/spec/filters/alter.rb +96 -0
- data/spec/filters/anonymize.rb +189 -0
- data/spec/filters/checksum.rb +41 -0
- data/spec/filters/clone.rb +67 -0
- data/spec/filters/collate.rb +122 -0
- data/spec/filters/csv.rb +174 -0
- data/spec/filters/date.rb +285 -0
- data/spec/filters/date_performance.rb +31 -0
- data/spec/filters/dns.rb +159 -0
- data/spec/filters/drop.rb +19 -0
- data/spec/filters/elapsed.rb +294 -0
- data/spec/filters/environment.rb +43 -0
- data/spec/filters/geoip.rb +62 -0
- data/spec/filters/grep.rb +342 -0
- data/spec/filters/grok.rb +473 -0
- data/spec/filters/grok/timeout2.rb +56 -0
- data/spec/filters/grok/timeouts.rb +39 -0
- data/spec/filters/i18n.rb +25 -0
- data/spec/filters/json.rb +72 -0
- data/spec/filters/json_encode.rb +37 -0
- data/spec/filters/kv.rb +403 -0
- data/spec/filters/metrics.rb +212 -0
- data/spec/filters/multiline.rb +119 -0
- data/spec/filters/mutate.rb +180 -0
- data/spec/filters/noop.rb +221 -0
- data/spec/filters/prune.rb +441 -0
- data/spec/filters/punct.rb +18 -0
- data/spec/filters/railsparallelrequest.rb +112 -0
- data/spec/filters/range.rb +169 -0
- data/spec/filters/split.rb +58 -0
- data/spec/filters/translate.rb +70 -0
- data/spec/filters/unique.rb +25 -0
- data/spec/filters/useragent.rb +42 -0
- data/spec/filters/xml.rb +157 -0
- data/spec/inputs/file.rb +107 -0
- data/spec/inputs/gelf.rb +52 -0
- data/spec/inputs/generator.rb +30 -0
- data/spec/inputs/imap.rb +60 -0
- data/spec/inputs/redis.rb +63 -0
- data/spec/inputs/relp.rb +70 -0
- data/spec/inputs/tcp.rb +101 -0
- data/spec/jar.rb +21 -0
- data/spec/outputs/csv.rb +266 -0
- data/spec/outputs/elasticsearch.rb +161 -0
- data/spec/outputs/elasticsearch_http.rb +240 -0
- data/spec/outputs/email.rb +173 -0
- data/spec/outputs/file.rb +82 -0
- data/spec/outputs/graphite.rb +236 -0
- data/spec/outputs/redis.rb +127 -0
- data/spec/speed.rb +20 -0
- data/spec/sqlite-test.rb +81 -0
- data/spec/support/LOGSTASH-733.rb +21 -0
- data/spec/support/LOGSTASH-820.rb +25 -0
- data/spec/support/akamai-grok.rb +26 -0
- data/spec/support/date-http.rb +17 -0
- data/spec/support/postwait1.rb +26 -0
- data/spec/support/pull375.rb +21 -0
- data/spec/test_utils.rb +125 -0
- data/spec/util/fieldeval_spec.rb +44 -0
- data/test/jenkins/config.xml.erb +74 -0
- data/test/jenkins/create-jobs.rb +23 -0
- data/test/jenkins/generatorjob.config.xml +66 -0
- data/tools/Gemfile +14 -0
- data/tools/Gemfile.jruby-1.9.lock +322 -0
- data/tools/Gemfile.rbx-2.1.lock +516 -0
- data/tools/Gemfile.ruby-1.9.1.lock +310 -0
- data/tools/Gemfile.ruby-2.0.0.lock +310 -0
- 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
|
data/locales/en.yml
ADDED
|
@@ -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
|
data/logstash.gemspec
ADDED
|
@@ -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
|
data/patterns/firewalls
ADDED
|
@@ -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)?)
|