├── .gitignore ├── LICENSE ├── LicenseVerifier.class ├── README.md ├── crack_xpack.sh ├── elasticsearch-developer-cheatsheet.md ├── elasticsearch-devops-cheatsheet.md ├── filebeat ├── filebeat.yaml └── metricbeat.yml ├── flume ├── dir2kafka.conf ├── kafka2es.conf ├── kafka2hdfs.conf └── kafka2hive.conf ├── img ├── deploy2.png ├── deploy3.png └── deploy4.png ├── install_apm_server.sh ├── install_elasticsearch.sh ├── install_filebeat.sh ├── install_kibana.sh ├── install_logstash.sh ├── install_rsyslog.sh ├── license.json ├── logrotate.d ├── mysql ├── nginx ├── rabbitmq └── redis ├── logstash ├── conf.d │ ├── filter-ceph.conf │ ├── filter-firewall.conf │ ├── filter-haproxy.conf │ ├── filter-ip2location.conf │ ├── filter-java.conf │ ├── filter-jetty.conf │ ├── filter-metrics.conf │ ├── filter-mongodb.conf │ ├── filter-multiline.conf │ ├── filter-mysql-slow.conf │ ├── filter-nginx-access.conf │ ├── filter-nginx-error.conf │ ├── filter-percona-audit-log.conf │ ├── filter-php-slow.conf │ ├── filter-redis.conf │ ├── filter-referer.conf │ ├── filter-solr.conf │ ├── filter-tomcat.conf │ ├── filter-trafficserver.conf │ ├── filter-useragent.conf │ ├── input-beats.conf │ ├── input-http_poller.conf │ ├── input-kafka.conf │ ├── input-netflow.conf │ ├── input-retry.conf │ ├── input-syslog.conf │ ├── input-varnishlog.conf │ ├── output-es.conf │ ├── output-hdfs.conf │ ├── output-kafka.conf │ └── output-opentsdb.conf ├── conf │ ├── ip2location.datx │ ├── referers.yml │ └── useragent.yaml └── intro.txt ├── rsyslog.conf └── rsyslog.d ├── fwd.conf ├── grok.conf ├── kafka.conf ├── log.template.conf ├── log4j.conf ├── log4php.conf ├── log4python.conf ├── messsages.conf ├── mysql-error.conf ├── mysql-slow.conf ├── nginx-access.conf ├── nginx-error.conf ├── php-fpm-error.conf ├── php-fpm-slow.conf └── python-error.conf /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask stuff: 57 | instance/ 58 | .webassets-cache 59 | 60 | # Scrapy stuff: 61 | .scrapy 62 | 63 | # Sphinx documentation 64 | docs/_build/ 65 | 66 | # PyBuilder 67 | target/ 68 | 69 | # IPython Notebook 70 | .ipynb_checkpoints 71 | 72 | # pyenv 73 | .python-version 74 | 75 | # celery beat schedule file 76 | celerybeat-schedule 77 | 78 | # dotenv 79 | .env 80 | 81 | # virtualenv 82 | venv/ 83 | ENV/ 84 | 85 | # Spyder project settings 86 | .spyderproject 87 | 88 | # Rope project settings 89 | .ropeproject 90 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 xiaoma tech 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LicenseVerifier.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaomatech/log/47a6d4e914909b0b74876aa1921f54bd619fb4d3/LicenseVerifier.class -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 日志配置 2 | 3 | 4 | 5 | ``` 6 | https://www.elastic.co/guide/en/logstash/current/deploying-and-scaling.html 7 | ``` 8 | -------------------------------------------------------------------------------- /crack_xpack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | yum install -y java-1.8.0-openjdk-devel 4 | 5 | version=6.2.3 6 | 7 | mkdir test && cd test 8 | jar -xvf /usr/share/elasticsearch/plugins/x-pack/x-pack-core/x-pack-core-*.jar 9 | 10 | echo -ne ''' 11 | package org.elasticsearch.license; 12 | 13 | public class LicenseVerifier 14 | { 15 | public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) { 16 | return true; 17 | } 18 | 19 | public static boolean verifyLicense(final License license) { 20 | return true; 21 | } 22 | } 23 | '''>LicenseVerifier.java 24 | 25 | javac -cp "/usr/share/elasticsearch/lib/elasticsearch-*.jar:/usr/share/elasticsearch/lib/lucene-core-*.jar:/usr/share/elasticsearch/plugins/x-pack/x-pack-core/x-pack-core-*.jar" LicenseVerifier.java 26 | 27 | cp ./LicenseVerifier.class org/elasticsearch/license/ 28 | 29 | jar -cvf x-pack-core-$version.jar ./* 30 | 31 | cp x-pack-core-$version.jar /usr/share/elasticsearch/plugins/x-pack/x-pack-core/x-pack-core-$version.jar 32 | 33 | -------------------------------------------------------------------------------- /elasticsearch-developer-cheatsheet.md: -------------------------------------------------------------------------------- 1 | Data Manipulation 2 | ================= 3 | 4 | Put/Get/Delete index 5 | -------------------- 6 | 7 | curl -XPUT localhost:9200/index-name -d '{"settings": { "number_of_shards": 1}}' 8 | curl -XGET localhost:9200/index-name?pretty 9 | curl -XDELETE localhost:9200/index-name 10 | 11 | Put/Get/Delete template 12 | ----------------------- 13 | 14 | curl -XPUT localhost:9200/_template/template-name -d '{ 15 | "template": "logs*", 16 | "mappings": { 17 | "foo-type": { 18 | "properties": { 19 | "foo-field": { 20 | "type": "text" 21 | } 22 | } 23 | } 24 | }, 25 | "settings": { 26 | "number_of_shards": 1 27 | } 28 | }' 29 | curl -XGET localhost:9200/_template/template-name?pretty 30 | curl -XDELETE localhost:9200/_template/template-name 31 | 32 | Bulk API 33 | -------- 34 | 35 | echo '{"index": { "_index": "logs01", "_type": "logs"}} 36 | {"title": "this is an error"} 37 | {"index": { "_index": "logs02", "_type": "logs"}} 38 | {"title": "this is a warning"} 39 | {"delete": { "_index": "logs03", "_type": "logs", "_id": "abc123"}} 40 | ' > /tmp/bulk 41 | curl localhost:9200/_bulk?pretty –data-binary @/tmp/bulk 42 | 43 | Ingest API (put/get/delete/simulate pipeline) 44 | --------------------------------------------- 45 | 46 | curl -XPUT localhost:9200/_ingest/pipeline/apache -d '{ 47 | "description": "grok apache logs", 48 | "processors": [ 49 | { 50 | "grok": { 51 | "field": "message", 52 | "patterns": ["%{COMBINEDAPACHELOG}%{GREEDYDATA:additional_fields}"] 53 | } 54 | } 55 | ] 56 | }' 57 | curl -XGET localhost:9200/_ingest/pipeline/apache?pretty 58 | curl -XDELETE localhost:9200/_ingest/pipeline/apache 59 | curl -XPOSTlocalhost:9200/_ingest/pipeline/_simulate -d '{ 60 | "pipeline": { 61 | "description": "grok apache logs", 62 | "processors": [ 63 | { 64 | "grok": { 65 | "field": "message", 66 | "patterns": [ 67 | "%{COMBINEDAPACHELOG}%{GREEDYDATA:additional_fields}" 68 | ] 69 | } 70 | } 71 | ] 72 | }, 73 | "docs": [ 74 | { 75 | "_source": { 76 | "message": "example.com – – [22/Apr/2016:18:52:51 +1200] \"GET /images/photos/455.jpg HTTP/1.1\" 200 986 \"-\" \"Mozilla/5.0\" \"-\"" 77 | } 78 | } 79 | ] 80 | }' 81 | 82 | Mapping parameters 83 | ================== 84 | 85 | Field types 86 | ----------- 87 | 88 | curl -XPUT localhost:9200/index-name -d '{ 89 | "mappings": { 90 | "foo-type": { 91 | "properties": { 92 | "foo": { 93 | "type": "text" 94 | } 95 | } 96 | } 97 | } 98 | }' 99 | 100 | By default, string fields are mapped as both: 101 | 102 | - **text** – full-text search 103 | - **keyword** – exact search, sorting and aggregations 104 | 105 | Numeric: **byte, short, integer, long, float, scaled_float, half_float** 106 | Others: **boolean, ip, geo_point, geo_shape** 107 | 108 | Analysis 109 | -------- 110 | 111 | Analyzer components: 112 | 113 | - [character filters] 114 | - tokenizer 115 | - [token filters] 116 | 117 | 118 | 119 | curl -XPUT localhost:9200/index-name -d '{ 120 | "settings": { 121 | "analysis": { 122 | "char_filter": { 123 | "my_mapping_char_filter": { 124 | "type": "mapping", 125 | "mappings": ["& => and"] 126 | } 127 | }, 128 | "analyzer": { 129 | "my_custom_analyzer": { 130 | "char_filter": ["my_mapping_char_filter"], 131 | "tokenizer": "whitespace", 132 | "filter": ["lowercase"] 133 | } 134 | } 135 | } 136 | }, 137 | "mappings": { 138 | "foo-type": { 139 | "properties": { 140 | "foo": { 141 | "type": "text", 142 | "analyzer": "my_custom_analyzer" 143 | } 144 | } 145 | } 146 | } 147 | 148 | 149 | Analyze API: 150 | ------------ 151 | 152 | curl -XPOST localhost:9200/index-name/_analyze -d '{ 153 | "text": ["Fish & Chips"], 154 | "analyzer": "my_custom_analyzer" 155 | }' 156 | # reply 157 | { 158 | "tokens": [ 159 | { 160 | "token": "fish", 161 | "start_offset": 0, 162 | "end_offset": 4, 163 | "type": "word", 164 | "position": 0 165 | }, 166 | { 167 | "token": "and", 168 | … 169 | }, 170 | { 171 | "token": "chips", 172 | … 173 | 174 | Important default analyzers: 175 | 176 | 177 | - **standard** – tokenizes European languages OK, lowercases 178 | - language (e.g. **english, dutch**) – selects the appropriate tokenizer (often **standard**), lowercases, removes stopwords and stems 179 | 180 | Important character filters: 181 | 182 | - **html_strip** – removes HTML elements and decodes HTML character 183 | entities 184 | - **pattern_replace** – replaces regular expression matches 185 | 186 | Important tokenizers: 187 | 188 | - **standard** – the same used in the Standard Analyzer 189 | - **letter** – tokens are only groups of letters 190 | - **whitespace** – treats whitespaces as separators 191 | - **pattern** – regular expression as separator 192 | - **keyword** – treats the whole string as a token 193 | 194 | Important token filters: 195 | 196 | - **lowercase** or **uppercase** – folds cases 197 | - **asciifolding** – folds non-ASCII characters to ASCII equivalents for 198 | european languages 199 | - **stemmer** – reduces words to their roots (with configurable 200 | aggressiveness) 201 | - **synonym** – adds synonym tokens to the index 202 | - **ngram** – creates tokens out of groups of consecutive letters 203 | - **edge ngram** – ngrams for prefixes 204 | - **reverse** – flips character order (combine with edge ngram for suffix 205 | matching) 206 | - **shingle** – word ngrams 207 | 208 | Mapping options 209 | --------------- 210 | 211 | curl -XPUT localhost:9200/index-name -d '{ 212 | "mappings": { 213 | "foo-type": { 214 | "properties": { 215 | "foo": { 216 | "type": "text", 217 | "index_options": "docs", 218 | "norms": false, 219 | "fields": { 220 | "keyword": { 221 | "type": "keyword", 222 | "doc_values": true, 223 | "index": false 224 | } 225 | } 226 | } 227 | } 228 | } 229 | } 230 | }' 231 | 232 | - **doc_values** (true/false) – for sorting and aggregations on a field 233 | - **index** (true/false) – for searching on a field 234 | - **index_options** – whether to index only the term (**docs**), or also its 235 | frequency (**freqs**) and where it occurs (**positions** and **offsets**) 236 | - **norms** (true/false) – for normalizing scores relative to field length 237 | - **ignore_above** – don’t index terms bigger than N characters 238 | 239 | Queries 240 | ======= 241 | 242 | Full-text search 243 | ---------------- 244 | 245 | Lucene query syntax: **query_string** 246 | 247 | curl localhost:9200/index-name/_search -d '{ 248 | "query": { 249 | "query_string": { 250 | "query": "+fish +chips" 251 | } 252 | } 253 | }' 254 | 255 | Options: 256 | 257 | - **field:value** to look in **field**, or search in all fields (default) or in 258 | a specified **default_field** 259 | - +requiredTerm -excludedTerm. Or you can say **requiredTerm1** AND **requiredTerm2** 260 | - **(firstName AND lastName) OR alias** 261 | - **Ealsticsearch~1** (fuzziness of one character to tolerate typos) 262 | - **"Sematext consulting Elasticsearch"~2** (slop of two words) 263 | - **E?asticse*** 264 | - **date:[2017-01-01 TO 2018-01-01] OR rating:[3 TO *]** 265 | - **boostThisTermByTen^10** 266 | - escape special characters (?*~^:+-), use a backslash (\) 267 | 268 | Text-box like search: **match** 269 | 270 | 271 | "query": { 272 | "match": { 273 | "foo": { 274 | "query": "bar baz", 275 | "operator": "OR" 276 | } 277 | } 278 | } 279 | 280 | Options: 281 | 282 | - fuzziness allows typos to be tolerated 283 | - cutoff_frequency high-frequency terms are searched only on results of 284 | the low-frequency terms For match on multiple fields: multi_match 285 | 286 | "multi_match": { 287 | "query": "fish chips", 288 | "fields": ["foo", "bar"] 289 | } 290 | 291 | Can set **type** to: 292 | 293 | - **best_fields** (default): takes the highest scoring field into account, 294 | optionally taking a fraction of the others (as defined by 295 | **tie_breaker**) 296 | - **most_fields**: sums up scores of all fields (equivalent to best_fields 297 | with tie_breaker=1) 298 | - **cross_fields**: treats multiple fields as one 299 | - **phrase**: like best_fields, but matches phrases with a configurable 300 | slop 301 | - **phrase_prefix**: like phrase, but considers the prefix of the last term 302 | 303 | Filtering 304 | --------- 305 | 306 | Exact values: **term** and **terms** 307 | 308 | "term": { 309 | "foo": "fish" 310 | } 311 | 312 | **range** 313 | 314 | "range": { 315 | "retweets": { 316 | "gte": 10, 317 | "lte": 20 318 | } 319 | } 320 | 321 | Wrappers 322 | -------- 323 | 324 | Combining other queries: **bool** 325 | 326 | "bool": { 327 | "must": { 328 | "match": { 329 | "foo": "fish" 330 | } 331 | }, 332 | "filter": { 333 | "range": { 334 | "retweets": { 335 | "gte": 10 336 | } 337 | } 338 | } 339 | } 340 | 341 | Clauses: 342 | 343 | - **must**: queries required both to produce a hit and for scoring 344 | - **should**: queries that, if matched, contribute to the score 345 | - **filter**: required queries, not influencing score (cacheable) 346 | - **must_not**: cacheable queries that are required not to match 347 | 348 | Alters score to [a subset of] results: **function_score** 349 | 350 | 351 | "function_score": { 352 | "query": { 353 | "match": { 354 | "foo": "fish" 355 | } 356 | }, 357 | "functions": [ 358 | { 359 | "filter": { 360 | "range": { 361 | "retweets": { 362 | "gte": 10 363 | } 364 | } 365 | }, 366 | "weight": 5 367 | } 368 | ] 369 | } 370 | 371 | Functions: 372 | 373 | - weight/random_score: multiply the score by a static or a random 374 | number 375 | - field_value_factor: multiply the score by a factor (e.g. square root) 376 | of the value of a field 377 | - linear/exp/gauss decay: reduce the score based on how far the value 378 | of a field is from a specified origin script: use a script to 379 | generate a weight 380 | 381 | Aggregations 382 | ============ 383 | 384 | curl localhost:9200/index-name/_search -d '{ 385 | "size": 0, 386 | "aggs": { 387 | "most_foos": { 388 | "terms": { 389 | "field": "foo.keyword" 390 | } 391 | } 392 | } 393 | }' 394 | 395 | Term occurrences 396 | ---------------- 397 | 398 | - **terms**: by default, most occurrences of a term. Can order by other 399 | criteria (including other aggregations) 400 | - **significant_terms**: terms occurring more often in the query results 401 | compared to overall. More expensive, may want to use the **sampler** 402 | aggregation 403 | 404 | Ranges 405 | ------ 406 | 407 | - **range**: buckets of documents from defined numeric ranges 408 | - **date_range/ip_range**: same as range, but for dates and IPs 409 | - **histogram/date_histogram**: ranges are fixed from an interval 410 | 411 | Statistics 412 | ---------- 413 | 414 | 415 | 416 | "aggs": { 417 | "avg_retweets": { 418 | "avg": { 419 | "field": "retweets" 420 | } 421 | } 422 | } 423 | 424 | - **value_count/min/max/avg/sum** of values from a field 425 | - **percentiles** from a numeric field are approximate 426 | - **cardinality** of terms is also approximate 427 | 428 | Grouping by nesting aggregations 429 | -------------------------------- 430 | 431 | The following gets the top results, ordered by **_score**, grouped by the value of **bar** (one hit per value). 432 | 433 | 434 | "query": { 435 | "match": { 436 | "foo": "fish" 437 | } 438 | }, 439 | "size": 0, 440 | "aggs": { 441 | "most_foo": { 442 | "terms": { 443 | "field": "bar.keyword", 444 | "order": { 445 | "max_score": "desc" 446 | } 447 | }, 448 | "aggs": { 449 | "max_score": { 450 | "max": { 451 | "script": { 452 | "inline": "_score" 453 | } 454 | } 455 | }, 456 | "top_hit": { 457 | "top_hits": { 458 | "size": 1 459 | } 460 | } 461 | } 462 | } 463 | } 464 | 465 | Document relationships 466 | ====================== 467 | 468 | Objects 469 | ------- 470 | 471 | Good for one-to-one relations or when you’re searching a single field: 472 | 473 | curl -XPOST localhost:9200/blog/posts/ -d '{ 474 | "title": "Fish & Chips", 475 | "author": { 476 | "first_name": "John", 477 | "last_name": "Smith" 478 | } 479 | }' 480 | 481 | Nested 482 | ------ 483 | 484 | When you need boundaries between objects (e.g. **first_name:jane AND last_name:smith**). Mapping needs to specify that the parent field is **nested**: 485 | 486 | 487 | "mappings": { 488 | "posts": { 489 | "properties": { 490 | "authors": { 491 | "type": "nested" 492 | } 493 | } 494 | } 495 | } 496 | 497 | Documents look like regular objects (even though they’re separate Lucene documents): 498 | 499 | 500 | "authors": [ 501 | { 502 | "first_name": "John", 503 | "last_name": "Smith" 504 | }, 505 | { 506 | "first_name": "Jane", 507 | "last_name": "Adams" 508 | } 509 | ] 510 | 511 | Queries (and aggregations) need to be aware of this and do the join: 512 | 513 | 514 | "query": { 515 | "nested": { 516 | "path": "authors", 517 | "query": { 518 | "match": { 519 | "authors.first_name": "Jane" 520 | } 521 | } 522 | } 523 | } 524 | 525 | Parent-child 526 | ------------ 527 | 528 | When updates are frequent and you want to avoid reindexing the whole ensemble (as you would with nested documents). These are completely separate documents, going in different types: 529 | 530 | 531 | "mappings": { 532 | "authors": { 533 | "_parent": { 534 | "type": "posts" 535 | } 536 | } 537 | } 538 | 539 | Children point to parents via the **_parent field**: 540 | 541 | curl -XPOST localhost:9200/blog/posts/1 -d '{ 542 | "title": "Fish & Chips" 543 | }' 544 | curl -XPOST localhost:9200/blog/authors?parent=1 -d '{ 545 | "first_name": "John", 546 | "last_name": "Smith" 547 | }' 548 | curl -XPOSTlocalhost:9200/blog/authors?parent=1 -d '{ 549 | "first_name": "Jane", 550 | "last_name": "Adams" 551 | }' 552 | Like with nested documents, the query has to specify that a join needs to be done: 553 | "query": { 554 | "has_child": { 555 | "type": "authors", 556 | "query": { 557 | "match": { 558 | "first_name": "Jane" 559 | } 560 | } 561 | } 562 | } 563 | -------------------------------------------------------------------------------- /elasticsearch-devops-cheatsheet.md: -------------------------------------------------------------------------------- 1 | DevOps cheatsheet 2 | ================= 3 | 4 | Allocation 5 | ========== 6 | 7 | Allocation awareness 8 | -------------------- 9 | 10 | Avoids putting two copies of the same shard on nodes with the same attribute (e.g. rack, availability zone). For example: 11 | 12 | node.attr.availability_zone: us-east1 # in elasticsearch.yml 13 | 14 | Awareness is enabled at the cluster level: 15 | 16 | curl -XPUT localhost:9200/_cluster/settings?pretty -d '{ 17 | "persistent" : { 18 | "cluster.routing.allocation.awareness.attributes" : "availability_zone" 19 | } 20 | }' 21 | 22 | Allocation filtering 23 | -------------------- 24 | 25 | Shards of an index can prefer/avoid nodes with certain attributes. Good for having hot/cold tiers: 26 | node.attr.temperature: hot # in elasticsearch.yml 27 | 28 | At index creation, you can assign shards to the hot nodes: 29 | 30 | curl -XPUT localhost:9200/logs01 -d '{ 31 | "settings": { 32 | "index.routing.allocation.include.tag": "hot" 33 | } 34 | }' 35 | 36 | Later on, you can change this value to **cold** move the shards to nodes having **temperature** set to **cold**. 37 | 38 | Delayed allocation 39 | ------------------ 40 | 41 | Avoids the domino effect of relocation when a node is restarted or temporarily unavailable: 42 | 43 | curl -XPUT localhost:9200/$INDEX/_settings -d '{ 44 | "settings": { 45 | "index.unassigned.node_left.delayed_timeout": "5m" 46 | } 47 | }' 48 | 49 | Caches 50 | ====== 51 | 52 | Query cache 53 | ----------- 54 | 55 | Defaults to 10% of heap: 56 | 57 | indices.queries.cache.size: 7% # in elasticsearch.yml 58 | 59 | By default, queries running in the **filter** context will be cached if they run repeatedly, and only on larger segments. You can override this and cache everything in **elasticsearch.yml**: 60 | 61 | index.queries.cache.everything: true 62 | 63 | Request cache 64 | ------------- 65 | 66 | Caches results of aggregations on indices that haven’t changed. Defaults to 1% of heap: 67 | 68 | indices.requests.cache.size: 2% 69 | 70 | Indexing buffer 71 | --------------- 72 | 73 | A node-level buffer for indexing, before a flush will commit to disk. Defaults to 10% of heap: 74 | 75 | indices.memory.index_buffer_size: 5% 76 | 77 | Page recycler 78 | ------------- 79 | 80 | Big arrays used by aggregations are put here so they can be reused. Defaults to 10% of heap: 81 | 82 | cache.recycler.page.limit.heap: 5% 83 | 84 | Field data 85 | ---------- 86 | 87 | The only way to do sorting/aggregations on text fields. Avoid it if possible. If not, limit it through per-request circuit breakers: 88 | 89 | indices.breaker.fielddata.limit: 10% 90 | 91 | And by limiting the overall size: 92 | 93 | indices.fielddata.cache.size: 20% 94 | 95 | Merges 96 | ====== 97 | 98 | Force merge 99 | ----------- 100 | 101 | Might be worth merging indices that don’t change into a handful of big segments: 102 | 103 | curl -XPOST localhost:9200/$INDEX/_forcemerge?max_num_segments=5 104 | 105 | Segments need to be merged in order to change the compression level, so you can do that before force merging: 106 | 107 | curl -XPUT localhost:9200/$INDEX/_settings -d '{ 108 | "index.codec": "best_compression" 109 | }' 110 | 111 | Thread pools 112 | ------------ 113 | 114 | **size** = number of parallel requests, and **queue_size** = number of waiting requests: 115 | 116 | threadpool.search.size: 8 117 | threadpool.search.queue_size: 5000 118 | threadpool.bulk.size: 12 119 | threadpool.bulk.queue_size: 500 120 | 121 | Merge policy 122 | ------------ 123 | 124 | There are multiple knobs here. Most importantly: 125 | Segments per tier. Defaults to 10. Higher values allow for more segments, giving better indexing throughput at the expense of search latency, disk space, memory and open file handles 126 | Max merge at once. Defaults to 10. Lower values lower the impact of merging, but will make the process slower (which can potentially throttle indexing) 127 | Max merged segment. Defaults to 5GB. Lower values result in less merges of large segments, but require more merges of small segments, trading spikes for overall load. 128 | 129 | curl -XPUT localhost:9200/$INDEX/_settings -d '{ 130 | "index.merge.policy": { 131 | "segments_per_tier": 50, 132 | "max_merge_at_once": 50, 133 | "max_merged_segment": "1gb" 134 | } 135 | }' 136 | 137 | Shrink index 138 | ------------ 139 | 140 | Shrink an index into a new one with less shards (factor of the current number of shards): 141 | 142 | curl -XPOST localhost:9200/logs01/_shrink/logs01_shrinked -d '{ 143 | "settings": { 144 | "index.number_of_shards": 1 145 | } 146 | }' 147 | 148 | Troubleshooting: get info 149 | ========================= 150 | 151 | Cat health 152 | ---------- 153 | 154 | curl localhost:9200/_cat/health?v 155 | 156 | **v is for “verbose”**, shows column headers. Gives number of nodes, shards (started, initializing, relocating) and cluster color: 157 | 158 | - All primaries and replicas are up 159 | - All primaries are up, but not all replicas 160 | - Not all primaries are up 161 | 162 | Cat nodes 163 | --------- 164 | 165 | curl localhost:9200/_cat/nodes?v 166 | 167 | Shows figures like load and heap usage of nodes. You can select columns via the help parameter to get other metrics. 168 | 169 | _cat/allocation 170 | --------------- 171 | 172 | How many shards are on each node and how much disk space they take (vs free space). 173 | 174 | _cat/indices 175 | ------------ 176 | 177 | How big is each index; how many shards and replicas it has. 178 | 179 | _cat/shards 180 | =========== 181 | 182 | How big is each shard and on which node it is. Shows whether a shard is STARTED, UNASSIGNED, INITIALIZING or RELOCATING. You can easily **grep** though those values when you have many shards 183 | 184 | _cat/segments 185 | ------------- 186 | 187 | How big each segment in each shard is (including memory usage). You can filter by index, for example: 188 | 189 | curl localhost:9200/_cat/segments/$INDEX?v 190 | 191 | If you look at the files, you’ll see different extensions. Most importantly (in terms of memory and storage): 192 | 193 | - .cfs, .cfe: These are **compound segments** 194 | - .fdt: **Stored fields (like _source)** 195 | - .tim: **Term dictionary**, used when searching in indexed fields 196 | - .doc: **Frequency** of each term in each document (for scoring) 197 | - .pos: **Positional** information (for phrase searches) 198 | - .pay: **Payloads**, most notably character offsets (for the 199 | Postings-based highlighters) 200 | - .nvd, .nvm: Field lengths (a.k.a. **norms** - also used for storing) 201 | - .dvd, .dvm: **Doc values** (used for sorting and aggregations) 202 | - .tv?: **Term vectors** (used for the term-vector-based highlighters) 203 | - .dii, .dim: **Point values** (for geo fields as well as numerics) 204 | 205 | More information can be found here (for Elasticsearch 5.x, which uses Lucene 6.x, you may need to change the version): 206 | [https://lucene.apache.org/core/6_0_0/core/org/apache/lucene/codecs/lucene60/package-summary.html](https://lucene.apache.org/core/6_0_0/core/org/apache/lucene/codecs/lucene60/package-summary.html) 207 | 208 | _cat/pending_tasks 209 | ------------------ 210 | 211 | In-progress operations in your cluster. You’d typically catch long-running ones (e.g. snapshot, force merge) or the ones that get queued up when the cluster is in trouble and the master gets overloaded (e.g. lots of mapping/cluster state updates). 212 | _cat/thread_pool 213 | How many threads are active (working on) searches, bulk indexing and so on. You can also see how many are enqueued (queue) compared to the queue.size and how many were rejected (usually because the queue was full). 214 | 215 | _cat/fielddata 216 | -------------- 217 | 218 | How much heap field data (the in memory equivalent of doc values) takes. Per field, per node. 219 | 220 | Nodes stats 221 | ----------- 222 | 223 | curl localhost:9200/_nodes/stats?pretty 224 | 225 | Gives back statistics of all nodes in the cluster. You can filter nodes, too, like **_nodes/_local/stats** just for the current node. Relevant metrics include: 226 | 227 | - How much time was spent in queries, fetches, indexing, merging, etc 228 | - How much memory current segments take, broken by type (e.g. term 229 | dictionary, doc values) which is a good indicator of the live set 230 | - Current and maximum amount of heap usage per pool. Good indicator of 231 | 232 | Nodes hot threads 233 | ----------------- 234 | 235 | curl localhost:9200/_nodes/hot_threads 236 | 237 | Tells you what’s keeping Elasticsearch busy. Add **type=wait** or **type=block** to see what’s keeping it from being busy. You can also filter nodes like **_nodes/_local/hot_threads** 238 | 239 | OS stats 240 | -------- 241 | 242 | **top, iotop, dstat, iostat** help figure out what the bottleneck is. Usually: 243 | 244 | - Aggregations are CPU-intensive and memory-intensive. The last part 245 | may translate into high GC (check the logs for longer GC events) 246 | - Full-text search (without aggregations) is IO latency sensitive 247 | - Indexing (especially merging) is CPU intensive and IO throughput 248 | intensive 249 | - Snapshots, replication and replication are network and disk intensive 250 | 251 | Cluster allocation explain 252 | -------------------------- 253 | 254 | Shows all the decisions that make a particular shard not to be allocated on different nodes: 255 | 256 | curl localhost:9200/_cluster/allocation/explain?pretty -d'{ 257 | "index": "INDEX_NAME", 258 | "shard": 0, 259 | "primary": true 260 | }' 261 | 262 | Also accepts the node name as a **node** value in the body to show the explanation only for it. 263 | 264 | Indices shard stores 265 | -------------------- 266 | 267 | curl localhost:9200/$INDEX/_shard_stores?pretty 268 | 269 | Returns the last exception that occurred while opening shards of this index. 270 | 271 | Troubleshooting actions 272 | ======================= 273 | 274 | Total shards per node 275 | --------------------- 276 | 277 | How many shards an index can have on each node (good for force-balancing the cluster): 278 | 279 | curl -XPUT localhost:9200/$INDEX/_settings -d '{ 280 | "index.routing.allocation.total_shards_per_node": 2 281 | }' 282 | 283 | Disk allocation thresholds 284 | -------------------------- 285 | 286 | Prevents nodes from running out of disk. 287 | 288 | Low watermark: when to stop allocating new shards. 289 | High watermark: when to relocate existing shards. 290 | 291 | curl -XPUT localhost:9200/_cluster/settings -d '{ 292 | "persistent" : { 293 | "cluster.routing.allocation.disk.watermark.low" : "70%", 294 | "cluster.routing.allocation.disk.watermark.high" : "85%" 295 | } 296 | }' 297 | 298 | Shard reroute (allocate, move and cancel) 299 | ----------------------------------------- 300 | 301 | Allows you to try and allocate a shard manually, or cancel a replication/relocation, or to move a shard: 302 | 303 | curl -XPOST localhost:9200/_cluster/reroute -d '{ 304 | "commands" : [ { 305 | "move" : 306 | { 307 | "index" : "INDEX_NAME", "shard" : SHARD_NUMBER, 308 | "from_node" : "SOURCE_NODE", "to_node" : "DESTINATION_NODE" 309 | } 310 | } 311 | ] 312 | }' 313 | 314 | Concurrent replications, relocations and bandwidth 315 | -------------------------------------------------- 316 | 317 | How many shards can be replicated from each node: 318 | 319 | curl -XPUT localhost:9200/_cluster/settings?pretty -d '{ 320 | "persistent" : { 321 | "cluster.routing.allocation.node_concurrent_recoveries": 2 322 | } 323 | }' 324 | 325 | How many shards can move around, cluster-wide: 326 | 327 | curl -XPUT localhost:9200/_cluster/settings?pretty -d '{ 328 | "persistent" : { 329 | "cluster.routing.allocation.cluster_concurrent_rebalance": 2 330 | } 331 | }' 332 | 333 | How much bandwidth can recovery/rebalancing take: 334 | 335 | curl -XPUT localhost:9200/_cluster/settings?pretty -d '{ 336 | "persistent" : { 337 | "indices.recovery.max_bytes_per_sec": "20mb" 338 | } 339 | }' 340 | 341 | Transaction log settings 342 | ------------------------ 343 | 344 | Trade durability for performance (less IOPS): 345 | 346 | curl -XPUT localhost:9200/$INDEX/_settings -d '{ 347 | "index.translog": { 348 | "index.translog.durability": "async" 349 | } 350 | }' 351 | 352 | GC tuning 353 | --------- 354 | 355 | If survivor space is mostly full, you can increase it by lowering -XX:SurvivorRatio in jvm.options (default is 8 on most platforms). 356 | 357 | If the whole young generation (survivor + eden) is mostly full, you can increase it via -XX:NewSize. 358 | 359 | On large heaps (>30GB, usually you’d want to stay under 30GB to get compressed pointers, but 60-90GB may be needed on some big boxes), using G1 instead of CMS should help. To do that, replace: 360 | 361 | -XX:+UseConcMarkSweepGC 362 | -XX:CMSInitiatingOccupancyFraction=75 363 | -XX:+UseCMSInitiatingOccupancyOnly 364 | 365 | With: 366 | 367 | -XX:+UseG1GC 368 | 369 | Clear caches 370 | ------------ 371 | 372 | Quick way to free some heap: 373 | 374 | curl -XPOST localhost:9200/_cache/clear 375 | -------------------------------------------------------------------------------- /filebeat/filebeat.yaml: -------------------------------------------------------------------------------- 1 | filebeat.prospectors: 2 | - type: log 3 | paths: 4 | - /data/logs/web.log 5 | fields: 6 | service: spring-service 7 | log_type: log4j 8 | multiline.pattern: '^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}' 9 | multiline.negate: true 10 | multiline.match: after 11 | exclude_files: [".gz$"] 12 | 13 | - type: log 14 | fields: 15 | service: python-service 16 | log_type: python-logging 17 | paths: ['/data/logs/python/*.log'] 18 | multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}' 19 | multiline.negate: true 20 | multiline.match: after 21 | exclude_files: [".gz$"] 22 | 23 | - type: log 24 | fields: 25 | service: spring-web 26 | log_type: tomcat 27 | paths: ['/data/logs/tomcat/*.log'] 28 | multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{3}' 29 | multiline.negate: true 30 | multiline.match: after 31 | exclude_files: [".gz$"] 32 | 33 | - type: log 34 | paths: ['/data/logs/*-warg.log'] 35 | fields: 36 | service: spring-web-access 37 | log_type: log4j 38 | multiline.pattern: '^\[' 39 | multiline.negate: true 40 | multiline.match: after 41 | exclude_files: [".gz$"] 42 | 43 | - type: log 44 | paths: ['/data/logs/error*.log'] 45 | fields: 46 | service: spring-web-error 47 | log_type: log4j 48 | multiline.pattern: "^\s" 49 | multiline.negate: true 50 | multiline.match: before 51 | exclude_files: [".gz$"] 52 | 53 | filebeat.modules: 54 | - module: system 55 | syslog: 56 | enabled: true 57 | auth: 58 | enabled: true 59 | 60 | - module: auditd 61 | log: 62 | enabled: true 63 | 64 | - module: nginx 65 | access: 66 | enabled: true 67 | var.paths: ["/data/logs/nginx/access.log*"] 68 | error: 69 | enabled: true 70 | var.paths: ["/data/logs/nginx/error.log*"] 71 | 72 | - module: mysql 73 | error: 74 | enabled: true 75 | var.paths: 76 | - /data/logs/mysql/error.log* 77 | - /data/logs/mysqld.log* 78 | slowlog: 79 | enabled: true 80 | var.paths: 81 | - /data/logs/mysql/mysql-slow.log* 82 | - /var/lib/mysql/{{.builtin.hostname}}-slow.logs 83 | - module: redis 84 | log: 85 | enabled: true 86 | var.paths: 87 | - /data/logs/redis/redis-server.log* 88 | log: 89 | enabled: true 90 | var.paths: 91 | - /data/logs/redis/redis-server.log* 92 | slowlog: 93 | var.hosts: 94 | - "localhost:6379" 95 | var.password: "" 96 | 97 | queue.mem: 98 | events: 8192 99 | flush.min_events: 512 100 | flush.timeout: 5s 101 | 102 | output.logstash: 103 | hosts: ["logstash1.meizu.mz:5044","logstash2.meizu.mz:5044"] 104 | bulk_max_size: 1024 105 | loadbalance: true 106 | worker: 16 107 | 108 | #output.elasticsearch: 109 | # hosts: ["http://es1.meizu.mz:9200","http://es2.meizu.mz:9200"] 110 | # loadbalance: true 111 | # worker: 16 112 | 113 | #output.kafka: 114 | # # initial brokers for reading cluster metadata 115 | # hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"] 116 | # # message topic selection + partitioning 117 | # topic: '%{[fields.log_topic]}' 118 | # partition.round_robin: 119 | # reachable_only: false 120 | # required_acks: 1 121 | # compression: snappy 122 | # max_message_bytes: 1000000 123 | 124 | setup.kibana: 125 | host: "kibana.meizu.mz:5601" 126 | enabled: true 127 | 128 | logging.level: warning 129 | logging.to_files: true 130 | logging.to_syslog: false 131 | logging.files: 132 | path: /var/log/filebeat 133 | name: filebeat.log 134 | keepfiles: 7 135 | permissions: 0644 136 | 137 | 138 | setup.template.name: "filebeat" 139 | setup.template.fields: "fields.yml" 140 | setup.template.overwrite: false 141 | setup.template.settings: 142 | index.number_of_shards: 32 143 | index.number_of_replicas: 2 144 | 145 | xpack.monitoring: 146 | enabled: true 147 | elasticsearch: 148 | hosts: ["http://example.com:9200", "http://example2.com:9200"] 149 | username: elastic 150 | password: test 151 | 152 | #filebeat.autodiscover: 153 | # providers: 154 | # - type: docker 155 | # templates: 156 | # - condition: 157 | # equals: 158 | # docker.container.image: redis 159 | # config: 160 | # - type: docker 161 | # containers.ids: 162 | # - "${data.docker.container.id}" 163 | # exclude_lines: ["^\\s+[\\-`('.|_]"] -------------------------------------------------------------------------------- /filebeat/metricbeat.yml: -------------------------------------------------------------------------------- 1 | metricbeat.modules: 2 | - module: system 3 | period: 10s 4 | metricsets: 5 | - cpu 6 | - load 7 | - memory 8 | - network 9 | - process 10 | - process_summary 11 | #- core 12 | #- diskio 13 | #- socket 14 | processes: ['.*'] 15 | process.include_top_n: 16 | by_cpu: 5 # include top 5 processes by CPU 17 | by_memory: 5 # include top 5 processes by memory 18 | 19 | - module: system 20 | period: 1m 21 | metricsets: 22 | - filesystem 23 | - fsstat 24 | processors: 25 | - drop_event.when.regexp: 26 | system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)' 27 | 28 | - module: system 29 | period: 15m 30 | metricsets: 31 | - uptime 32 | 33 | 34 | - module: apache 35 | metricsets: ["status"] 36 | enabled: true 37 | period: 1s 38 | hosts: ["http://127.0.0.1"] 39 | 40 | - module: ceph 41 | metricsets: ["cluster_disk", "cluster_health", "monitor_health", "pool_disk", "osd_tree"] 42 | period: 10s 43 | hosts: ["localhost:5000"] 44 | 45 | - module: docker 46 | metricsets: ["container", "cpu", "diskio", "healthcheck", "info", "memory", "network"] 47 | hosts: ["unix:///var/run/docker.sock"] 48 | period: 10s 49 | # To connect to Docker over TLS you must specify a client and CA certificate. 50 | #ssl: 51 | #certificate_authority: "/etc/pki/root/ca.pem" 52 | #certificate: "/etc/pki/client/cert.pem" 53 | #key: "/etc/pki/client/cert.key" 54 | 55 | - module: dropwizard 56 | metricsets: ["collector"] 57 | period: 10s 58 | hosts: ["localhost:8080"] 59 | metrics_path: /metrics/metrics 60 | namespace: example 61 | 62 | - module: elasticsearch 63 | metricsets: ["node", "node_stats"] 64 | period: 10s 65 | hosts: ["localhost:9200"] 66 | 67 | - module: etcd 68 | metricsets: ["leader", "self", "store"] 69 | period: 10s 70 | hosts: ["localhost:2379"] 71 | 72 | - module: golang 73 | metricsets: ["expvar","heap"] 74 | period: 10s 75 | hosts: ["localhost:6060"] 76 | heap.path: "/debug/vars" 77 | expvar: 78 | namespace: "example" 79 | path: "/debug/vars" 80 | 81 | - module: graphite 82 | metricsets: ["server"] 83 | enabled: true 84 | # protocol: "udp" 85 | # templates: 86 | # - filter: "test.*.bash.*" # This would match metrics like test.localhost.bash.stats 87 | # namespace: "test" 88 | # template: ".host.shell.metric*" # test.localhost.bash.stats would become metric=stats and tags host=localhost,shell=bash 89 | # delimiter: "_" 90 | 91 | - module: haproxy 92 | metricsets: ["info", "stat"] 93 | period: 10s 94 | hosts: ["tcp://127.0.0.1:14567"] 95 | 96 | 97 | - module: http 98 | metricsets: ["json"] 99 | period: 10s 100 | hosts: ["localhost:80"] 101 | namespace: "json_namespace" 102 | path: "/" 103 | #body: "" 104 | #method: "GET" 105 | #request.enabled: false 106 | #response.enabled: false 107 | 108 | - module: http 109 | metricsets: ["server"] 110 | host: "localhost" 111 | port: "8080" 112 | enabled: false 113 | # paths: 114 | # - path: "/foo" 115 | # namespace: "foo" 116 | # fields: # added to the the response in root. overwrites existing fields 117 | # key: "value" 118 | 119 | - module: kibana 120 | metricsets: ["status"] 121 | period: 10s 122 | hosts: ["localhost:5601"] 123 | 124 | 125 | # Node metrics, from kubelet: 126 | - module: kubernetes 127 | metricsets: 128 | - node 129 | - system 130 | - pod 131 | - container 132 | - volume 133 | period: 10s 134 | hosts: ["localhost:10255"] 135 | 136 | # State metrics from kube-state-metrics service: 137 | - module: kubernetes 138 | enabled: false 139 | metricsets: 140 | - state_node 141 | - state_deployment 142 | - state_replicaset 143 | - state_pod 144 | - state_container 145 | period: 10s 146 | hosts: ["kube-state-metrics:8080"] 147 | 148 | # Kubernetes events 149 | - module: kubernetes 150 | enabled: false 151 | metricsets: 152 | - event 153 | 154 | - module: logstash 155 | metricsets: ["node", "node_stats"] 156 | enabled: false 157 | period: 10s 158 | hosts: ["localhost"] 159 | 160 | - module: memcached 161 | metricsets: ["stats"] 162 | period: 10s 163 | hosts: ["localhost:11211"] 164 | 165 | - module: mongodb 166 | metricsets: ["dbstats", "status"] 167 | period: 10s 168 | 169 | # The hosts must be passed as MongoDB URLs in the format: 170 | # [mongodb://][user:pass@]host[:port]. 171 | # The username and password can also be set using the respective configuration 172 | # options. The credentials in the URL take precedence over the username and 173 | # password configuration options. 174 | hosts: ["localhost:27017"] 175 | 176 | # Username to use when connecting to MongoDB. Empty by default. 177 | #username: user 178 | 179 | # Password to use when connecting to MongoDB. Empty by default. 180 | #password: pass 181 | 182 | - module: mysql 183 | metricsets: ["status"] 184 | period: 10s 185 | 186 | # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/" 187 | # The username and password can either be set in the DSN or using the username 188 | # and password config options. Those specified in the DSN take precedence. 189 | hosts: ["root:secret@tcp(127.0.0.1:3306)/"] 190 | 191 | # Username of hosts. Empty by default. 192 | #username: root 193 | 194 | # Password of hosts. Empty by default. 195 | #password: secret 196 | 197 | # By setting raw to true, all raw fields from the status metricset will be added to the event. 198 | #raw: false 199 | 200 | - module: nginx 201 | metricsets: ["stubstatus"] 202 | period: 10s 203 | 204 | # Nginx hosts 205 | hosts: ["http://127.0.0.1"] 206 | 207 | # Path to server status. Default server-status 208 | #server_status_path: "server-status" 209 | 210 | - module: php_fpm 211 | metricsets: ["pool"] 212 | period: 10s 213 | status_path: "/status" 214 | hosts: ["localhost:8080"] 215 | 216 | 217 | - module: redis 218 | metricsets: ["info", "keyspace"] 219 | period: 10s 220 | 221 | # Redis hosts 222 | hosts: ["127.0.0.1:6379"] 223 | 224 | # Timeout after which time a metricset should return an error 225 | # Timeout is by default defined as period, as a fetch of a metricset 226 | # should never take longer then period, as otherwise calls can pile up. 227 | #timeout: 1s 228 | 229 | # Optional fields to be added to each event 230 | #fields: 231 | # datacenter: west 232 | 233 | # Network type to be used for redis connection. Default: tcp 234 | #network: tcp 235 | 236 | # Max number of concurrent connections. Default: 10 237 | #maxconn: 10 238 | 239 | # Filters can be used to reduce the number of fields sent. 240 | #processors: 241 | # - include_fields: 242 | # fields: ["beat", "metricset", "redis.info.stats"] 243 | 244 | # Redis AUTH password. Empty by default. 245 | #password: foobared 246 | 247 | 248 | - module: rabbitmq 249 | metricsets: ["node", "queue"] 250 | period: 10s 251 | hosts: ["localhost:15672"] 252 | 253 | username: guest 254 | password: guest 255 | 256 | - module: prometheus 257 | metricsets: ["stats"] 258 | period: 10s 259 | hosts: ["localhost:9090"] 260 | metrics_path: /metrics 261 | #namespace: example 262 | 263 | 264 | queue.mem: 265 | events: 8192 266 | flush.min_events: 512 267 | flush.timeout: 5s 268 | 269 | output.elasticsearch: 270 | hosts: ["http://es1.meizu.mz:9200","http://es2.meizu.mz:9200"] 271 | loadbalance: true 272 | worker: 16 273 | 274 | #output.kafka: 275 | # # initial brokers for reading cluster metadata 276 | # hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"] 277 | # # message topic selection + partitioning 278 | # topic: '%{[fields.log_topic]}' 279 | # partition.round_robin: 280 | # reachable_only: false 281 | # required_acks: 1 282 | # compression: snappy 283 | # max_message_bytes: 1000000 284 | 285 | setup.kibana: 286 | host: "kibana.meizu.mz:5601" 287 | enabled: true 288 | 289 | setup.template.name: "metricbeat" 290 | setup.template.fields: "fields.yml" 291 | setup.template.overwrite: false 292 | setup.template.settings: 293 | index.number_of_shards: 32 294 | index.number_of_replicas: 2 295 | 296 | logging.level: warning 297 | logging.to_files: true 298 | logging.to_syslog: false 299 | logging.files: 300 | path: /var/log/metricbeat 301 | name: metricbeat.log 302 | keepfiles: 7 303 | permissions: 0644 304 | 305 | 306 | xpack.monitoring: 307 | enabled: true 308 | elasticsearch: 309 | hosts: ["http://example.com:9200", "http://example2.com:9200"] 310 | username: elastic 311 | password: test 312 | -------------------------------------------------------------------------------- /flume/dir2kafka.conf: -------------------------------------------------------------------------------- 1 | ingest.sources = from_dir_src 2 | ingest.channels = to_kafka_channel 3 | ingest.sinks = to_kafka_sink 4 | 5 | ingest.sources.from_dir_src.type = spooldir 6 | ingest.sources.from_dir_src.channels = to_kafka_channel 7 | ingest.sources.from_dir_src.spoolDir = /data/logs/nginx 8 | ingest.sources.from_dir_src.fileHeader = true 9 | ingest.sources.from_dir_src.recursiveDirectorySearch = true 10 | ingest.sources.from_dir_src.basenameHeader = true 11 | ingest.sources.from_dir_src.basenameHeaderKey = basename 12 | ingest.sources.from_dir_src.parentDirectoryHeader = true 13 | ingest.sources.from_dir_src.parentDirectoryHeaderKey = parentDirectory 14 | ingest.sources.from_dir_src.relativeParentDirectoryHeader = true 15 | ingest.sources.from_dir_src.relativeParentDirectoryHeaderKey = relativeParentDirectory 16 | #ingest.sources.from_dir_src.deserializer = org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder 17 | 18 | #ingest.sources = from_dir_src 19 | #ingest.sources.from_dir_src.type = TAILDIR 20 | #ingest.sources.from_dir_src.positionFile = /var/log/flume/taildir_position.json 21 | #ingest.sources.from_dir_src.filegroups = f1 f2 22 | #ingest.sources.from_dir_src.filegroups.f1 = /data/logs/nginx/*_access.log 23 | #ingest.sources.from_dir_src.headers.f1.headerKey1 = nginx 24 | #ingest.sources.from_dir_src.headers.f1.headerKey2 = access 25 | #ingest.sources.from_dir_src.filegroups.f2 = /var/log/nginx/*_error.log 26 | #ingest.sources.from_dir_src.headers.f2.headerKey1 = nginx 27 | #ingest.sources.from_dir_src.headers.f2.headerKey2 = error 28 | #ingest.sources.from_dir_src.fileHeader = true 29 | 30 | 31 | #ingest.channels.to_kafka_channel.type = file 32 | #ingest.channels.to_kafka_channel.checkpointDir = /tmp/flume/to_avro_sink/checkpoint 33 | #ingest.channels.to_kafka_channel.dataDirs = /tmp/flume/to_avro_sink/data 34 | #ingest.channels.to_kafka_channel.transactionCapacity = 10000 35 | #ingest.channels.to_kafka_channel.capacity = 1000000 36 | 37 | #ingest.channels = c1 c2 c3 38 | #ingest.sources.from_kafka_src.selector.type = multiplexing 39 | #ingest.sources.from_kafka_src.selector.header = xxxName 40 | #ingest.sources.from_kafka_src.selector.mapping.value1 = c1 41 | #ingest.sources.from_kafka_src.selector.mapping.value2 = c1 c2 42 | #ingest.sources.from_kafka_src.selector.mapping.value3 = c3 43 | 44 | #ingest.channels = c1 c2 c3 45 | #ingest.sources.from_kafka_src.selector.type = replicating 46 | #ingest.sources.from_kafka_src.channels = c1 c2 c3 47 | #ingest.sources.from_kafka_src.selector.optional = c3 48 | 49 | ingest.channels.to_kafka_channel.type = memory 50 | ingest.channels.to_kafka_channel.capacity = 100000 51 | ingest.channels.to_kafka_channel.transactionCapacity = 100000 52 | 53 | 54 | #ingest.sinkgroups = g1 55 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 56 | #ingest.sinkgroups.g1.processor.type = load_balance 57 | #ingest.sinkgroups.g1.processor.backoff = true 58 | #ingest.sinkgroups.g1.processor.selector = random 59 | ##ingest.sinkgroups.g1.processor.selector = round_robin 60 | 61 | #ingest.sinkgroups = g1 62 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 63 | #ingest.sinkgroups.g1.processor.type = failover 64 | #ingest.sinkgroups.g1.processor.priority.k1 = 5 65 | #ingest.sinkgroups.g1.processor.priority.k2 = 10 66 | #ingest.sinkgroups.g1.processor.priority.k3 = 15 67 | #ingest.sinkgroups.g1.processor.maxpenalty = 10000 68 | 69 | 70 | ingest.sinks.to_kafka_sink.channel = to_kafka_channel 71 | ingest.sinks.to_kafka_sink.type = org.apache.flume.sink.kafka.KafkaSink 72 | ingest.sinks.to_kafka_sink.kafka.topic = mytopic 73 | #ingest.sinks.to_kafka_sink.kafka.topic = %{basename} 74 | ingest.sinks.to_kafka_sink.kafka.bootstrap.servers = kafkingest:6667,kafka2:6667,kafka3:6667 75 | ingest.sinks.to_kafka_sink.kafka.flumeBatchSize = 2000 76 | ingest.sinks.to_kafka_sink.kafka.producer.acks = 1 77 | ingest.sinks.to_kafka_sink.kafka.producer.linger.ms = 1 78 | ingest.sinks.to_kafka_sink.kafka.producer.compression.type = snappy 79 | ingest.sinks.to_kafka_sink.kafka.kafka.producer.type = async 80 | ingest.sinks.to_kafka_sink.kafka.kafka.encoding = UTF-8 81 | ingest.sinks.to_kafka_sink.kafka.kafka.partitioner.class = com.hisun.flume.sink.kafka.partition.RandomPartioner 82 | #ingest.sinks.to_kafka_sink.kafka.producer.security.protocol = SASL_PLAINTEXT 83 | #ingest.sinks.to_kafka_sink.kafka.producer.sasl.mechanism = GSSAPI 84 | #ingest.sinks.to_kafka_sink.kafka.producer.sasl.kerberos.service.name = kafka -------------------------------------------------------------------------------- /flume/kafka2es.conf: -------------------------------------------------------------------------------- 1 | ingest.sources = from_kafka_src 2 | ingest.channels = to_es_channel 3 | ingest.sinks = to_es_sink 4 | 5 | ingest.sources.from_kafka_src.type = org.apache.flume.source.kafka.KafkaSource 6 | ingest.sources.from_kafka_src.kafka.bootstrap.servers = kafka1:6667,kafka2:6667,kafka3:6667 7 | ingest.sources.from_kafka_src.kafka.topics.regex = ^topic[0-9]$ 8 | #ingest.sources.from_kafka_src.kafka.topics = mytopic 9 | ingest.sources.from_kafka_src.kafka.batchSize = 10000 10 | ingest.sources.from_kafka_src.channels = to_es_channel 11 | ingest.sources.from_kafka_src.kafka.consumer.group.id = flume-consumer 12 | ingest.sources.from_kafka_src.kafka.consumer.timeout.ms = 6000 13 | ingest.sources.from_kafka_src.kafka.zookeeper.session.timeout.ms=6000 14 | ingest.sources.from_kafka_src.kafka.rebalance.max.retries=5 15 | ingest.sources.from_kafka_src.kafka.rebalance.backoff.ms=1500 16 | #ingest.sources.from_kafka_src.kafka.consumer.security.protocol = SASL_PLAINTEXT 17 | #ingest.sources.from_kafka_src.kafka.consumer.sasl.mechanism = GSSAPI 18 | #ingest.sources.from_kafka_src.kafka.consumer.sasl.kerberos.service.name = kafka 19 | 20 | 21 | #ingest.channels = c1 c2 c3 22 | #ingest.sources.from_kafka_src.selector.type = multiplexing 23 | #ingest.sources.from_kafka_src.selector.header = xxxName 24 | #ingest.sources.from_kafka_src.selector.mapping.value1 = c1 25 | #ingest.sources.from_kafka_src.selector.mapping.value2 = c1 c2 26 | #ingest.sources.from_kafka_src.selector.mapping.value3 = c3 27 | 28 | #ingest.channels = c1 c2 c3 29 | #ingest.sources.from_kafka_src.selector.type = replicating 30 | #ingest.sources.from_kafka_src.channels = c1 c2 c3 31 | #ingest.sources.from_kafka_src.selector.optional = c3 32 | 33 | #ingest.channels.to_es_channel.type = file 34 | #ingest.channels.to_es_channel.checkpointDir = /tmp/flume/to_es_sink/checkpoint 35 | #ingest.channels.to_es_channel.dataDirs = /tmp/flume/to_es_sink/data 36 | #ingest.channels.to_es_channel.transactionCapacity = 10000 37 | #ingest.channels.to_es_channel.capacity = 1000000 38 | 39 | ingest.channels.to_es_channel.type = memory 40 | ingest.channels.to_es_channel.capacity = 100000 41 | ingest.channels.to_es_channel.transactionCapacity = 100000 42 | 43 | 44 | #ingest.sinkgroups = g1 45 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 46 | #ingest.sinkgroups.g1.processor.type = load_balance 47 | #ingest.sinkgroups.g1.processor.backoff = true 48 | #ingest.sinkgroups.g1.processor.selector = random 49 | ##ingest.sinkgroups.g1.processor.selector = round_robin 50 | 51 | #ingest.sinkgroups = g1 52 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 53 | #ingest.sinkgroups.g1.processor.type = failover 54 | #ingest.sinkgroups.g1.processor.priority.k1 = 5 55 | #ingest.sinkgroups.g1.processor.priority.k2 = 10 56 | #ingest.sinkgroups.g1.processor.priority.k3 = 15 57 | #ingest.sinkgroups.g1.processor.maxpenalty = 10000 58 | 59 | ingest.sinks.to_es_sink.type = elasticsearch 60 | ingest.sinks.to_es_sink.hostNames = es1:9200,es2:9300 61 | ingest.sinks.to_es_sink.indexName = foo_index 62 | ingest.sinks.to_es_sink.indexType = bar_type 63 | ingest.sinks.to_es_sink.clusterName = foobar_cluster 64 | ingest.sinks.to_es_sink.batchSize = 500 65 | ingest.sinks.to_es_sink.ttl = 5d 66 | ingest.sinks.to_es_sink.serializer = org.apache.flume.sink.elasticsearch.ElasticSearchDynamicSerializer 67 | ingest.sinks.to_es_sink.channel = to_es_channel -------------------------------------------------------------------------------- /flume/kafka2hdfs.conf: -------------------------------------------------------------------------------- 1 | ingest.sources = from_kafka_src 2 | ingest.channels = to_avro_channel 3 | ingest.sinks = to_avro_sink 4 | 5 | ingest.sources.from_kafka_src.type = org.apache.flume.source.kafka.KafkaSource 6 | ingest.sources.from_kafka_src.kafka.bootstrap.servers = kafka1:6667,kafka2:6667,kafka3:6667 7 | ingest.sources.from_kafka_src.kafka.topics.regex = ^topic[0-9]$ 8 | #ingest.sources.from_kafka_src.kafka.topics = mytopic 9 | ingest.sources.from_kafka_src.kafka.batchSize = 10000 10 | ingest.sources.from_kafka_src.channels = to_avro_channel 11 | ingest.sources.from_kafka_src.kafka.consumer.group.id = flume-consumer 12 | ingest.sources.from_kafka_src.kafka.consumer.timeout.ms = 6000 13 | ingest.sources.from_kafka_src.kafka.zookeeper.session.timeout.ms=6000 14 | ingest.sources.from_kafka_src.kafka.rebalance.max.retries=5 15 | ingest.sources.from_kafka_src.kafka.rebalance.backoff.ms=1500 16 | #ingest.sources.from_kafka_src.kafka.consumer.security.protocol = SASL_PLAINTEXT 17 | #ingest.sources.from_kafka_src.kafka.consumer.sasl.mechanism = GSSAPI 18 | #ingest.sources.from_kafka_src.kafka.consumer.sasl.kerberos.service.name = kafka 19 | 20 | #ingest.channels = c1 c2 c3 21 | #ingest.sources.from_kafka_src.selector.type = multiplexing 22 | #ingest.sources.from_kafka_src.selector.header = xxxName 23 | #ingest.sources.from_kafka_src.selector.mapping.value1 = c1 24 | #ingest.sources.from_kafka_src.selector.mapping.value2 = c1 c2 25 | #ingest.sources.from_kafka_src.selector.mapping.value3 = c3 26 | 27 | #ingest.channels = c1 c2 c3 28 | #ingest.sources.from_kafka_src.selector.type = replicating 29 | #ingest.sources.from_kafka_src.channels = c1 c2 c3 30 | #ingest.sources.from_kafka_src.selector.optional = c3 31 | 32 | #ingest.channels.to_avro_channel.type = file 33 | #ingest.channels.to_avro_channel.checkpointDir = /tmp/flume/to_avro_sink/checkpoint 34 | #ingest.channels.to_avro_channel.dataDirs = /tmp/flume/to_avro_sink/data 35 | #ingest.channels.to_avro_channel.transactionCapacity = 10000 36 | #ingest.channels.to_avro_channel.capacity = 1000000 37 | 38 | ingest.channels.to_avro_channel.type = memory 39 | ingest.channels.to_avro_channel.capacity = 100000 40 | ingest.channels.to_avro_channel.transactionCapacity = 100000 41 | 42 | 43 | #ingest.sinkgroups = g1 44 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 45 | #ingest.sinkgroups.g1.processor.type = load_balance 46 | #ingest.sinkgroups.g1.processor.backoff = true 47 | #ingest.sinkgroups.g1.processor.selector = random 48 | ##ingest.sinkgroups.g1.processor.selector = round_robin 49 | 50 | #ingest.sinkgroups = g1 51 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 52 | #ingest.sinkgroups.g1.processor.type = failover 53 | #ingest.sinkgroups.g1.processor.priority.k1 = 5 54 | #ingest.sinkgroups.g1.processor.priority.k2 = 10 55 | #ingest.sinkgroups.g1.processor.priority.k3 = 15 56 | #ingest.sinkgroups.g1.processor.maxpenalty = 10000 57 | 58 | ingest.sinks.to_avro_sink.type = hdfs 59 | ingest.sinks.to_avro_sink.hdfs.path = /user/flume/task/avro/%Y/%n/%e/%k 60 | ingest.sinks.to_avro_sink.hdfs.filePrefix = flume_task_avro 61 | ingest.sinks.to_avro_sink.hdfs.fileSuffix = .avro 62 | ingest.sinks.to_avro_sink.hdfs.rollCount = 100 63 | ingest.sinks.to_avro_sink.hdfs.rollInterval = 0 64 | ingest.sinks.to_avro_sink.hdfs.rollSize = 0 65 | ingest.sinks.to_avro_sink.hdfs.useLocalTimeStamp = true 66 | ingest.sinks.to_avro_sink.hdfs.timeZone = UTC 67 | ingest.sinks.to_avro_sink.hdfs.writeFormat = Text 68 | ingest.sinks.to_avro_sink.hdfs.fileType = DataStream 69 | ingest.sinks.to_avro_sink.serializer = avro_event 70 | ingest.sinks.to_avro_sink.channel = to_avro_channel -------------------------------------------------------------------------------- /flume/kafka2hive.conf: -------------------------------------------------------------------------------- 1 | ingest.sources = from_kafka_src 2 | ingest.channels = to_hive_channel 3 | ingest.sinks = to_hive_sink 4 | 5 | ingest.sources.from_kafka_src.type = org.apache.flume.source.kafka.KafkaSource 6 | ingest.sources.from_kafka_src.kafka.bootstrap.servers = kafka1:6667,kafka2:6667,kafka3:6667 7 | ingest.sources.from_kafka_src.kafka.topics.regex = ^topic[0-9]$ 8 | #ingest.sources.from_kafka_src.kafka.topics = mytopic 9 | ingest.sources.from_kafka_src.channels = to_avro_channel 10 | ingest.sources.from_kafka_src.kafka.consumer.group.id = flume-consumer 11 | #ingest.sources.from_kafka_src.kafka.consumer.security.protocol = SASL_PLAINTEXT 12 | #ingest.sources.from_kafka_src.kafka.consumer.sasl.mechanism = GSSAPI 13 | #ingest.sources.from_kafka_src.kafka.consumer.sasl.kerberos.service.name = kafka 14 | 15 | #ingest.sources.from_avro_src.type = avro 16 | #ingest.sources.from_avro_src.channels = to_avro_channel 17 | #ingest.sources.from_avro_src.bind = 0.0.0.0 18 | #ingest.sources.from_avro_src.port = 4141 19 | 20 | 21 | #ingest.channels = c1 c2 c3 22 | #ingest.sources.from_kafka_src.selector.type = multiplexing 23 | #ingest.sources.from_kafka_src.selector.header = xxxName 24 | #ingest.sources.from_kafka_src.selector.mapping.value1 = c1 25 | #ingest.sources.from_kafka_src.selector.mapping.value2 = c1 c2 26 | #ingest.sources.from_kafka_src.selector.mapping.value3 = c3 27 | 28 | #ingest.channels = c1 c2 c3 29 | #ingest.sources.from_kafka_src.selector.type = replicating 30 | #ingest.sources.from_kafka_src.channels = c1 c2 c3 31 | #ingest.sources.from_kafka_src.selector.optional = c3 32 | 33 | #ingest.channels.to_avro_channel.type = file 34 | #ingest.channels.to_avro_channel.checkpointDir = /tmp/flume/to_avro_sink/checkpoint 35 | #ingest.channels.to_avro_channel.dataDirs = /tmp/flume/to_avro_sink/data 36 | #ingest.channels.to_avro_channel.transactionCapacity = 10000 37 | #ingest.channels.to_avro_channel.capacity = 1000000 38 | 39 | ingest.channels.to_avro_channel.type = memory 40 | ingest.channels.to_avro_channel.capacity = 100000 41 | ingest.channels.to_avro_channel.transactionCapacity = 100000 42 | 43 | 44 | #ingest.sinkgroups = g1 45 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 46 | #ingest.sinkgroups.g1.processor.type = load_balance 47 | #ingest.sinkgroups.g1.processor.backoff = true 48 | #ingest.sinkgroups.g1.processor.selector = random 49 | ##ingest.sinkgroups.g1.processor.selector = round_robin 50 | 51 | #ingest.sinkgroups = g1 52 | #ingest.sinkgroups.g1.sinks = k1 k2 k3 53 | #ingest.sinkgroups.g1.processor.type = failover 54 | #ingest.sinkgroups.g1.processor.priority.k1 = 5 55 | #ingest.sinkgroups.g1.processor.priority.k2 = 10 56 | #ingest.sinkgroups.g1.processor.priority.k3 = 15 57 | #ingest.sinkgroups.g1.processor.maxpenalty = 10000 58 | 59 | ingest.sinks.to_hive_sink.type = hive 60 | ingest.sinks.to_hive_sink.hive.metastore = thrift://hive.meizu.mz:9083 61 | ingest.sinks.to_hive_sink.hive.database = default 62 | ingest.sinks.to_hive_sink.hive.table = test 63 | ingest.sinks.to_hive_sink.hive.partition = asia,%{country},%y-%m-%d-%H-%M 64 | ingest.sinks.to_hive_sink.batchSize = 10000 65 | ingest.sinks.to_hive_sink.timeZone = UTC 66 | ingest.sinks.to_hive_sink.useLocalTimeStamp = false 67 | ingest.sinks.to_hive_sink.round = true 68 | ingest.sinks.to_hive_sink.roundUnit = second 69 | ingest.sinks.to_hive_sink.roundValue=1 70 | ingest.sinks.to_hive_sink.serializer = DELIMITED 71 | ingest.sinks.to_hive_sink.serializer.delimiter = , 72 | ingest.sinks.to_hive_sink.serializer.serdeSeparator = '\t' 73 | ingest.sinks.to_hive_sink.serializer.fieldnames = userid,notify,targetid,timestamp 74 | ingest.sinks.to_hive_sink.channel = to_hive_channel -------------------------------------------------------------------------------- /img/deploy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaomatech/log/47a6d4e914909b0b74876aa1921f54bd619fb4d3/img/deploy2.png -------------------------------------------------------------------------------- /img/deploy3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaomatech/log/47a6d4e914909b0b74876aa1921f54bd619fb4d3/img/deploy3.png -------------------------------------------------------------------------------- /img/deploy4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaomatech/log/47a6d4e914909b0b74876aa1921f54bd619fb4d3/img/deploy4.png -------------------------------------------------------------------------------- /install_apm_server.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=6.3.2 4 | 5 | rpm -ivh https://artifacts.elastic.co/downloads/apm-server/apm-server-$version-x86_64.rpm 6 | 7 | echo -ne ''' 8 | apm-server: 9 | host: "localhost:8200" 10 | frontend: 11 | enabled: true 12 | 13 | setup.template.enabled: true 14 | setup.template.settings: 15 | index: 16 | number_of_shards: 16 17 | codec: best_compression 18 | 19 | setup.kibana: 20 | host: "localhost:5601" 21 | 22 | output.elasticsearch: 23 | hosts: ["ElasticsearchAddress:9200"] 24 | worker: 8 25 | bulk_max_size: 5120 26 | username: "elastic" 27 | password: "elastic" 28 | indices: 29 | - index: "apm-%{[beat.version]}-sourcemap" 30 | when.contains: 31 | processor.event: "sourcemap" 32 | 33 | - index: "apm-%{[beat.version]}-error-%{+yyyy.MM.dd}" 34 | when.contains: 35 | processor.event: "error" 36 | 37 | - index: "apm-%{[beat.version]}-transaction-%{+yyyy.MM.dd}" 38 | when.contains: 39 | processor.event: "transaction" 40 | 41 | - index: "apm-%{[beat.version]}-span-%{+yyyy.MM.dd}" 42 | when.contains: 43 | processor.event: "span" 44 | 45 | path.data: /data/apm-server 46 | path.logs: /data/logs/apm-server 47 | 48 | setup.dashboards.enabled: true 49 | 50 | http.enabled: true 51 | '''>/etc/apm-server/apm-server.yml 52 | 53 | systemctl enable apm-server 54 | systemctl start apm-server 55 | -------------------------------------------------------------------------------- /install_elasticsearch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=6.2.3 4 | 5 | rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$version.rpm 6 | /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-geoip/ingest-geoip-$version.zip 7 | /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-user-agent/ingest-user-agent-$version.zip 8 | /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-$version.zip 9 | /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-smartcn 10 | /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v$version/elasticsearch-analysis-pinyin-$version.zip 11 | 12 | #https://github.com/o19s/elasticsearch-learning-to-rank 13 | 14 | mkdir -p /etc/sysctl.d 15 | echo "vm.max_map_count=262144" > /etc/sysctl.d/11-es.conf 16 | echo -ne '* soft nproc 8192 \nelasticsearch - nofile 65536 \nelasticsearch soft memlock unlimited \nelasticsearch hard memlock unlimited' > /etc/security/limits.d/es.conf 17 | 18 | echo -ne ''' 19 | ES_HOME=/usr/share/elasticsearch/ 20 | 21 | ES_HEAP_SIZE=128m 22 | MAX_OPEN_FILES=65535 23 | MAX_MAP_COUNT=262144 24 | LOG_DIR=/var/log/elasticsearch 25 | WORK_DIR=/tmp/elasticsearch/ 26 | CONF_DIR=/etc/elasticsearch/ 27 | ES_PATH_CONF=/etc/elasticsearch/ 28 | RESTART_ON_UPGRADE=true 29 | PID_DIR=/var/run/elasticsearch 30 | JAVA_HOME=/usr/java/default 31 | ES_STARTUP_SLEEP_TIME=5 32 | ES_JAVA_OPTS="-Des.index.max_number_of_shards=128 -verbose:gc -Xloggc:/var/log/elasticsearch/elasticsearch_gc.log -XX:-CMSConcurrentMTEnabled -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:ErrorFile=/var/log/elasticsearch/elasticsearch_err.log -XX:ParallelGCThreads=8" 33 | MAX_LOCKED_MEMORY=unlimited 34 | MAX_MAP_COUNT=262144 35 | '''> /etc/sysconfig/elasticsearch 36 | 37 | memory=`free -g | awk 'NR==2{printf $2}'`g 38 | 39 | 40 | echo -ne ''' 41 | -Xms'''$memory''' 42 | -Xmx'''$memory''' 43 | -XX:+UseConcMarkSweepGC 44 | -XX:CMSInitiatingOccupancyFraction=75 45 | -XX:+UseCMSInitiatingOccupancyOnly 46 | -XX:+AlwaysPreTouch 47 | -server 48 | -Xss1m 49 | -Djava.awt.headless=true 50 | -Dfile.encoding=UTF-8 51 | -Djna.nosys=true 52 | -Djdk.io.permissionsUseCanonicalPath=true 53 | -XX:-OmitStackTraceInFastThrow 54 | -Dio.netty.allocator.type=unpooled 55 | -Dio.netty.noUnsafe=true 56 | -Dio.netty.noKeySetOptimization=true 57 | -Dio.netty.recycler.maxCapacityPerThread=0 58 | -Dlog4j.shutdownHookEnabled=false 59 | -Dlog4j2.disable.jmx=true 60 | -XX:+HeapDumpOnOutOfMemoryError 61 | -XX:+PrintGCDetails 62 | -XX:+PrintGCTimeStamps 63 | -XX:+PrintGCDateStamps 64 | -XX:+PrintClassHistogram 65 | -XX:+PrintTenuringDistribution 66 | -XX:+PrintGCApplicationStoppedTime 67 | -XX:+UseGCLogFileRotation 68 | -XX:NumberOfGCLogFiles=32 69 | -XX:GCLogFileSize=128M 70 | '''> /etc/elasticsearch/jvm.options 71 | 72 | SERVER_IP=`/sbin/ifconfig | grep 'inet'| grep -v '127.0.0.1' |head -n1 |tr -s ' '|cut -d ' ' -f3 | cut -d: -f2` 73 | hostname=`hostname -f` 74 | 75 | echo -ne ''' 76 | cluster.name: logcenter 77 | node.name: '''$hostname''' 78 | network.host: '''$SERVER_IP''' 79 | discovery.zen.ping.unicast.hosts: ["10.19.0.97","10.19.0.98","10.19.0.99","10.19.0.100"] 80 | discovery.zen.minimum_master_nodes: 2 81 | path: 82 | data: 83 | - /data01/es 84 | - /data02/es 85 | - /data03/es 86 | - /data04/es 87 | - /data05/es 88 | - /data06/es 89 | - /data07/es 90 | - /data08/es 91 | - /data09/es 92 | - /data10/es 93 | - /data11/es 94 | - /data12/es 95 | logs: /var/log/elasticsearch 96 | 97 | bootstrap.system_call_filter: false 98 | bootstrap.memory_lock: true 99 | http.port: 9200 100 | 101 | action.destructive_requires_name: true 102 | 103 | indices.requests.cache.size: 2% 104 | indices.breaker.fielddata.limit: 10% 105 | indices.fielddata.cache.size: 20% 106 | 107 | thread_pool.search.queue_size: 5000 108 | thread_pool.bulk.queue_size: 6000 109 | 110 | xpack.security.enabled: false 111 | 112 | gateway.recover_after_time: 5m 113 | 114 | cluster.routing.allocation.same_shard.host: true 115 | 116 | indices.recovery.max_bytes_per_sec: 200mb 117 | indices.memory.index_buffer_size: 20% 118 | 119 | node.attr.role: hot 120 | 121 | #gateway.recover_after_data_nodes: 7 122 | #gateway.recover_after_master_nodes: 2 123 | ''' > /etc/elasticsearch/elasticsearch.yml 124 | 125 | 126 | #master node: 127 | #node.master: true 128 | #node.data: false 129 | #node.ingest: false 130 | #node.ml: false 131 | #xpack.ml.enabled: true 132 | 133 | #data node: 134 | #node.master: false 135 | #node.data: true 136 | #node.ingest: false 137 | #node.ml: false 138 | 139 | #ingest node: 140 | #node.master: false 141 | #node.data: false 142 | #node.ingest: true 143 | #search.remote.connect: false 144 | #node.ml: false 145 | 146 | #coordinating node 147 | #node.master: false 148 | #node.data: false 149 | #node.ingest: false 150 | #search.remote.connect: false 151 | #node.ml: false 152 | 153 | #machine learning node 154 | #node.master: false 155 | #node.data: false 156 | #node.ingest: false 157 | #search.remote.connect: false 158 | #node.ml: true 159 | #xpack.ml.enabled: true 160 | 161 | sudo swapoff -a 162 | 163 | systemctl enable elasticsearch 164 | systemctl start elasticsearch 165 | 166 | /usr/share/elasticsearch/bin/x-pack/setup-passwords auto -u 'http://'$SERVER_IP':9200' 167 | 168 | curl -XPUT -u elastic:test -H 'Content-Type: application/json' 'http://'$SERVER_IP':9200/_xpack/license?acknowledge=true' -d @license.json 169 | 170 | 171 | curl -XPOST 'http://'$SERVER_IP':9200/_xpack/security/user/remote_monitor?pretty' -H 'Content-Type: application/json' -d' 172 | { 173 | "password" : "test", 174 | "roles" : [ "remote_monitoring_agent"], 175 | "full_name" : "Internal Agent For Remote Monitoring" 176 | } 177 | ' 178 | 179 | 180 | curl -XPUT 'http://'$SERVER_IP':9200/_template/index_template' -H 'Content-Type: application/json' -d '{ 181 | "index_patterns" : ["*"], 182 | "order": 0, 183 | "template": "*", 184 | "settings" : { 185 | "index.number_of_replicas" : 1, 186 | "index.number_of_shards" : 64, 187 | "index.routing_partition_size" : 4, 188 | "index.merge.policy": { 189 | "segments_per_tier": 50, 190 | "max_merge_at_once": 50, 191 | "max_merged_segment": "1gb" 192 | }, 193 | "persistent" : { 194 | "cluster.routing.allocation.disk.watermark.high" : "98%", 195 | "indices.recovery.max_bytes_per_sec": "200mb", 196 | "indices.store.throttle.max_bytes_per_sec" : "100mb" 197 | }, 198 | "index.translog.flush_threshold_size":"1gb", 199 | "index.translog.sync_interval":"30s", 200 | "index.translog.durability": "async", 201 | "index.refresh_interval": "30s", 202 | "index.merge.scheduler.max_thread_count": 1, 203 | "indices.memory.index_buffer_size":"20%", 204 | "index.queries.cache.everything": true, 205 | "index.indexing.slowlog.level" : "info", 206 | "index.indexing.slowlog.source" : "1000", 207 | "index.indexing.slowlog.threshold.index.debug" : "2s", 208 | "index.indexing.slowlog.threshold.index.info" : "5s", 209 | "index.indexing.slowlog.threshold.index.trace" : "500ms", 210 | "index.indexing.slowlog.threshold.index.warn" : "10s", 211 | "index.search.slowlog.level" : "info", 212 | "index.search.slowlog.threshold.fetch.debug" : "500ms", 213 | "index.search.slowlog.threshold.fetch.info" : "800ms", 214 | "index.search.slowlog.threshold.fetch.trace" : "200ms", 215 | "index.search.slowlog.threshold.fetch.warn" : "1s", 216 | "index.search.slowlog.threshold.query.debug" : "2s", 217 | "index.search.slowlog.threshold.query.info" : "5s", 218 | "index.search.slowlog.threshold.query.trace" : "500ms", 219 | "index.search.slowlog.threshold.query.warn" : "10s" 220 | }, 221 | "mappings": { 222 | "_default_": { 223 | "dynamic_templates": [ 224 | { 225 | "strings_as_keywords": { 226 | "mapping": { 227 | "index": "not_analyzed" 228 | }, 229 | "match_mapping_type": "string" 230 | } 231 | } 232 | ] 233 | } 234 | }, 235 | "aliases": {} 236 | }' 237 | -------------------------------------------------------------------------------- /install_filebeat.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=6.2.3 4 | 5 | rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-$version-x86_64.rpm 6 | rpm -ivh https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-$version-x86_64.rpm 7 | 8 | #filebeat模块的配置在/etc/filebeat/modules.d/ 9 | #https://www.elastic.co/guide/en/beats/filebeat/current/exported-fields.html 10 | #https://www.elastic.co/guide/en/beats/filebeat/current/defining-processors.html 11 | #参考 /etc/filebeat/filebeat.reference.yml 12 | cp filebeat/filebeat.yaml /etc/filebeat/filebeat.yml 13 | 14 | #metricbeat模块的配置在 /etc/metricbeat/modules.d 15 | #https://www.elastic.co/guide/en/beats/metricbeat/current/exported-fields.html 16 | #https://www.elastic.co/guide/en/beats/metricbeat/current/configuring-howto-metricbeat.html 17 | #参考 /etc/metricbeat/metricbeat.reference.yml 18 | cp filebeat/metricbeat.yml /etc/metricbeat/metricbeat.yml 19 | 20 | filebeat setup --dashboards 21 | filebeat setup --machine-learning 22 | filebeat setup --template 23 | 24 | metricbeat setup --dashboards 25 | metricbeat setup --machine-learning 26 | metricbeat setup --template 27 | 28 | #匹配规则在 ll /usr/share/filebeat/module/*/*/ingest/* 29 | #可根据特有日志格式修改对应的json 30 | 31 | systemctl enable filebeat 32 | systemctl start filebeat 33 | 34 | systemctl enable metricbeat 35 | systemctl start metricbeat -------------------------------------------------------------------------------- /install_kibana.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=6.2.3 4 | 5 | yum install -y fontconfig freetype 6 | 7 | rpm -ivh https://artifacts.elastic.co/downloads/kibana/kibana-$version-x86_64.rpm 8 | /usr/share/kibana/bin/kibana-plugin install https://github.com/elasticfence/kaae/releases/download/snapshot/kaae-latest.tar.gz 9 | /usr/share/kibana/bin/kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/0.1.6/logtrail-5.x-0.1.6.zip 10 | /usr/share/kibana/bin/kibana-plugin install https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-$version.zip 11 | 12 | 13 | echo -ne ''' 14 | xpack.security.enabled: false 15 | elasticsearch.username: kibana 16 | elasticsearch.password: test 17 | '''>/etc/kibana/kibana.yaml 18 | 19 | systemctl enable kibana 20 | systemctl start kibana -------------------------------------------------------------------------------- /install_logstash.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=6.2.3 4 | 5 | rpm -ivh https://artifacts.elastic.co/downloads/logstash/logstash-$version.rpm 6 | /usr/share/logstash/bin/logstash-plugin install logstash-output-opentsdb 7 | /usr/share/logstash/bin/logstash-plugin install --no-verify https://raw.githubusercontent.com/xiaomatech/logstash-filter-ipip/master/logstash-filter-ipip-2.0.0.gem 8 | /usr/share/logstash/bin/logstash-plugin install --no-verify https://raw.githubusercontent.com/xiaomatech/logstash-filter-referer/master/referer-parser-0.3.0.gem 9 | /usr/share/logstash/bin/logstash-plugin install --no-verify https://raw.githubusercontent.com/xiaomatech/logstash-filter-referer/master/logstash-filter-referer-1.0.0.gem 10 | /usr/share/logstash/bin/logstash-plugin install --no-verify https://raw.githubusercontent.com/xiaomatech/logstash-filter-redis/master/logstash-filter-redis-1.0.0.gem 11 | 12 | /usr/share/logstash/bin/logstash-plugin install https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-$version.zip 13 | 14 | sudo yum install -y GeoIP-data 15 | mkdir -p /data/logs/logstash 16 | 17 | mkdir -p /etc/logstash/patterns 18 | /bin/cp -rf /usr/share/logstash/vendor/bundle/jruby/*/gems/logstash-patterns-core-*/patterns/* /etc/logstash/patterns/ 19 | 20 | echo -ne "LOGSTASH_HOME=/usr/share/logstash\nJRUBY_HOME=\$LOGSTASH_HOME/vendor/jruby">/etc/profile.d/logstash 21 | source /etc/profile.d/logstash 22 | 23 | /usr/share/logstash/vendor/jruby/bin/jruby -S /usr/share/logstash/vendor/jruby/bin/gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/ 24 | 25 | nproc=$[`nproc`*2 -1] 26 | cp -r ./logstash/* /etc/logstash/ 27 | 28 | echo -ne ''' 29 | JAVACMD=/usr/bin/java 30 | LS_HOME=/usr/share/logstash 31 | LS_SETTINGS_DIR=/etc/logstash 32 | LS_OPTS="--path.settings ${LS_SETTINGS_DIR}" 33 | LS_JAVA_OPTS="" 34 | LS_USER=logstash 35 | LS_GROUP=logstash 36 | LS_PIDFILE=/var/run/logstash.pid 37 | LS_GC_LOG_FILE=/var/log/logstash/gc.log 38 | LS_OPEN_FILES=65536 39 | LS_NICE=19 40 | SERVICE_NAME="logstash" 41 | SERVICE_DESCRIPTION="logstash" 42 | LS_HEAP_SIZE=8g 43 | ''' > /etc/logstash/startup.options 44 | 45 | echo -ne ''' 46 | path.data: /var/lib/logstash 47 | dead_letter_queue.enable: true 48 | path.dead_letter_queue: /var/lib/logstash/dead_letter_queue 49 | path.config: /etc/logstash/conf.d/*.conf 50 | path.logs: /var/log/logstash 51 | pipeline.workers: '''$nproc''' 52 | pipeline.output.workers: '''$nproc''' 53 | pipeline.batch.size: 2000 54 | pipeline.batch.delay: 3 55 | queue.page_capacity: 256mb 56 | queue.max_bytes: 8gb 57 | queue.drain: true 58 | queue.type: memory 59 | slowlog.threshold.warn: 2s 60 | slowlog.threshold.info: 1s 61 | slowlog.threshold.debug: 500ms, 62 | slowlog.threshold.trace: 100ms 63 | config.reload.automatic: true 64 | 65 | xpack.security.enabled: false 66 | xpack.monitoring.elasticsearch.url: http://elasticsearch:9200 67 | xpack.management.enabled: true 68 | xpack.management.elasticsearch.url: http://elasticsearch:9200 69 | xpack.management.logstash.poll_interval: 5s 70 | xpack.management.pipeline.id: ["nginx_log", "java_log", "mysql_log"] 71 | 72 | '''> /etc/logstash/logstash.yml 73 | 74 | systemctl enable logstash 75 | systemctl start logstash 76 | -------------------------------------------------------------------------------- /install_rsyslog.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | yum install -y rsyslog-kafka rsyslog-mmjsonparse rsyslog-mmnormalize rsyslog-mmfields rsyslog-mmanon 4 | 5 | mkdir -p /data/rsyslog 6 | /bin/cp ./rsyslog.conf /etc/ 7 | /bin/cp -rf ./rsyslog.d /etc/ 8 | 9 | systemctl start rsyslog 10 | -------------------------------------------------------------------------------- /license.json: -------------------------------------------------------------------------------- 1 | { 2 | "license": { 3 | "uid": "b9e226d1-ae19-4d05-a238-f7a9e9177c27", 4 | "type": "platinum", 5 | "issue_date_in_millis": 1521676800000, 6 | "expiry_date_in_millis": 4102416000000, 7 | "max_nodes": 100000, 8 | "issued_to": "xiaomatech", 9 | "issuer": "Web Form", 10 | "signature": "AAAAAwAAAA3nnDuu5y7pFV6VEgwbAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQCeNSwESKwTxifEoHKocUVeJGLgeV+w9R1ISSVMprGzUFCNmgnMEbWh9mKJjhdIrV5CnbHlIU0exYwfMDdg2gyO+IKqDEycgAFnRIyPwbSjqjAhYN/V1IdELwdiUlLKjIy+FQ5c8qmOHbKHltiIb8VpggnCjhm74+JVvLGvHcaaM5Chg10tLjd51DUt/QXfGYRhnTfBZWw7m6ZlE0VreXrAb1al3H4zr5WVK5B82rrqqEj+zhzZqdF1F4cmMqt1Z5/hbzQGSOUc/g5r8KfVxJIeZamE8fqrN3IypZtjOWlkYfd6DHBgdm0EJPlela9jR1XfP9hmk1a9NlZ4teuc27gb", 11 | "start_date_in_millis": 1521676800000 12 | } 13 | } -------------------------------------------------------------------------------- /logrotate.d/mysql: -------------------------------------------------------------------------------- 1 | /data/logs/mysql/mysqld.log { 2 | # create 600 mysql mysql 3 | notifempty 4 | daily 5 | rotate 5 6 | missingok 7 | compress 8 | postrotate 9 | # just if mysqld is really running 10 | if test -x /usr/bin/mysqladmin && \ 11 | /usr/bin/mysqladmin ping &>/dev/null 12 | then 13 | /usr/bin/mysqladmin flush-logs 14 | fi 15 | endscript 16 | } -------------------------------------------------------------------------------- /logrotate.d/nginx: -------------------------------------------------------------------------------- 1 | /data/logs/nginx/*.log { 2 | daily 3 | missingok 4 | rotate 52 5 | compress 6 | delaycompress 7 | notifempty 8 | sharedscripts 9 | postrotate 10 | [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 11 | endscript 12 | } -------------------------------------------------------------------------------- /logrotate.d/rabbitmq: -------------------------------------------------------------------------------- 1 | /data/logs/rabbitmq/*.log { 2 | weekly 3 | missingok 4 | rotate 20 5 | compress 6 | delaycompress 7 | notifempty 8 | sharedscripts 9 | postrotate 10 | /usr/sbin/rabbitmqctl -q rotate_logs 11 | endscript 12 | } 13 | -------------------------------------------------------------------------------- /logrotate.d/redis: -------------------------------------------------------------------------------- 1 | /data/logs/redis/*.log { 2 | weekly 3 | rotate 10 4 | copytruncate 5 | delaycompress 6 | compress 7 | notifempty 8 | missingok 9 | } 10 | -------------------------------------------------------------------------------- /logstash/conf.d/filter-ceph.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "ceph" { 3 | grok { 4 | match => [ "message", "%{TIMESTAMP_ISO8601} mon%{BASE10NUM:mon_number} %{IPORHOST:host}:%{POSINT:port}/0 %{BASE10NUM}%{GREEDYDATA}client%{BASE10NUM:clientnum}%{GREEDYDATA}: %{QUOTEDSTRING:command}%{GREEDYDATA}root=%{WORD:device}%{GREEDYDATA}rack=%{HOSTNAME:rack}%{GREEDYDATA}host=%{HOSTNAME}%{GREEDYDATA}%{NUMBER:id},%{GREEDYDATA}%{NUMBER:weight}"] 5 | overwrite => [ "message" ] 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-firewall.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "fortinet" { 3 | mutate { 4 | gsub => [ "message", "= ", "=NA " ] 5 | } 6 | 7 | grok { 8 | match => ["message", "type=%{DATA:event_type}\s+"] 9 | tag_on_failure => [] 10 | } 11 | grok { 12 | match => ["message", "<%{DATA}>%{GREEDYDATA:kv}"] 13 | tag_on_failure => [] 14 | } 15 | kv { 16 | source => "kv" 17 | exclude_keys => [ "type" ] 18 | } 19 | mutate { 20 | gsub => [ "log", "= ", "=NA " ] 21 | } 22 | kv { 23 | source => "log" 24 | target => "SubLog" 25 | } 26 | grok { 27 | match => ["message", "custom: DOM-ALL, dns_query=%{DATA:dns_query};"] 28 | tag_on_failure => [ "" ] 29 | } 30 | mutate { 31 | rename => { "action" => "action" } 32 | rename => { "addr" => "addr_ip" } 33 | rename => { "age" => "age" } 34 | rename => { "assigned" => "assigned_ip" } 35 | rename => { "assignip" => "assign_ip" } 36 | rename => { "ap" => "access_point" } 37 | rename => { "app" => "application" } 38 | rename => { "appcat" => "application_category" } 39 | rename => { "applist" => "application_list" } 40 | rename => { "apprisk" => "application_risk" } 41 | rename => { "approfile" => "accessPoint_profile" } 42 | rename => { "apscan" => "access_point_scan" } 43 | rename => { "apstatus" => "acces_point_status" } 44 | rename => { "aptype" => "access_point_type" } 45 | rename => { "authproto" => "authentication_protocol" } 46 | rename => { "bandwidth" => "bandwidth" } 47 | rename => { "banned_src" => "banned_source" } 48 | rename => { "cat" => "category" } 49 | rename => { "catdesc" => "category_description" } 50 | rename => { "cfgattr" => "configuration_attribute" } 51 | rename => { "cfgobj" => "configuration_object" } 52 | rename => { "cfgpath" => "configuration_path" } 53 | rename => { "cfgtid" => "configuration_transaction_id" } 54 | rename => { "channel" => "channel" } 55 | rename => { "community" => "community" } 56 | rename => { "cookies" => "cookies" } 57 | rename => { "craction" => "cr_action" } 58 | rename => { "crlevel" => "cr_level" } 59 | rename => { "crscore" => "cr_score" } 60 | rename => { "datarange" => "data_range" } 61 | rename => { "desc" => "description" } 62 | rename => { "detectionmethod" => "detection_method" } 63 | rename => { "devid" => "device_id" } 64 | rename => { "devname" => "device_name" } 65 | rename => { "devtype" => "device_type" } 66 | rename => { "dhcp_msg" => "dhcp_message" } 67 | rename => { "disklograte" => "disk_lograte" } 68 | rename => { "dstcountry" => "destination_country" } 69 | rename => { "dstintf" => "destination_interface" } 70 | rename => { "dstip" => "destination_ip" } 71 | rename => { "dstport" => "destination_port" } 72 | rename => { "duration" => "elapsed_time" } 73 | rename => { "error_num" => "error_number" } 74 | rename => { "espauth" => "esp_authentication" } 75 | rename => { "esptransform" => "esp_transform" } 76 | rename => { "eventid" => "event_id" } 77 | rename => { "eventtype" => "event_type" } 78 | rename => { "fazlograte" => "faz_lograte" } 79 | rename => { "filename" => "file_name" } 80 | rename => { "filesize" => "file_size" } 81 | rename => { "filetype" => "file_type" } 82 | rename => { "hostname" => "hostname" } 83 | rename => { "ip" => "source_ip" } 84 | rename => { "localip" => "source_ip" } 85 | rename => { "locip" => "local_ip" } 86 | rename => { "locport" => "source_port" } 87 | rename => { "logid" => "log_id" } 88 | rename => { "logver" => "log_version" } 89 | rename => { "manuf" => "manufacturer" } 90 | rename => { "mem" => "memory" } 91 | rename => { "meshmode" => "mesh_mode" } 92 | rename => { "msg" => "message" } 93 | rename => { "nextstat" => "next_stat" } 94 | rename => { "onwire" => "on_wire" } 95 | rename => { "osname" => "os_name" } 96 | rename => { "osversion" => "unauthenticated_user" } 97 | rename => { "outintf" => "outbound_interface" } 98 | rename => { "peer_notif" => "peer_notification" } 99 | rename => { "phase2_name" => "phase2_name" } 100 | rename => { "policyid" => "policy_id" } 101 | rename => { "policytype" => "policy_type" } 102 | rename => { "port" => "port" } 103 | rename => { "probeproto" => "probe_protocol" } 104 | rename => { "proto" => "protocol_number" } 105 | rename => { "radioband" => "radio_band" } 106 | rename => { "radioidclosest" => "radio_id_closest" } 107 | rename => { "radioiddetected" => "radio_id_detected" } 108 | rename => { "rcvd" => "bytes_received" } 109 | rename => { "rcvdbyte" => "bytes_received" } 110 | rename => { "rcvdpkt" => "packets_received" } 111 | rename => { "remip" => "destination_ip" } 112 | rename => { "remport" => "remote_port" } 113 | rename => { "reqtype" => "request_type" } 114 | rename => { "scantime" => "scan_time" } 115 | rename => { "securitymode" => "security_mode" } 116 | rename => { "sent" => "bytes_sent" } 117 | rename => { "sentbyte" => "bytes_sent" } 118 | rename => { "sentpkt" => "packets_sent" } 119 | rename => { "session_id" => "session_id" } 120 | rename => { "setuprate" => "setup_rate" } 121 | rename => { "sn" => "serial" } 122 | rename => { "snclosest" => "serial_closest_access_point" } 123 | rename => { "sndetected" => "serial_access_point_that_detected_rogue_ap" } 124 | rename => { "snmeshparent" => "serial_mesh_parent" } 125 | rename => { "srccountry" => "source_country" } 126 | rename => { "srcip" => "source_ip" } 127 | rename => { "srcmac" => "source_mac" } 128 | rename => { "srcname" => "source_name" } 129 | rename => { "srcintf" => "source_interface" } 130 | rename => { "srcport" => "source_port" } 131 | rename => { "stacount" => "station_count" } 132 | rename => { "stamac" => "static_mac" } 133 | rename => { "srccountry" => "source_country" } 134 | rename => { "srcip" => "source_ip" } 135 | rename => { "srcmac" => "source_mac" } 136 | rename => { "srcname" => "source_name" } 137 | rename => { "sn" => "serial" } 138 | rename => { "srcintf" => "source_interface" } 139 | rename => { "srcport" => "source_port" } 140 | rename => { "total" => "total_bytes" } 141 | rename => { "totalsession" => "total_sessions" } 142 | rename => { "trandisp" => "nat_translation_type" } 143 | rename => { "tranip" => "nat_destination_ip" } 144 | rename => { "tranport" => "nat_destination_port" } 145 | rename => { "transip" => "nat_source_ip" } 146 | rename => { "transport" => "nat_source_port" } 147 | rename => { "tunnelid" => "tunnel_id" } 148 | rename => { "tunnelip" => "tunnel_ip" } 149 | rename => { "tunneltype" => "tunnel_type" } 150 | rename => { "unauthuser" => "unauthenticated_user_source" } 151 | rename => { "unauthusersource" => "os_version" } 152 | rename => { "vendorurl" => "vendor_url" } 153 | rename => { "vpntunnel" => "vpn_tunnel" } 154 | rename => { "vulncat" => "vulnerability_category" } 155 | rename => { "vulncmt" => "vulnerability_count" } 156 | rename => { "vulnid" => "vulnerability_id" } 157 | rename => { "vulnname" => "vulnerability_name" } 158 | rename => { "vulnref" => "vulnerability_reference" } 159 | rename => { "vulnscore" => "vulnerability_score" } 160 | rename => { "xauthgroup" => "x_authentication_group" } 161 | rename => { "xauthuser" => "x_authentication_user" } 162 | rename => { "[SubLog][appid]" => "sub_application_id" } 163 | rename => { "[SubLog][devid]" => "sub_device_id" } 164 | rename => { "[SubLog][dstip]" => "sub_destination_ip" } 165 | rename => { "[SubLog][srcip]" => "sub_source_ip" } 166 | rename => { "[SubLog][dstport]" => "sub_destination_port" } 167 | rename => { "[SubLog][eventtype]" => "sub_event_type" } 168 | rename => { "[SubLog][proto]" => "sub_protocol_number" } 169 | rename => { "[SubLog][date]" => "sub_date" } 170 | rename => { "[SubLog][time]" => "sub_time" } 171 | rename => { "[SubLog][srcport]" => "sub_source_port" } 172 | rename => { "[SubLog][subtype]" => "sub_subtype" } 173 | rename => { "[SubLog][devname]" => "sub_device_name" } 174 | rename => { "[SubLog][itime]" => "sub_itime" } 175 | rename => { "[SubLog][level]" => "sub_level" } 176 | rename => { "[SubLog][logid]" => "sub_log_id" } 177 | rename => { "[SubLog][logver]" => "sub_log_version" } 178 | rename => { "[SubLog][type]" => "sub_event_type" } 179 | rename => { "[SubLog][vd]" => "sub_vd" } 180 | rename => { "[SubLog][action]" => "sub_action" } 181 | rename => { "[SubLog][logdesc]" => "sub_destination_ip" } 182 | rename => { "[SubLog][policyid]" => "sub_olicy_id" } 183 | rename => { "[SubLog][reason]" => "sub_reason" } 184 | rename => { "[SubLog][service]" => "sub_service" } 185 | rename => { "[SubLog][sessionid]" => "sub_session_id" } 186 | rename => { "[SubLog][src]" => "sub_source_ip" } 187 | rename => { "[SubLog][status]" => "sub_status" } 188 | rename => { "[SubLog][ui]" => "sub_ui" } 189 | rename => { "[SubLog][urlfilteridx]" => "sub_url_filter_idx" } 190 | strip => [ "bytes_sent", "bytes_received" ] 191 | convert => [ "bytes_sent", "integer" ] 192 | convert => [ "bytes_received", "integer" ] 193 | convert => [ "cr_score", "integer" ] 194 | convert => [ "cr_action", "integer" ] 195 | convert => [ "elapsed_time", "integer" ] 196 | convert => [ "destination_port", "integer" ] 197 | convert => [ "source_port", "integer" ] 198 | convert => [ "local_port", "integer" ] 199 | convert => [ "remote_port", "integer" ] 200 | convert => [ "packets_sent", "integer" ] 201 | convert => [ "packets_received", "integer" ] 202 | convert => [ "port", "integer" ] 203 | convert => [ "ProtocolNumber", "integer" ] 204 | convert => [ "XAuthUser", "string" ] 205 | remove_field => [ "kv", "log" ] 206 | } 207 | if [tunnel_ip] == "N/A" { 208 | mutate { 209 | remove_field => [ "tunnel_ip" ] 210 | } 211 | } 212 | if [nat_destination_ip] { 213 | mutate { 214 | add_field => { "ips" => [ "%{nat_destination_ip}" ] } 215 | add_field => { "destination_ips" => [ "%{nat_destination_ip}" ] } 216 | } 217 | } 218 | if [sub_destination_ip] { 219 | mutate { 220 | add_field => { "ips" => [ "%{sub_destination_ip}" ] } 221 | add_field => { "destination_ips" => [ "%{sub_destination_ip}" ] } 222 | } 223 | } 224 | if [nat_source_ip] { 225 | mutate { 226 | add_field => { "ips" => [ "%{nat_source_ip}" ] } 227 | add_field => { "source_ips" => [ "%{nat_source_ip}" ] } 228 | } 229 | } 230 | if [sub_source_ip] { 231 | mutate { 232 | add_field => { "ips" => [ "%{sub_source_ip}" ] } 233 | add_field => { "source_ips" => [ "%{sub_source_ip}" ] } 234 | } 235 | } 236 | if [addr_ip] { 237 | mutate { 238 | add_field => { "ips" => [ "%{addr_ip}" ] } 239 | } 240 | } 241 | if [assign_ip] { 242 | mutate { 243 | add_field => { "ips" => [ "%{assign_ip}" ] } 244 | } 245 | } 246 | if [assigned_ip] { 247 | mutate { 248 | add_field => { "ips" => [ "%{assigned_ip}" ] } 249 | } 250 | } 251 | grok { 252 | match => ["message", "type=%{DATA:event_type}\s+"] 253 | } 254 | if [date] and [time] { 255 | mutate { 256 | add_field => { "receive_time" => "%{date} %{time}" } 257 | remove_field => [ "date", "time" ] 258 | } 259 | date { 260 | timezone => "America/Chicago" 261 | match => [ "receive_time", "YYYY-MM-dd HH:mm:ss" ] 262 | target => "receive_time" 263 | } 264 | mutate { 265 | rename => { "receive_time" => "@timestamp" } 266 | } 267 | } else { 268 | mutate { 269 | add_tag => [ "missing_date" ] 270 | } 271 | } 272 | mutate { 273 | #add_tag => [ "conf_file_6200"] 274 | } 275 | } 276 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-haproxy.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "haproxy" { 3 | grok { 4 | match => ["message", "%{HAPROXYHTTP}"] 5 | named_captures_only => true 6 | } 7 | geoip { 8 | cache_size => 8192000 9 | source => "client_ip" 10 | add_tag => ["geoip"] 11 | database => "/usr/share/GeoIP/GeoIPCity.dat" 12 | fields => ['city_name','continent_code','country_code2','country_code3','country_name','dma_code','ip','latitude','longitude','postal_code','region_name'] 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-ip2location.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if "_jsonparsefailure" in [tags] { 3 | mutate { 4 | gsub => ["message", "[\\\\]", ""] 5 | } 6 | mutate { remove_tag => [ "tags", "_jsonparsefailure" ] } 7 | json { source => "message" } 8 | } 9 | 10 | if [log_type] == "nginx_access" { 11 | geoip { 12 | cache_size => 8192000 13 | source => 'remote_addr' 14 | add_tag => ["geoip"] 15 | database => "/usr/share/GeoIP/GeoIPCity.dat" 16 | fields => ['city_name','continent_code','country_code2','country_code3','country_name','dma_code','ip','latitude','longitude','postal_code','region_name'] 17 | } 18 | 19 | ipip { 20 | source => "remote_addr" 21 | add_tag => ["ipip"] 22 | fields => ['country', 'province', 'city', 'district', 'isp', 'lat', 'lag', 'timezone_name', 'timezone', 'zip', 'phonecode', 'countrycode', 'region'] 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-java.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | 3 | if [log_type] == "log4j" { 4 | grok { 5 | match => ["message" => "%{20%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}:timestamp}%{SPACE}%{LOGLEVEL:level}%{SPACE}\[%{THREADNAME:thread}\]%{SPACE}\[%{JAVACLASS:class}\]%{SPACE}%{GREEDYDATA:logmessage}"] 6 | } 7 | date { 8 | match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ] 9 | } 10 | 11 | if [type] == "java" and "multiline" in [tags] { 12 | grok { 13 | match => ["message", "%{JAVASTACKTRACEPART}"] 14 | add_tag => "java_exception" 15 | } 16 | } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-jetty.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | 3 | if [log_type] == "jetty_access" { 4 | grok { 5 | match => ["message" => "%{IP:clientip} \- \- \[%{MONTHDAY}\/%{MONTH}\/%{YEAR}\:%{TIME} %{ISO8601_TIMEZONE}] "%{WORD:request} \/ HTTP\/%{NUMBER:http_version}" %{NUMBER:response_code} %{NUMBER:response_time}"] 6 | add_tag => "jetty_access" 7 | } 8 | 9 | geoip { 10 | source => "clientip" 11 | add_tag => ["geoip"] 12 | database => "/usr/share/GeoIP/GeoIPCity.dat" 13 | fields => ["country_name", "country_code2", "region_name", "city_name", "real_region_name", "latitude", "longitude"] 14 | remove_field => ["[geoip][longitude]", "[geoip][latitude]"] 15 | } 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-metrics.conf: -------------------------------------------------------------------------------- 1 | #如果最近一分钟 504 请求的个数超过 100 个就报警 2 | filter { 3 | metrics { 4 | meter => "error_%{status}" 5 | add_tag => "metric" 6 | ignore_older_than => 10 7 | } 8 | if "metric" in [tags] { 9 | ruby { 10 | code => "event.cancel if (event.get('[error_504][rate_1m]') * 60 > 100)" 11 | } 12 | } 13 | } 14 | 15 | output { 16 | if "metric" in [tags] { 17 | exec { 18 | command => "echo \"Out of threshold: %{[error_504][rate_1m]}\"" 19 | } 20 | } 21 | } 22 | 23 | 24 | #box and shisker plot 25 | filter { 26 | metrics { 27 | timer => {"rt" => "%{request_time}"} 28 | percentiles => [25, 75] 29 | add_tag => "percentile" 30 | } 31 | if "percentile" in [tags] { 32 | ruby { 33 | code => "l=event.get('[rt][p75]')-event.get('[rt][p25]');event.set('[rt][low]', event.get('[rt][p25]')-l);event.set('[rt][high]',event.get('[rt][p75]')+l)" 34 | } 35 | } 36 | } 37 | output { 38 | if "percentile" in [tags] and ([rt][last] > [rt][high] or [rt][last] < [rt][low]) { 39 | exec { 40 | command => "echo \"Anomaly: %{[rt][last]}\"" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-mongodb.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "mongodb" { 3 | grok { 4 | match => ["message","%{MONGO3_LOG}"] 5 | } 6 | 7 | if [message] =~ "nreturned" { 8 | grok { 9 | match => [ "message", "%{MONGO_SLOWQUERY}"] 10 | add_tag => [ "query" ] 11 | } 12 | } 13 | 14 | date { 15 | match => [ "timestamp", "MMM d HH:mm:ss", "MMM d HH:mm:ss.SSS" ,"MMM dd HH:mm:ss.SSS", "MMM DD HH:mm:ss" ] 16 | remove_field => [ "timestamp" ] 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /logstash/conf.d/filter-multiline.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "php_slow" { 3 | codec => multiline { 4 | pattern => '^$' 5 | what => 'next' 6 | negate => true 7 | } 8 | } 9 | 10 | if [log_type] == "log4j" { 11 | codec => multiline { 12 | pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)|(^\s+...\s[\d]+[\s\w]+$)" 13 | what => "previous" 14 | } 15 | } 16 | 17 | if [log_type] == "mysql_slow" { 18 | codec => multiline { 19 | pattern => "^# User@Host:" 20 | negate => true 21 | what => "previous" 22 | } 23 | } 24 | 25 | if [log_type] == "other" { 26 | #以时间戳开始 27 | codec => multiline { 28 | pattern => "^%{TIMESTAMP_ISO8601} " 29 | negate => true 30 | what => previous 31 | } 32 | 33 | #\字符在一行末尾表示该行继续 34 | codec => multiline { 35 | pattern => "\\$" 36 | what => "next" 37 | } 38 | 39 | #以空白开始的行与上一行合并 40 | codec => multiline { 41 | pattern => "^\s" 42 | what => "previous" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-mysql-slow.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "mysql_slow" { 3 | # drop sleep events 4 | grok { 5 | match => { "message" => "SELECT SLEEP" } 6 | add_tag => [ "sleep_drop" ] 7 | tag_on_failure => [] # prevent default _grokparsefailure tag on real records 8 | } 9 | if "sleep_drop" in [tags] { 10 | drop {} 11 | } 12 | 13 | grok { 14 | match => { "message" => "(?m)^#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+(?:(?\S*) )?\[(?:%{IPV4:clientip})?\]\s+Id:\s+%{NUMBER:row_id:int}\n#\s+Query_time:\s+%{NUMBER:query_time:float}\s+Lock_time:\s+%{NUMBER:lock_time:float}\s+Rows_sent:\s+%{NUMBER:rows_sent:int}\s+Rows_examined:\s+%{NUMBER:rows_examined:int}\n\s*(?:use %{DATA:database};\s*\n)?SET\s+timestamp=%{NUMBER:timestamp};\n\s*(?(?\w+)\b.*;)\s*(?:\n#\s+Time)?.*$" } 15 | } 16 | date { 17 | match => [ "timestamp", "UNIX", "YYYY-MM-dd HH:mm:ss"] 18 | remove_field => [ "timestamp" ] 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-nginx-access.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "nginx_access" { 3 | 4 | json { 5 | source => "message" 6 | } 7 | 8 | mutate { 9 | convert => ["size", "integer", "responsetime", "float", "upstream_response_time", "float"] 10 | } 11 | 12 | if [http_cookie] { 13 | kv { 14 | prefix => "cookie_" 15 | source => "http_cookie" 16 | field_split => "; " 17 | } 18 | } 19 | if [request] { 20 | ruby { 21 | init => "@kname = ['method','uri','verb']" 22 | code => " 23 | new_event = LogStash::Event.new(Hash[@kname.zip(event.get('request').split(' '))]) 24 | new_event.remove('@timestamp') 25 | event.append(new_event)"" 26 | " 27 | } 28 | if [uri] { 29 | ruby { 30 | init => "@kname = ['url_path','url_args']" 31 | code => " 32 | new_event = LogStash::Event.new(Hash[@kname.zip(event.get('uri').split('?'))]) 33 | new_event.remove('@timestamp') 34 | event.append(new_event)"" 35 | " 36 | } 37 | kv { 38 | prefix => "url_" 39 | source => "url_args" 40 | field_split => "& " 41 | remove_field => [ "url_args","uri","request" ] 42 | } 43 | } 44 | } 45 | mutate { 46 | convert => [ 47 | "status" : "integer", 48 | "size" , "integer", 49 | "request_length", "integer", 50 | "upstream_response_time", "float", 51 | "request_time", "float" 52 | ] 53 | } 54 | date { 55 | match => [ "time_local", "dd/MMM/yyyy:hh:mm:ss Z" ] 56 | locale => "en" 57 | } 58 | 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /logstash/conf.d/filter-nginx-error.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "nginx_error" { 3 | grok { 4 | match => ["message", "^%{%{YEAR}/%{MONTHNUM}/%{MONTHDAY} %{TIME}:timestamp} \[%{LOGLEVEL}\] %{POSINT:pid}#%{NUMBER}: \*%{NUMBER} %{GREEDYDATA:msg}"] 5 | } 6 | 7 | date { 8 | match => ['timestamp', 'YYYY/MMM/dd HH:mm:ss'] 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-percona-audit-log.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "mysql_audit_log" { 3 | mutate { 4 | gsub => ["message", "\\\\n", " "] 5 | gsub => ["message", "\t", " "] 6 | replace => ["message", "%{message}"] 7 | } 8 | 9 | json { 10 | source => "message" 11 | } 12 | 13 | mutate { 14 | remove_field => ["message"] 15 | gsub => ["[audit_record][timestamp]", " UTC", "Z"] 16 | replace => ["[audit_record][timestamp]", "%{[audit_record][timestamp]}"] 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-php-slow.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "php_slow" { 3 | grok { 4 | patterns_dir => '/etc/logstash/patterns' 5 | match => [ 6 | "message", "\[%{%{MONTHDAY}-%{MONTH}-%{YEAR}\s+%{TIME}:timestamp}\] \[%{GREEDYDATA:php_fpm_pool}\] pid {POSINT}", 7 | "message", "\[%{GREEDYDATA}\] %{GREEDYDATA:func_name} %{UNIXPATH:script_path}" 8 | ] 9 | } 10 | date { match => ['timestamp', 'dd-MMM-YYYY HH:mm:ss'] } 11 | } 12 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-redis.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | redis { 3 | host => "127.0.0.1" 4 | port => 6379 5 | db => 0 6 | # password => "" 7 | action => "GET" 8 | key => "%{host}" 9 | field => "%{host}" 10 | name => "ext" 11 | default => "" 12 | } 13 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-referer.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "nginx_access" { 3 | if [http_referer] != "-" { 4 | referer { 5 | target => "referer" 6 | source => "http_referer" 7 | referers_file => "/etc/logstash/conf/referers.yaml" 8 | } 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-solr.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "solr" and [message] !~ /(.+)/ { 3 | drop { } 4 | } 5 | if [type] == "solr_log" and "multiline" in [tags] { 6 | grok { 7 | match => [ "message", "%{JAVASTACKTRACEPART}" ] 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-tomcat.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | 3 | if [log_type] == "tomcat" and [message] !~ /(.+)/ { 4 | drop { } 5 | } 6 | if [log_type] == "tomcat" and "multiline" in [tags] { 7 | grok { 8 | match => [ "message", "%{JAVASTACKTRACEPART}" ] 9 | } 10 | } 11 | 12 | if [log_type] == "tomcat" { 13 | grok { 14 | match => [ "message", "%{TOMCATLOG}", "message", "%{CATALINALOG}" ] 15 | } 16 | 17 | geoip { 18 | cache_size => 8192000 19 | source => "clientip" 20 | add_tag => ["geoip"] 21 | database => "/usr/share/GeoIP/GeoIPCity.dat" 22 | fields => ['city_name','continent_code','country_code2','country_code3','country_name','dma_code','ip','latitude','longitude','postal_code','region_name'] 23 | remove_field => ["[geoip][longitude]", "[geoip][latitude]"] 24 | } 25 | mutate { 26 | convert => [ "[geoip][coordinates]", "float"] 27 | } 28 | date { 29 | match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS Z", "MMM dd, yyyy HH:mm:ss a" ] 30 | } 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-trafficserver.conf: -------------------------------------------------------------------------------- 1 | #Squid Compatible 2 | filter { 3 | if [log_type] == "trafficserver_log" { 4 | grok { 5 | match => {"message" => "%{NUMBER:timestamp} %{NUMBER:timetoserve} %{IPORHOST:clientip} %{WORD:cachecode}/%{NUMBER:response} %{NUMBER:bytes} %{WORD:verb} %{NOTSPACE:request} %{USER:auth} %{NOTSPACE:route} %{DATA:contenttype}"} 6 | } 7 | date { 8 | match => ["timestamp", "UNIX"] 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /logstash/conf.d/filter-useragent.conf: -------------------------------------------------------------------------------- 1 | filter { 2 | if [log_type] == "nginx_access" { 3 | if [http_user_agent] != "-" { 4 | useragent { 5 | target => "useragent" 6 | source => "http_user_agent" 7 | regexes => "/etc/logstash/conf/useragent.yaml" 8 | } 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /logstash/conf.d/input-beats.conf: -------------------------------------------------------------------------------- 1 | input { 2 | beats { 3 | port => 5044 4 | } 5 | } -------------------------------------------------------------------------------- /logstash/conf.d/input-http_poller.conf: -------------------------------------------------------------------------------- 1 | input { 2 | http_poller { 3 | urls => { 4 | test1 => "http://localhost:9200" 5 | test2 => { 6 | # Supports all options supported by ruby's Manticore HTTP client 7 | method => get 8 | user => "AzureDiamond" 9 | password => "hunter2" 10 | url => "http://localhost:9200/_cluster/health" 11 | headers => { 12 | Accept => "application/json" 13 | } 14 | } 15 | } 16 | request_timeout => 60 17 | # Supports "cron", "every", "at" and "in" schedules by rufus scheduler 18 | schedule => { cron => "* * * * * UTC"} 19 | codec => "json" 20 | # A hash of request metadata info (timing, response headers, etc.) will be sent here 21 | metadata_target => "http_poller_metadata" 22 | } 23 | } -------------------------------------------------------------------------------- /logstash/conf.d/input-kafka.conf: -------------------------------------------------------------------------------- 1 | #https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html 2 | input { 3 | kafka { 4 | #codec => avro { 5 | # schema_uri => "/tmp/schema.avsc" # "http://example.com/schema.avsc" 6 | #} 7 | 8 | bootstrap_servers => "kafka1:6667,kafka2:6667,kafka3:6667" 9 | group_id => 'logcenter' 10 | topics => ["nginx_access"] 11 | #topics_pattern => "nginx_access*" 12 | #exclude_internal_topics => "" 13 | codec => json 14 | consumer_threads => 16 15 | decorate_events => true 16 | consumer_restart_on_error => true 17 | tags => ["logcenter-kafka","nginx_access"] 18 | decorate_events => true 19 | #jaas_path => "" 20 | #security_protocol => "SASL_PLAINTEXT" 21 | } 22 | } -------------------------------------------------------------------------------- /logstash/conf.d/input-netflow.conf: -------------------------------------------------------------------------------- 1 | input { 2 | udp { 3 | port => 2055 4 | codec => netflow 5 | receive_buffer_bytes => 16777216 6 | workers => 16 7 | } 8 | } -------------------------------------------------------------------------------- /logstash/conf.d/input-retry.conf: -------------------------------------------------------------------------------- 1 | input { 2 | dead_letter_queue { 3 | path => "/var/lib/logstash/dead_letter_queue" 4 | commit_offsets => true 5 | pipeline_id => "main" 6 | } 7 | } -------------------------------------------------------------------------------- /logstash/conf.d/input-syslog.conf: -------------------------------------------------------------------------------- 1 | input { 2 | tcp { 3 | port => "5140" 4 | } 5 | 6 | tcp { 7 | port => "5141" 8 | } 9 | 10 | tcp { 11 | port => "5142" 12 | } 13 | 14 | tcp { 15 | port => "5143" 16 | } 17 | } 18 | 19 | filter { 20 | grok { 21 | match => ["message", "%{SYSLOGLINE}" ] 22 | } 23 | syslog_pri { } 24 | } 25 | -------------------------------------------------------------------------------- /logstash/conf.d/input-varnishlog.conf: -------------------------------------------------------------------------------- 1 | input { 2 | if [type] == "varnish_log" { 3 | varnishlog { 4 | threads => 8 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /logstash/conf.d/output-es.conf: -------------------------------------------------------------------------------- 1 | output { 2 | elasticsearch { 3 | cluster = "elasticsearch-cluster" 4 | hosts => ['es1:9200','es2:9200'] 5 | index => "logcenter-%{+YYYY.MM.dd}" 6 | pool_max => 6000 7 | pool_max_per_route => 600 8 | } 9 | } -------------------------------------------------------------------------------- /logstash/conf.d/output-hdfs.conf: -------------------------------------------------------------------------------- 1 | output { 2 | webhdfs { 3 | host => "hdfs_host" 4 | port => 50070 , 5 | standby_host => "hdfs_standby_host" , 6 | standby_port => 50070, 7 | user => "logcenter" 8 | path => "/usr/logcenter/dt=%{+Y}-%{+M}-%{+d}/logstash-%{+H}.log" 9 | flush_size => 500 10 | compress => "snappy" 11 | idle_flush_time => 10 12 | retry_interval => 0.5 13 | workers => 32 14 | #use_kerberos_auth = true 15 | #kerberos_keytab = '/etc/security/keytabs/hdfs.headless.keytab' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /logstash/conf.d/output-kafka.conf: -------------------------------------------------------------------------------- 1 | output { 2 | kafka { 3 | codec => json 4 | bootstrap_servers => "kafka1:6667,kafka2:6667,kafka3:6667" 5 | topic_id => "logcenter" 6 | batch_size => 16384 7 | compression_type => "snappy" 8 | 9 | #jaas_path => "" 10 | #security_protocol => "SASL_PLAINTEXT" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /logstash/conf.d/output-opentsdb.conf: -------------------------------------------------------------------------------- 1 | # opentsdb输入信息格式为:put metric timestamp value tagname=tagvalue tag2=value2 2 | # 在logstash-output-opentsdb插件metrics配置中默认已经输入timestamp 3 | # 因此metrics需要配置的第一个参数为metricName,第二个参数为 value 之后依次为tagname,tagValue 4 | output { 5 | opentsdb { 6 | host => '***.***.***.***' 7 | port => 4242 8 | metrics => [ 9 | "%{metricName}", 10 | "%{data}", 11 | "host", 12 | "%{metricHost}", 13 | "port", 14 | "%{port}" 15 | ] 16 | } 17 | } -------------------------------------------------------------------------------- /logstash/conf/ip2location.datx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaomatech/log/47a6d4e914909b0b74876aa1921f54bd619fb4d3/logstash/conf/ip2location.datx -------------------------------------------------------------------------------- /logstash/conf/referers.yml: -------------------------------------------------------------------------------- 1 | # ####################################################################################################### 2 | # 3 | # ALL SUPPORTED REFERERS 4 | # 5 | # Broken down into: 6 | # 7 | # 1. Medium-unknown providers 8 | # 2. Email providers 9 | # 3. Social providers 10 | # 4. Search providers 11 | # 5. Paid media 12 | 13 | 14 | # ####################################################################################################### 15 | # 16 | # MEDIUM-UNKNOWN PROVIDERS 17 | # 18 | # We know the source, but not the medium. 19 | # This section is useful for reducing false positives in the other sections 20 | 21 | unknown: 22 | 23 | Google: 24 | domains: 25 | - support.google.com 26 | - developers.google.com 27 | - maps.google.com 28 | - accounts.google.com 29 | - drive.google.com 30 | - sites.google.com 31 | - groups.google.com 32 | - groups.google.co.uk 33 | 34 | Yahoo!: 35 | domains: 36 | - finance.yahoo.com 37 | - news.yahoo.com 38 | - eurosport.yahoo.com 39 | - sports.yahoo.com 40 | - astrology.yahoo.com 41 | - travel.yahoo.com 42 | - answers.yahoo.com 43 | - screen.yahoo.com 44 | - weather.yahoo.com 45 | - messenger.yahoo.com 46 | - games.yahoo.com 47 | - shopping.yahoo.net 48 | - movies.yahoo.com 49 | - cars.yahoo.com 50 | - lifestyle.yahoo.com 51 | - omg.yahoo.com 52 | - match.yahoo.net 53 | 54 | 55 | 56 | # ####################################################################################################### 57 | # 58 | # EMAIL PROVIDERS 59 | 60 | email: 61 | 62 | 126 Mail: 63 | domains: 64 | - mail.126.com 65 | 66 | 163 Mail: 67 | domains: 68 | - mail.163.com 69 | 70 | 2degrees: 71 | domains: 72 | - webmail.2degreesbroadband.co.nz 73 | 74 | Adam Internet: 75 | domains: 76 | - webmail.adam.com.au 77 | 78 | AOL Mail: 79 | domains: 80 | - mail.aol.com 81 | 82 | Bigpond: 83 | domains: 84 | - webmail.bigpond.com 85 | - webmail2.bigpond.com 86 | - email.telstra.com 87 | - basic.messaging.bigpond.com 88 | 89 | Commander: 90 | domains: 91 | - webmail.commander.net.au 92 | 93 | Daum Mail: 94 | domains: 95 | - mail2.daum.net 96 | - mail.daum.net 97 | 98 | Dodo: 99 | domains: 100 | - webmail.dodo.com.au 101 | 102 | Freenet: 103 | domains: 104 | - webmail.freenet.de 105 | 106 | Gmail: 107 | domains: 108 | - mail.google.com 109 | - inbox.google.com 110 | 111 | iiNet: 112 | domains: 113 | - webmail.iinet.net.au 114 | - mail.iinet.net.au 115 | 116 | Inbox.com: 117 | domains: 118 | - inbox.com 119 | 120 | iPrimus: 121 | domains: 122 | - webmail.iprimus.com.au 123 | 124 | Mynet Mail: 125 | domains: 126 | - mail.mynet.com 127 | 128 | Naver Mail: 129 | domains: 130 | - mail.naver.com 131 | 132 | Netspace: 133 | domains: 134 | - webmail.netspace.net.au 135 | 136 | Optus Zoo: 137 | domains: 138 | - webmail.optuszoo.com.au 139 | - webmail.optusnet.com.au 140 | 141 | Orange Webmail: 142 | domains: 143 | - orange.fr/webmail 144 | 145 | Outlook.com: 146 | domains: 147 | - mail.live.com 148 | - outlook.live.com 149 | 150 | QQ Mail: 151 | domains: 152 | - mail.qq.com 153 | 154 | Seznam Mail: 155 | domains: 156 | - email.seznam.cz 157 | 158 | Virgin: 159 | domains: 160 | - webmail.virginbroadband.com.au 161 | 162 | Vodafone: 163 | domains: 164 | - webmail.vodafone.co.nz 165 | 166 | Westnet: 167 | domains: 168 | - webmail.westnet.com.au 169 | 170 | Yahoo! Mail: 171 | domains: 172 | - mail.yahoo.net 173 | - mail.yahoo.com 174 | - mail.yahoo.co.uk 175 | - mail.yahoo.co.jp 176 | 177 | Zoho: 178 | domains: 179 | - mail.zoho.com 180 | 181 | # ####################################################################################################### 182 | # 183 | # SOCIAL PROVIDERS 184 | 185 | social: 186 | 187 | Facebook: 188 | domains: 189 | - facebook.com 190 | - fb.me 191 | - m.facebook.com 192 | - l.facebook.com 193 | - lm.facebook.com 194 | 195 | Qzone: 196 | domains: 197 | - qzone.qq.com 198 | 199 | Habbo: 200 | domains: 201 | - habbo.com 202 | 203 | Twitter: 204 | domains: 205 | - twitter.com 206 | - t.co 207 | 208 | Instagram: 209 | domains: 210 | - instagram.com 211 | 212 | Youtube: 213 | domains: 214 | - youtube.com 215 | - youtu.be 216 | 217 | Vimeo: 218 | domains: 219 | - vimeo.com 220 | 221 | Renren: 222 | domains: 223 | - renren.com 224 | 225 | Windows Live Spaces: 226 | domains: 227 | - login.live.com 228 | 229 | LinkedIn: 230 | domains: 231 | - linkedin.com 232 | - lnkd.in 233 | 234 | Bebo: 235 | domains: 236 | - bebo.com 237 | 238 | Vkontakte: 239 | domains: 240 | - vk.com 241 | - vkontakte.ru 242 | 243 | Tagged: 244 | domains: 245 | - login.tagged.com 246 | 247 | Orkut: 248 | domains: 249 | - orkut.com 250 | 251 | Myspace: 252 | domains: 253 | - myspace.com 254 | 255 | Friendster: 256 | domains: 257 | - friendster.com 258 | 259 | Badoo: 260 | domains: 261 | - badoo.com 262 | 263 | hi5: 264 | domains: 265 | - hi5.com 266 | 267 | Netlog: 268 | domains: 269 | - netlog.com 270 | 271 | Flixster: 272 | domains: 273 | - flixster.com 274 | 275 | MyLife: 276 | domains: 277 | - mylife.ru 278 | 279 | Paper.li: 280 | domains: 281 | - paper.li 282 | 283 | Classmates: 284 | domains: 285 | - classmates.com 286 | 287 | GitHub: 288 | domains: 289 | - github.com 290 | 291 | Google+: 292 | domains: 293 | - url.google.com 294 | - plus.google.com 295 | 296 | Douban: 297 | domains: 298 | - douban.com 299 | 300 | Odnoklassniki: 301 | domains: 302 | - odnoklassniki.ru 303 | 304 | Viadeo: 305 | domains: 306 | - viadeo.com 307 | 308 | Flickr: 309 | domains: 310 | - flickr.com 311 | 312 | WeeWorld: 313 | domains: 314 | - weeworld.com 315 | 316 | Last.fm: 317 | domains: 318 | - lastfm.ru 319 | 320 | MyHeritage: 321 | domains: 322 | - myheritage.com 323 | 324 | Xanga: 325 | domains: 326 | - xanga.com 327 | 328 | Mixi: 329 | domains: 330 | - mixi.jp 331 | 332 | Cyworld: 333 | domains: 334 | - global.cyworld.com 335 | 336 | Gaia Online: 337 | domains: 338 | - gaiaonline.com 339 | 340 | Skyrock: 341 | domains: 342 | - skyrock.com 343 | 344 | BlackPlanet: 345 | domains: 346 | - blackplanet.com 347 | 348 | myYearbook: 349 | domains: 350 | - myyearbook.com 351 | 352 | Fotolog: 353 | domains: 354 | - fotolog.com 355 | 356 | Friends Reunited: 357 | domains: 358 | - friendsreunited.com 359 | 360 | LiveJournal: 361 | domains: 362 | - livejournal.ru 363 | 364 | StudiVZ: 365 | domains: 366 | - studivz.net 367 | 368 | StackOverflow: 369 | domains: 370 | - stackoverflow.com 371 | 372 | Sonico.com: 373 | domains: 374 | - sonico.com 375 | 376 | Pinterest: 377 | domains: 378 | - pinterest.com 379 | 380 | Plaxo: 381 | domains: 382 | - plaxo.com 383 | 384 | Geni: 385 | domains: 386 | - geni.com 387 | 388 | Tuenti: 389 | domains: 390 | - tuenti.com 391 | 392 | XING: 393 | domains: 394 | - xing.com 395 | 396 | Taringa!: 397 | domains: 398 | - taringa.net 399 | 400 | Tumblr: 401 | domains: 402 | - tumblr.com 403 | - t.umblr.com 404 | 405 | Nasza-klasa.pl: 406 | domains: 407 | - nk.pl 408 | 409 | StumbleUpon: 410 | domains: 411 | - stumbleupon.com 412 | 413 | SourceForge: 414 | domains: 415 | - sourceforge.net 416 | 417 | Hyves: 418 | domains: 419 | - hyves.nl 420 | 421 | WAYN: 422 | domains: 423 | - wayn.com 424 | 425 | Buzznet: 426 | domains: 427 | - buzznet.com 428 | 429 | Multiply: 430 | domains: 431 | - multiply.com 432 | 433 | Foursquare: 434 | domains: 435 | - foursquare.com 436 | 437 | vKruguDruzei.ru: 438 | domains: 439 | - vkrugudruzei.ru 440 | 441 | Mail.ru: 442 | domains: 443 | - my.mail.ru 444 | 445 | MoiKrug.ru: 446 | domains: 447 | - moikrug.ru 448 | 449 | Reddit: 450 | domains: 451 | - reddit.com 452 | 453 | Hacker News: 454 | domains: 455 | - news.ycombinator.com 456 | 457 | Identi.ca: 458 | domains: 459 | - identi.ca 460 | 461 | Weibo: 462 | domains: 463 | - weibo.com 464 | - t.cn 465 | 466 | Delicious: 467 | domains: 468 | - delicious.com 469 | 470 | Pocket: 471 | domains: 472 | - getpocket.com 473 | 474 | ITU Sozluk: 475 | domains: 476 | - itusozluk.com 477 | 478 | Instela: 479 | domains: 480 | - instela.com 481 | 482 | Eksi Sozluk: 483 | domains: 484 | - Sozluk.com 485 | - sourtimes.org 486 | 487 | Uludag Sozluk: 488 | domains: 489 | - uludagsozluk.com 490 | - ulusozluk.com 491 | 492 | Inci Sozluk: 493 | domains: 494 | - inci.sozlukspot.com 495 | - incisozluk.com 496 | - incisozluk.cc 497 | 498 | Hocam.com: 499 | domains: 500 | - hocam.com 501 | 502 | Donanimhaber: 503 | domains: 504 | - donanimhaber.com 505 | 506 | Disqus: 507 | domains: 508 | - redirect.disqus.com 509 | - disq.us 510 | - disqus.com 511 | 512 | Quora: 513 | domains: 514 | - quora.com 515 | 516 | Whirlpool: 517 | domains: 518 | - forums.whirlpool.net.au 519 | 520 | # ####################################################################################################### 521 | # 522 | # SEARCH PROVIDERS 523 | 524 | search: 525 | 526 | 1.cz: 527 | parameters: 528 | - q 529 | domains: 530 | - 1.cz 531 | 532 | # 123people TODO 533 | 534 | 1&1: 535 | parameters: 536 | - q 537 | domains: 538 | - search.1and1.com 539 | 540 | 1und1: 541 | parameters: 542 | - su 543 | domains: 544 | - search.1und1.de 545 | 546 | 360.cn: 547 | parameters: 548 | - q 549 | domains: 550 | - so.360.cn 551 | - www.so.com 552 | 553 | Abacho: 554 | parameters: 555 | - q 556 | domains: 557 | - www.abacho.de 558 | - www.abacho.com 559 | - www.abacho.co.uk 560 | - www.se.abacho.com 561 | - www.tr.abacho.com 562 | - www.abacho.at 563 | - www.abacho.fr 564 | - www.abacho.es 565 | - www.abacho.ch 566 | - www.abacho.it 567 | 568 | ABCsøk: 569 | parameters: 570 | - q 571 | domains: 572 | - abcsolk.no 573 | - verden.abcsok.no 574 | 575 | Acoon: 576 | parameters: 577 | - begriff 578 | domains: 579 | - www.acoon.de 580 | 581 | Alexa: 582 | parameters: 583 | - q 584 | domains: 585 | - alexa.com 586 | - search.toolbars.alexa.com 587 | 588 | Alice Adsl: 589 | parameters: 590 | - q 591 | domains: 592 | - rechercher.aliceadsl.fr 593 | 594 | AllTheWeb: 595 | parameters: 596 | - q 597 | domains: 598 | - www.alltheweb.com 599 | 600 | all.by: 601 | parameters: 602 | - query 603 | domains: 604 | - all.by 605 | 606 | Altavista: 607 | parameters: 608 | - q 609 | domains: 610 | - www.altavista.com 611 | - search.altavista.com 612 | - listings.altavista.com 613 | - altavista.de 614 | - altavista.fr 615 | - be-nl.altavista.com 616 | - be-fr.altavista.com 617 | 618 | Amazon: 619 | parameters: 620 | - keywords 621 | domains: 622 | - amazon.com 623 | - www.amazon.com 624 | 625 | AOL: 626 | parameters: 627 | - q 628 | - query 629 | domains: 630 | - search.aol.com 631 | - search.aol.it 632 | - aolsearch.aol.com 633 | - aolsearch.com 634 | - www.aolrecherche.aol.fr 635 | - www.aolrecherches.aol.fr 636 | - www.aolimages.aol.fr 637 | - aim.search.aol.com 638 | - www.recherche.aol.fr 639 | - recherche.aol.fr 640 | - find.web.aol.com 641 | - recherche.aol.ca 642 | - aolsearch.aol.co.uk 643 | - search.aol.co.uk 644 | - aolrecherche.aol.fr 645 | - sucheaol.aol.de 646 | - suche.aol.de 647 | - suche.aolsvc.de 648 | - aolbusqueda.aol.com.mx 649 | - alicesuche.aol.de 650 | - alicesuchet.aol.de 651 | - suchet2.aol.de 652 | - search.hp.my.aol.com.au 653 | - search.hp.my.aol.de 654 | - search.hp.my.aol.it 655 | - search-intl.netscape.com 656 | 657 | Apollo Latvia: 658 | parameters: 659 | - q 660 | domains: 661 | - apollo.lv/portal/search/ 662 | 663 | APOLL07: 664 | parameters: 665 | - query 666 | domains: 667 | - apollo7.de 668 | 669 | Apontador: 670 | parameters: 671 | - q 672 | domains: 673 | - apontador.com.br 674 | - www.apontador.com.br 675 | 676 | Aport: 677 | parameters: 678 | - r 679 | domains: 680 | - sm.aport.ru 681 | 682 | arama: 683 | parameters: 684 | - q 685 | domains: 686 | - arama.com 687 | 688 | Arcor: 689 | parameters: 690 | - Keywords 691 | domains: 692 | - www.arcor.de 693 | 694 | Arianna: 695 | parameters: 696 | - query 697 | domains: 698 | - arianna.libero.it 699 | - www.arianna.com 700 | 701 | Ask: 702 | parameters: 703 | - q 704 | domains: 705 | - ask.com 706 | - www.ask.com 707 | - web.ask.com 708 | - int.ask.com 709 | - mws.ask.com 710 | - uk.ask.com 711 | - images.ask.com 712 | - ask.reference.com 713 | - www.askkids.com 714 | - iwon.ask.com 715 | - www.ask.co.uk 716 | - www.qbyrd.com 717 | - search-results.com 718 | - uk.search-results.com 719 | - www.search-results.com 720 | - int.search-results.com 721 | 722 | Ask Toolbar: 723 | parameters: 724 | - searchfor 725 | domains: 726 | - search.tb.ask.com 727 | 728 | Atlas: 729 | parameters: 730 | - q 731 | domains: 732 | - searchatlas.centrum.cz 733 | 734 | Austronaut: 735 | parameters: 736 | - q 737 | domains: 738 | - www2.austronaut.at 739 | - www1.astronaut.at 740 | 741 | Babylon: 742 | parameters: 743 | - q 744 | domains: 745 | - search.babylon.com 746 | - searchassist.babylon.com 747 | 748 | Baidu: 749 | parameters: 750 | - wd 751 | - word 752 | - kw 753 | - k 754 | domains: 755 | - www.baidu.com 756 | - www1.baidu.com 757 | - zhidao.baidu.com 758 | - tieba.baidu.com 759 | - news.baidu.com 760 | - web.gougou.com 761 | - m.baidu.com 762 | 763 | Biglobe: 764 | parameters: 765 | - q 766 | domains: 767 | - cgi.search.biglobe.ne.jp 768 | 769 | Bing: 770 | parameters: 771 | - q 772 | - Q 773 | domains: 774 | - bing.com 775 | - www.bing.com 776 | - msnbc.msn.com 777 | - dizionario.it.msn.com 778 | - cc.bingj.com 779 | - m.bing.com 780 | 781 | Bing Images: 782 | parameters: 783 | - q 784 | - Q 785 | domains: 786 | - bing.com/images/search 787 | - www.bing.com/images/search 788 | 789 | blekko: 790 | parameters: 791 | - q 792 | domains: 793 | - blekko.com 794 | 795 | Blogdigger: 796 | parameters: 797 | - q 798 | domains: 799 | - www.blogdigger.com 800 | 801 | Blogpulse: 802 | parameters: 803 | - query 804 | domains: 805 | - www.blogpulse.com 806 | 807 | Bluewin: 808 | parameters: 809 | - searchTerm 810 | domains: 811 | - search.bluewin.ch 812 | 813 | British Telecommunications: 814 | parameters: 815 | - p 816 | domains: 817 | - search.bt.com 818 | 819 | canoe.ca: 820 | parameters: 821 | - q 822 | domains: 823 | - web.canoe.ca 824 | 825 | Centrum: 826 | parameters: 827 | - q 828 | domains: 829 | - serach.centrum.cz 830 | - morfeo.centrum.cz 831 | 832 | Certified-Toolbar: 833 | parameters: 834 | - q 835 | domains: 836 | - search.certified-toolbar.com 837 | 838 | Charter: 839 | parameters: 840 | - q 841 | domains: 842 | - www.charter.net 843 | 844 | Clix: 845 | parameters: 846 | - question 847 | domains: 848 | - pesquisa.clix.pt 849 | 850 | Conduit: 851 | parameters: 852 | - q 853 | domains: 854 | - search.conduit.com 855 | 856 | Comcast: 857 | parameters: 858 | - q 859 | domains: 860 | - serach.comcast.net 861 | 862 | Crawler: 863 | parameters: 864 | - q 865 | domains: 866 | - www.crawler.com 867 | 868 | Compuserve: 869 | parameters: 870 | - query 871 | domains: 872 | - websearch.cs.com 873 | 874 | Cuil: 875 | parameters: 876 | - q 877 | domains: 878 | - www.cuil.com 879 | 880 | Daemon search: 881 | parameters: 882 | - q 883 | domains: 884 | - daemon-search.com 885 | - my.daemon-search.com 886 | 887 | Dalesearch: 888 | parameters: 889 | - q 890 | domains: 891 | - www.dalesearch.com 892 | 893 | DasOertliche: 894 | parameters: 895 | - kw 896 | domains: 897 | - www.dasoertliche.de 898 | 899 | DasTelefonbuch: 900 | parameters: 901 | - kw 902 | domains: 903 | - www1.dastelefonbuch.de 904 | 905 | Daum: 906 | parameters: 907 | - q 908 | domains: 909 | - search.daum.net 910 | 911 | Delfi latvia: 912 | parameters: 913 | - q 914 | domains: 915 | - smart.delfi.lv 916 | 917 | Delfi: 918 | parameters: 919 | - q 920 | domains: 921 | - otsing.delfi.ee 922 | 923 | Digg: 924 | parameters: 925 | - s 926 | domains: 927 | - digg.com 928 | 929 | dmoz: 930 | parameters: 931 | - q 932 | domains: 933 | - dmoz.org 934 | - editors.dmoz.org 935 | 936 | Dodo: 937 | parameters: 938 | - q 939 | domains: 940 | - google.dodo.com.au 941 | 942 | DuckDuckGo: 943 | parameters: 944 | - q 945 | domains: 946 | - duckduckgo.com 947 | 948 | earthlink: 949 | parameters: 950 | - q 951 | domains: 952 | - search.earthlink.net 953 | 954 | Ecosia: 955 | parameters: 956 | - q 957 | domains: 958 | - ecosia.org 959 | 960 | Eniro: 961 | parameters: 962 | - q 963 | - search_word 964 | domains: 965 | - www.eniro.se 966 | 967 | Eurip: 968 | parameters: 969 | - q 970 | domains: 971 | - www.eurip.com 972 | 973 | Euroseek: 974 | parameters: 975 | - string 976 | domains: 977 | - www.euroseek.com 978 | 979 | Everyclick: 980 | parameters: 981 | - keyword 982 | domains: 983 | - www.everyclick.com 984 | 985 | Excite: 986 | parameters: 987 | - q 988 | - search 989 | domains: 990 | - search.excite.it 991 | - search.excite.fr 992 | - search.excite.de 993 | - search.excite.co.uk 994 | - serach.excite.es 995 | - search.excite.nl 996 | - msxml.excite.com 997 | - www.excite.co.jp 998 | 999 | Exalead: 1000 | parameters: 1001 | - q 1002 | domains: 1003 | - www.exalead.fr 1004 | - www.exalead.com 1005 | 1006 | eo: 1007 | parameters: 1008 | - x_query 1009 | domains: 1010 | - eo.st 1011 | 1012 | Fast Browser Search: 1013 | parameters: 1014 | - q 1015 | domains: 1016 | - www.fastbrowsersearch.com 1017 | 1018 | Francite: 1019 | parameters: 1020 | - name 1021 | domains: 1022 | - recherche.francite.com 1023 | 1024 | Finderoo: 1025 | parameters: 1026 | - q 1027 | domains: 1028 | - www.finderoo.com 1029 | 1030 | Findwide: 1031 | parameters: 1032 | - k 1033 | domains: 1034 | - search.findwide.com 1035 | 1036 | Fireball: 1037 | parameters: 1038 | - q 1039 | domains: 1040 | - www.fireball.de 1041 | 1042 | Firstfind: 1043 | parameters: 1044 | - qry 1045 | domains: 1046 | - www.firstsfind.com 1047 | 1048 | Fixsuche: 1049 | parameters: 1050 | - q 1051 | domains: 1052 | - www.fixsuche.de 1053 | 1054 | Flix: 1055 | parameters: 1056 | - keyword 1057 | domains: 1058 | - www.flix.de 1059 | 1060 | Forestle: 1061 | parameters: 1062 | - q 1063 | domains: 1064 | - forestle.org 1065 | - www.forestle.org 1066 | - forestle.mobi 1067 | 1068 | Free: 1069 | parameters: 1070 | - q 1071 | domains: 1072 | - search.free.fr 1073 | - search1-2.free.fr 1074 | - search1-1.free.fr 1075 | 1076 | Freecause: 1077 | parameters: 1078 | - p 1079 | domains: 1080 | - search.freecause.com 1081 | 1082 | Freenet: 1083 | parameters: 1084 | - query 1085 | - Keywords 1086 | domains: 1087 | - suche.freenet.de 1088 | 1089 | Freshweather: 1090 | parameters: 1091 | - q 1092 | domains: 1093 | - www.fresh-weather.com 1094 | 1095 | FriendFeed: 1096 | parameters: 1097 | - q 1098 | domains: 1099 | - friendfeed.com 1100 | 1101 | GAIS: 1102 | parameters: 1103 | - q 1104 | domains: 1105 | - gais.cs.ccu.edu.tw 1106 | 1107 | Geona: 1108 | parameters: 1109 | - q 1110 | domains: 1111 | - geona.net 1112 | 1113 | Genieo: 1114 | parameters: 1115 | - q 1116 | domains: 1117 | - search.genieo.com 1118 | 1119 | Gigablast: 1120 | parameters: 1121 | - q 1122 | domains: 1123 | - www.gigablast.com 1124 | - dir.gigablast.com 1125 | 1126 | Globososo: 1127 | parameters: 1128 | - q 1129 | domains: 1130 | - searches.globososo.com 1131 | - search.globososo.com 1132 | 1133 | GMX: 1134 | parameters: 1135 | - su 1136 | domains: 1137 | - suche.gmx.net 1138 | 1139 | Gnadenmeer: 1140 | parameters: 1141 | - keyword 1142 | domains: 1143 | - www.gnadenmeer.de 1144 | 1145 | Gomeo: 1146 | parameters: 1147 | - Keywords 1148 | domains: 1149 | - www.gomeo.com 1150 | 1151 | goo: 1152 | parameters: 1153 | - MT 1154 | domains: 1155 | - search.goo.ne.jp 1156 | - ocnsearch.goo.ne.jp 1157 | 1158 | Google: 1159 | parameters: 1160 | - q 1161 | - query # For www.cnn.com (powered by Google) 1162 | - Keywords # For gooofullsearch.com (powered by Google) 1163 | domains: 1164 | - www.google.com 1165 | - www.google.ac 1166 | - www.google.ad 1167 | - www.google.com.af 1168 | - www.google.com.ag 1169 | - www.google.com.ai 1170 | - www.google.am 1171 | - www.google.it.ao 1172 | - www.google.com.ar 1173 | - www.google.as 1174 | - www.google.at 1175 | - www.google.com.au 1176 | - www.google.az 1177 | - www.google.ba 1178 | - www.google.com.bd 1179 | - www.google.be 1180 | - www.google.bf 1181 | - www.google.bg 1182 | - www.google.com.bh 1183 | - www.google.bi 1184 | - www.google.bj 1185 | - www.google.com.bn 1186 | - www.google.com.bo 1187 | - www.google.com.br 1188 | - www.google.bs 1189 | - www.google.co.bw 1190 | - www.google.com.by 1191 | - www.google.by 1192 | - www.google.com.bz 1193 | - www.google.ca 1194 | - www.google.com.kh 1195 | - www.google.cc 1196 | - www.google.cd 1197 | - www.google.cf 1198 | - www.google.cat 1199 | - www.google.cg 1200 | - www.google.ch 1201 | - www.google.ci 1202 | - www.google.co.ck 1203 | - www.google.cl 1204 | - www.google.cm 1205 | - www.google.cn 1206 | - www.google.com.co 1207 | - www.google.co.cr 1208 | - www.google.com.cu 1209 | - www.google.cv 1210 | - www.google.com.cy 1211 | - www.google.cz 1212 | - www.google.de 1213 | - www.google.dj 1214 | - www.google.dk 1215 | - www.google.dm 1216 | - www.google.com.do 1217 | - www.google.dz 1218 | - www.google.com.ec 1219 | - www.google.ee 1220 | - www.google.com.eg 1221 | - www.google.es 1222 | - www.google.com.et 1223 | - www.google.fi 1224 | - www.google.com.fj 1225 | - www.google.fm 1226 | - www.google.fr 1227 | - www.google.ga 1228 | - www.google.gd 1229 | - www.google.ge 1230 | - www.google.gf 1231 | - www.google.gg 1232 | - www.google.com.gh 1233 | - www.google.com.gi 1234 | - www.google.gl 1235 | - www.google.gm 1236 | - www.google.gp 1237 | - www.google.gr 1238 | - www.google.com.gt 1239 | - www.google.gy 1240 | - www.google.com.hk 1241 | - www.google.hn 1242 | - www.google.hr 1243 | - www.google.ht 1244 | - www.google.hu 1245 | - www.google.co.id 1246 | - www.google.iq 1247 | - www.google.ie 1248 | - www.google.co.il 1249 | - www.google.im 1250 | - www.google.co.in 1251 | - www.google.io 1252 | - www.google.is 1253 | - www.google.it 1254 | - www.google.je 1255 | - www.google.com.jm 1256 | - www.google.jo 1257 | - www.google.co.jp 1258 | - www.google.co.ke 1259 | - www.google.ki 1260 | - www.google.kg 1261 | - www.google.co.kr 1262 | - www.google.com.kw 1263 | - www.google.kz 1264 | - www.google.la 1265 | - www.google.com.lb 1266 | - www.google.com.lc 1267 | - www.google.li 1268 | - www.google.lk 1269 | - www.google.co.ls 1270 | - www.google.lt 1271 | - www.google.lu 1272 | - www.google.lv 1273 | - www.google.com.ly 1274 | - www.google.co.ma 1275 | - www.google.md 1276 | - www.google.me 1277 | - www.google.mg 1278 | - www.google.mk 1279 | - www.google.ml 1280 | - www.google.mn 1281 | - www.google.ms 1282 | - www.google.com.mt 1283 | - www.google.mu 1284 | - www.google.mv 1285 | - www.google.mw 1286 | - www.google.com.mx 1287 | - www.google.com.my 1288 | - www.google.co.mz 1289 | - www.google.com.na 1290 | - www.google.ne 1291 | - www.google.com.nf 1292 | - www.google.com.ng 1293 | - www.google.com.ni 1294 | - www.google.nl 1295 | - www.google.no 1296 | - www.google.com.np 1297 | - www.google.nr 1298 | - www.google.nu 1299 | - www.google.co.nz 1300 | - www.google.com.om 1301 | - www.google.com.pa 1302 | - www.google.com.pe 1303 | - www.google.com.ph 1304 | - www.google.com.pk 1305 | - www.google.pl 1306 | - www.google.pn 1307 | - www.google.com.pr 1308 | - www.google.ps 1309 | - www.google.pt 1310 | - www.google.com.py 1311 | - www.google.com.qa 1312 | - www.google.ro 1313 | - www.google.rs 1314 | - www.google.ru 1315 | - www.google.rw 1316 | - www.google.com.sa 1317 | - www.google.com.sb 1318 | - www.google.sc 1319 | - www.google.se 1320 | - www.google.com.sg 1321 | - www.google.sh 1322 | - www.google.si 1323 | - www.google.sk 1324 | - www.google.com.sl 1325 | - www.google.sn 1326 | - www.google.sm 1327 | - www.google.so 1328 | - www.google.st 1329 | - www.google.com.sv 1330 | - www.google.td 1331 | - www.google.tg 1332 | - www.google.co.th 1333 | - www.google.com.tj 1334 | - www.google.tk 1335 | - www.google.tl 1336 | - www.google.tm 1337 | - www.google.to 1338 | - www.google.com.tn 1339 | - www.google.tn 1340 | - www.google.com.tr 1341 | - www.google.tt 1342 | - www.google.com.tw 1343 | - www.google.co.tz 1344 | - www.google.com.ua 1345 | - www.google.co.ug 1346 | - www.google.ae 1347 | - www.google.co.uk 1348 | - www.google.us 1349 | - www.google.com.uy 1350 | - www.google.co.uz 1351 | - www.google.com.vc 1352 | - www.google.co.ve 1353 | - www.google.vg 1354 | - www.google.co.vi 1355 | - www.google.com.vn 1356 | - www.google.vu 1357 | - www.google.ws 1358 | - www.google.co.za 1359 | - www.google.co.zm 1360 | - www.google.co.zw 1361 | - google.com 1362 | - google.ac 1363 | - google.ad 1364 | - google.com.af 1365 | - google.com.ag 1366 | - google.com.ai 1367 | - google.am 1368 | - google.it.ao 1369 | - google.com.ar 1370 | - google.as 1371 | - google.at 1372 | - google.com.au 1373 | - google.az 1374 | - google.ba 1375 | - google.com.bd 1376 | - google.be 1377 | - google.bf 1378 | - google.bg 1379 | - google.com.bh 1380 | - google.bi 1381 | - google.bj 1382 | - google.com.bn 1383 | - google.com.bo 1384 | - google.com.br 1385 | - google.bs 1386 | - google.co.bw 1387 | - google.com.by 1388 | - google.by 1389 | - google.com.bz 1390 | - google.ca 1391 | - google.com.kh 1392 | - google.cc 1393 | - google.cd 1394 | - google.cf 1395 | - google.cat 1396 | - google.cg 1397 | - google.ch 1398 | - google.ci 1399 | - google.co.ck 1400 | - google.cl 1401 | - google.cm 1402 | - google.cn 1403 | - google.com.co 1404 | - google.co.cr 1405 | - google.com.cu 1406 | - google.cv 1407 | - google.com.cy 1408 | - google.cz 1409 | - google.de 1410 | - google.dj 1411 | - google.dk 1412 | - google.dm 1413 | - google.com.do 1414 | - google.dz 1415 | - google.com.ec 1416 | - google.ee 1417 | - google.com.eg 1418 | - google.es 1419 | - google.com.et 1420 | - google.fi 1421 | - google.com.fj 1422 | - google.fm 1423 | - google.fr 1424 | - google.ga 1425 | - google.gd 1426 | - google.ge 1427 | - google.gf 1428 | - google.gg 1429 | - google.com.gh 1430 | - google.com.gi 1431 | - google.gl 1432 | - google.gm 1433 | - google.gp 1434 | - google.gr 1435 | - google.com.gt 1436 | - google.gy 1437 | - google.com.hk 1438 | - google.hn 1439 | - google.hr 1440 | - google.ht 1441 | - google.hu 1442 | - google.co.id 1443 | - google.iq 1444 | - google.ie 1445 | - google.co.il 1446 | - google.im 1447 | - google.co.in 1448 | - google.io 1449 | - google.is 1450 | - google.it 1451 | - google.je 1452 | - google.com.jm 1453 | - google.jo 1454 | - google.co.jp 1455 | - google.co.ke 1456 | - google.ki 1457 | - google.kg 1458 | - google.co.kr 1459 | - google.com.kw 1460 | - google.kz 1461 | - google.la 1462 | - google.com.lb 1463 | - google.com.lc 1464 | - google.li 1465 | - google.lk 1466 | - google.co.ls 1467 | - google.lt 1468 | - google.lu 1469 | - google.lv 1470 | - google.com.ly 1471 | - google.co.ma 1472 | - google.md 1473 | - google.me 1474 | - google.mg 1475 | - google.mk 1476 | - google.ml 1477 | - google.mn 1478 | - google.ms 1479 | - google.com.mt 1480 | - google.mu 1481 | - google.mv 1482 | - google.mw 1483 | - google.com.mx 1484 | - google.com.my 1485 | - google.co.mz 1486 | - google.com.na 1487 | - google.ne 1488 | - google.com.nf 1489 | - google.com.ng 1490 | - google.com.ni 1491 | - google.nl 1492 | - google.no 1493 | - google.com.np 1494 | - google.nr 1495 | - google.nu 1496 | - google.co.nz 1497 | - google.com.om 1498 | - google.com.pa 1499 | - google.com.pe 1500 | - google.com.ph 1501 | - google.com.pk 1502 | - google.pl 1503 | - google.pn 1504 | - google.com.pr 1505 | - google.ps 1506 | - google.pt 1507 | - google.com.py 1508 | - google.com.qa 1509 | - google.ro 1510 | - google.rs 1511 | - google.ru 1512 | - google.rw 1513 | - google.com.sa 1514 | - google.com.sb 1515 | - google.sc 1516 | - google.se 1517 | - google.com.sg 1518 | - google.sh 1519 | - google.si 1520 | - google.sk 1521 | - google.com.sl 1522 | - google.sn 1523 | - google.sm 1524 | - google.so 1525 | - google.st 1526 | - google.com.sv 1527 | - google.td 1528 | - google.tg 1529 | - google.co.th 1530 | - google.com.tj 1531 | - google.tk 1532 | - google.tl 1533 | - google.tm 1534 | - google.to 1535 | - google.com.tn 1536 | - google.com.tr 1537 | - google.tt 1538 | - google.com.tw 1539 | - google.co.tz 1540 | - google.com.ua 1541 | - google.co.ug 1542 | - google.ae 1543 | - google.co.uk 1544 | - google.us 1545 | - google.com.uy 1546 | - google.co.uz 1547 | - google.com.vc 1548 | - google.co.ve 1549 | - google.vg 1550 | - google.co.vi 1551 | - google.com.vn 1552 | - google.vu 1553 | - google.ws 1554 | - google.co.za 1555 | - google.co.zm 1556 | - google.co.zw 1557 | - google.tn 1558 | # powered by Google 1559 | - search.avg.com 1560 | - isearch.avg.com 1561 | - www.cnn.com 1562 | - darkoogle.com 1563 | - search.darkoogle.com 1564 | - search.foxtab.com 1565 | - www.gooofullsearch.com 1566 | - search.hiyo.com 1567 | - search.incredimail.com 1568 | - search1.incredimail.com 1569 | - search2.incredimail.com 1570 | - search3.incredimail.com 1571 | - search4.incredimail.com 1572 | - search.incredibar.com 1573 | - search.sweetim.com 1574 | - www.fastweb.it 1575 | - search.juno.com 1576 | - find.tdc.dk 1577 | - searchresults.verizon.com 1578 | - search.walla.co.il 1579 | - search.alot.com 1580 | # Google Earch 1581 | - www.googleearth.de 1582 | - www.googleearth.fr 1583 | # Google Cache 1584 | - webcache.googleusercontent.com 1585 | # Google SSL 1586 | - encrypted.google.com 1587 | # Syndicated search 1588 | - googlesyndicatedsearch.com 1589 | 1590 | Google Blogsearch: 1591 | parameters: 1592 | - q 1593 | domains: 1594 | - blogsearch.google.ac 1595 | - blogsearch.google.ad 1596 | - blogsearch.google.ae 1597 | - blogsearch.google.am 1598 | - blogsearch.google.as 1599 | - blogsearch.google.at 1600 | - blogsearch.google.az 1601 | - blogsearch.google.ba 1602 | - blogsearch.google.be 1603 | - blogsearch.google.bf 1604 | - blogsearch.google.bg 1605 | - blogsearch.google.bi 1606 | - blogsearch.google.bj 1607 | - blogsearch.google.bs 1608 | - blogsearch.google.by 1609 | - blogsearch.google.ca 1610 | - blogsearch.google.cat 1611 | - blogsearch.google.cc 1612 | - blogsearch.google.cd 1613 | - blogsearch.google.cf 1614 | - blogsearch.google.cg 1615 | - blogsearch.google.ch 1616 | - blogsearch.google.ci 1617 | - blogsearch.google.cl 1618 | - blogsearch.google.cm 1619 | - blogsearch.google.cn 1620 | - blogsearch.google.co.bw 1621 | - blogsearch.google.co.ck 1622 | - blogsearch.google.co.cr 1623 | - blogsearch.google.co.id 1624 | - blogsearch.google.co.il 1625 | - blogsearch.google.co.in 1626 | - blogsearch.google.co.jp 1627 | - blogsearch.google.co.ke 1628 | - blogsearch.google.co.kr 1629 | - blogsearch.google.co.ls 1630 | - blogsearch.google.co.ma 1631 | - blogsearch.google.co.mz 1632 | - blogsearch.google.co.nz 1633 | - blogsearch.google.co.th 1634 | - blogsearch.google.co.tz 1635 | - blogsearch.google.co.ug 1636 | - blogsearch.google.co.uk 1637 | - blogsearch.google.co.uz 1638 | - blogsearch.google.co.ve 1639 | - blogsearch.google.co.vi 1640 | - blogsearch.google.co.za 1641 | - blogsearch.google.co.zm 1642 | - blogsearch.google.co.zw 1643 | - blogsearch.google.com 1644 | - blogsearch.google.com.af 1645 | - blogsearch.google.com.ag 1646 | - blogsearch.google.com.ai 1647 | - blogsearch.google.com.ar 1648 | - blogsearch.google.com.au 1649 | - blogsearch.google.com.bd 1650 | - blogsearch.google.com.bh 1651 | - blogsearch.google.com.bn 1652 | - blogsearch.google.com.bo 1653 | - blogsearch.google.com.br 1654 | - blogsearch.google.com.by 1655 | - blogsearch.google.com.bz 1656 | - blogsearch.google.com.co 1657 | - blogsearch.google.com.cu 1658 | - blogsearch.google.com.cy 1659 | - blogsearch.google.com.do 1660 | - blogsearch.google.com.ec 1661 | - blogsearch.google.com.eg 1662 | - blogsearch.google.com.et 1663 | - blogsearch.google.com.fj 1664 | - blogsearch.google.com.gh 1665 | - blogsearch.google.com.gi 1666 | - blogsearch.google.com.gt 1667 | - blogsearch.google.com.hk 1668 | - blogsearch.google.com.jm 1669 | - blogsearch.google.com.kh 1670 | - blogsearch.google.com.kw 1671 | - blogsearch.google.com.lb 1672 | - blogsearch.google.com.lc 1673 | - blogsearch.google.com.ly 1674 | - blogsearch.google.com.mt 1675 | - blogsearch.google.com.mx 1676 | - blogsearch.google.com.my 1677 | - blogsearch.google.com.na 1678 | - blogsearch.google.com.nf 1679 | - blogsearch.google.com.ng 1680 | - blogsearch.google.com.ni 1681 | - blogsearch.google.com.np 1682 | - blogsearch.google.com.om 1683 | - blogsearch.google.com.pa 1684 | - blogsearch.google.com.pe 1685 | - blogsearch.google.com.ph 1686 | - blogsearch.google.com.pk 1687 | - blogsearch.google.com.pr 1688 | - blogsearch.google.com.py 1689 | - blogsearch.google.com.qa 1690 | - blogsearch.google.com.sa 1691 | - blogsearch.google.com.sb 1692 | - blogsearch.google.com.sg 1693 | - blogsearch.google.com.sl 1694 | - blogsearch.google.com.sv 1695 | - blogsearch.google.com.tj 1696 | - blogsearch.google.com.tn 1697 | - blogsearch.google.com.tr 1698 | - blogsearch.google.com.tw 1699 | - blogsearch.google.com.ua 1700 | - blogsearch.google.com.uy 1701 | - blogsearch.google.com.vc 1702 | - blogsearch.google.com.vn 1703 | - blogsearch.google.cv 1704 | - blogsearch.google.cz 1705 | - blogsearch.google.de 1706 | - blogsearch.google.dj 1707 | - blogsearch.google.dk 1708 | - blogsearch.google.dm 1709 | - blogsearch.google.dz 1710 | - blogsearch.google.ee 1711 | - blogsearch.google.es 1712 | - blogsearch.google.fi 1713 | - blogsearch.google.fm 1714 | - blogsearch.google.fr 1715 | - blogsearch.google.ga 1716 | - blogsearch.google.gd 1717 | - blogsearch.google.ge 1718 | - blogsearch.google.gf 1719 | - blogsearch.google.gg 1720 | - blogsearch.google.gl 1721 | - blogsearch.google.gm 1722 | - blogsearch.google.gp 1723 | - blogsearch.google.gr 1724 | - blogsearch.google.gy 1725 | - blogsearch.google.hn 1726 | - blogsearch.google.hr 1727 | - blogsearch.google.ht 1728 | - blogsearch.google.hu 1729 | - blogsearch.google.ie 1730 | - blogsearch.google.im 1731 | - blogsearch.google.io 1732 | - blogsearch.google.iq 1733 | - blogsearch.google.is 1734 | - blogsearch.google.it 1735 | - blogsearch.google.it.ao 1736 | - blogsearch.google.je 1737 | - blogsearch.google.jo 1738 | - blogsearch.google.kg 1739 | - blogsearch.google.ki 1740 | - blogsearch.google.kz 1741 | - blogsearch.google.la 1742 | - blogsearch.google.li 1743 | - blogsearch.google.lk 1744 | - blogsearch.google.lt 1745 | - blogsearch.google.lu 1746 | - blogsearch.google.lv 1747 | - blogsearch.google.md 1748 | - blogsearch.google.me 1749 | - blogsearch.google.mg 1750 | - blogsearch.google.mk 1751 | - blogsearch.google.ml 1752 | - blogsearch.google.mn 1753 | - blogsearch.google.ms 1754 | - blogsearch.google.mu 1755 | - blogsearch.google.mv 1756 | - blogsearch.google.mw 1757 | - blogsearch.google.ne 1758 | - blogsearch.google.nl 1759 | - blogsearch.google.no 1760 | - blogsearch.google.nr 1761 | - blogsearch.google.nu 1762 | - blogsearch.google.pl 1763 | - blogsearch.google.pn 1764 | - blogsearch.google.ps 1765 | - blogsearch.google.pt 1766 | - blogsearch.google.ro 1767 | - blogsearch.google.rs 1768 | - blogsearch.google.ru 1769 | - blogsearch.google.rw 1770 | - blogsearch.google.sc 1771 | - blogsearch.google.se 1772 | - blogsearch.google.sh 1773 | - blogsearch.google.si 1774 | - blogsearch.google.sk 1775 | - blogsearch.google.sm 1776 | - blogsearch.google.sn 1777 | - blogsearch.google.so 1778 | - blogsearch.google.st 1779 | - blogsearch.google.td 1780 | - blogsearch.google.tg 1781 | - blogsearch.google.tk 1782 | - blogsearch.google.tl 1783 | - blogsearch.google.tm 1784 | - blogsearch.google.to 1785 | - blogsearch.google.tt 1786 | - blogsearch.google.us 1787 | - blogsearch.google.vg 1788 | - blogsearch.google.vu 1789 | - blogsearch.google.ws 1790 | 1791 | Google Images: 1792 | parameters: 1793 | - q 1794 | domains: 1795 | - google.ac/imgres 1796 | - google.ad/imgres 1797 | - google.ae/imgres 1798 | - google.am/imgres 1799 | - google.as/imgres 1800 | - google.at/imgres 1801 | - google.az/imgres 1802 | - google.ba/imgres 1803 | - google.be/imgres 1804 | - google.bf/imgres 1805 | - google.bg/imgres 1806 | - google.bi/imgres 1807 | - google.bj/imgres 1808 | - google.bs/imgres 1809 | - google.by/imgres 1810 | - google.ca/imgres 1811 | - google.cat/imgres 1812 | - google.cc/imgres 1813 | - google.cd/imgres 1814 | - google.cf/imgres 1815 | - google.cg/imgres 1816 | - google.ch/imgres 1817 | - google.ci/imgres 1818 | - google.cl/imgres 1819 | - google.cm/imgres 1820 | - google.cn/imgres 1821 | - google.co.bw/imgres 1822 | - google.co.ck/imgres 1823 | - google.co.cr/imgres 1824 | - google.co.id/imgres 1825 | - google.co.il/imgres 1826 | - google.co.in/imgres 1827 | - google.co.jp/imgres 1828 | - google.co.ke/imgres 1829 | - google.co.kr/imgres 1830 | - google.co.ls/imgres 1831 | - google.co.ma/imgres 1832 | - google.co.mz/imgres 1833 | - google.co.nz/imgres 1834 | - google.co.th/imgres 1835 | - google.co.tz/imgres 1836 | - google.co.ug/imgres 1837 | - google.co.uk/imgres 1838 | - google.co.uz/imgres 1839 | - google.co.ve/imgres 1840 | - google.co.vi/imgres 1841 | - google.co.za/imgres 1842 | - google.co.zm/imgres 1843 | - google.co.zw/imgres 1844 | - google.com/imgres 1845 | - google.com.af/imgres 1846 | - google.com.ag/imgres 1847 | - google.com.ai/imgres 1848 | - google.com.ar/imgres 1849 | - google.com.au/imgres 1850 | - google.com.bd/imgres 1851 | - google.com.bh/imgres 1852 | - google.com.bn/imgres 1853 | - google.com.bo/imgres 1854 | - google.com.br/imgres 1855 | - google.com.by/imgres 1856 | - google.com.bz/imgres 1857 | - google.com.co/imgres 1858 | - google.com.cu/imgres 1859 | - google.com.cy/imgres 1860 | - google.com.do/imgres 1861 | - google.com.ec/imgres 1862 | - google.com.eg/imgres 1863 | - google.com.et/imgres 1864 | - google.com.fj/imgres 1865 | - google.com.gh/imgres 1866 | - google.com.gi/imgres 1867 | - google.com.gt/imgres 1868 | - google.com.hk/imgres 1869 | - google.com.jm/imgres 1870 | - google.com.kh/imgres 1871 | - google.com.kw/imgres 1872 | - google.com.lb/imgres 1873 | - google.com.lc/imgres 1874 | - google.com.ly/imgres 1875 | - google.com.mt/imgres 1876 | - google.com.mx/imgres 1877 | - google.com.my/imgres 1878 | - google.com.na/imgres 1879 | - google.com.nf/imgres 1880 | - google.com.ng/imgres 1881 | - google.com.ni/imgres 1882 | - google.com.np/imgres 1883 | - google.com.om/imgres 1884 | - google.com.pa/imgres 1885 | - google.com.pe/imgres 1886 | - google.com.ph/imgres 1887 | - google.com.pk/imgres 1888 | - google.com.pr/imgres 1889 | - google.com.py/imgres 1890 | - google.com.qa/imgres 1891 | - google.com.sa/imgres 1892 | - google.com.sb/imgres 1893 | - google.com.sg/imgres 1894 | - google.com.sl/imgres 1895 | - google.com.sv/imgres 1896 | - google.com.tj/imgres 1897 | - google.com.tn/imgres 1898 | - google.com.tr/imgres 1899 | - google.com.tw/imgres 1900 | - google.com.ua/imgres 1901 | - google.com.uy/imgres 1902 | - google.com.vc/imgres 1903 | - google.com.vn/imgres 1904 | - google.cv/imgres 1905 | - google.cz/imgres 1906 | - google.de/imgres 1907 | - google.dj/imgres 1908 | - google.dk/imgres 1909 | - google.dm/imgres 1910 | - google.dz/imgres 1911 | - google.ee/imgres 1912 | - google.es/imgres 1913 | - google.fi/imgres 1914 | - google.fm/imgres 1915 | - google.fr/imgres 1916 | - google.ga/imgres 1917 | - google.gd/imgres 1918 | - google.ge/imgres 1919 | - google.gf/imgres 1920 | - google.gg/imgres 1921 | - google.gl/imgres 1922 | - google.gm/imgres 1923 | - google.gp/imgres 1924 | - google.gr/imgres 1925 | - google.gy/imgres 1926 | - google.hn/imgres 1927 | - google.hr/imgres 1928 | - google.ht/imgres 1929 | - google.hu/imgres 1930 | - google.ie/imgres 1931 | - google.im/imgres 1932 | - google.io/imgres 1933 | - google.iq/imgres 1934 | - google.is/imgres 1935 | - google.it/imgres 1936 | - google.it.ao/imgres 1937 | - google.je/imgres 1938 | - google.jo/imgres 1939 | - google.kg/imgres 1940 | - google.ki/imgres 1941 | - google.kz/imgres 1942 | - google.la/imgres 1943 | - google.li/imgres 1944 | - google.lk/imgres 1945 | - google.lt/imgres 1946 | - google.lu/imgres 1947 | - google.lv/imgres 1948 | - google.md/imgres 1949 | - google.me/imgres 1950 | - google.mg/imgres 1951 | - google.mk/imgres 1952 | - google.ml/imgres 1953 | - google.mn/imgres 1954 | - google.ms/imgres 1955 | - google.mu/imgres 1956 | - google.mv/imgres 1957 | - google.mw/imgres 1958 | - google.ne/imgres 1959 | - google.nl/imgres 1960 | - google.no/imgres 1961 | - google.nr/imgres 1962 | - google.nu/imgres 1963 | - google.pl/imgres 1964 | - google.pn/imgres 1965 | - google.ps/imgres 1966 | - google.pt/imgres 1967 | - google.ro/imgres 1968 | - google.rs/imgres 1969 | - google.ru/imgres 1970 | - google.rw/imgres 1971 | - google.sc/imgres 1972 | - google.se/imgres 1973 | - google.sh/imgres 1974 | - google.si/imgres 1975 | - google.sk/imgres 1976 | - google.sm/imgres 1977 | - google.sn/imgres 1978 | - google.so/imgres 1979 | - google.st/imgres 1980 | - google.td/imgres 1981 | - google.tg/imgres 1982 | - google.tk/imgres 1983 | - google.tl/imgres 1984 | - google.tm/imgres 1985 | - google.to/imgres 1986 | - google.tt/imgres 1987 | - google.us/imgres 1988 | - google.vg/imgres 1989 | - google.vu/imgres 1990 | - images.google.ws 1991 | - images.google.ac 1992 | - images.google.ad 1993 | - images.google.ae 1994 | - images.google.am 1995 | - images.google.as 1996 | - images.google.at 1997 | - images.google.az 1998 | - images.google.ba 1999 | - images.google.be 2000 | - images.google.bf 2001 | - images.google.bg 2002 | - images.google.bi 2003 | - images.google.bj 2004 | - images.google.bs 2005 | - images.google.by 2006 | - images.google.ca 2007 | - images.google.cat 2008 | - images.google.cc 2009 | - images.google.cd 2010 | - images.google.cf 2011 | - images.google.cg 2012 | - images.google.ch 2013 | - images.google.ci 2014 | - images.google.cl 2015 | - images.google.cm 2016 | - images.google.cn 2017 | - images.google.co.bw 2018 | - images.google.co.ck 2019 | - images.google.co.cr 2020 | - images.google.co.id 2021 | - images.google.co.il 2022 | - images.google.co.in 2023 | - images.google.co.jp 2024 | - images.google.co.ke 2025 | - images.google.co.kr 2026 | - images.google.co.ls 2027 | - images.google.co.ma 2028 | - images.google.co.mz 2029 | - images.google.co.nz 2030 | - images.google.co.th 2031 | - images.google.co.tz 2032 | - images.google.co.ug 2033 | - images.google.co.uk 2034 | - images.google.co.uz 2035 | - images.google.co.ve 2036 | - images.google.co.vi 2037 | - images.google.co.za 2038 | - images.google.co.zm 2039 | - images.google.co.zw 2040 | - images.google.com 2041 | - images.google.com.af 2042 | - images.google.com.ag 2043 | - images.google.com.ai 2044 | - images.google.com.ar 2045 | - images.google.com.au 2046 | - images.google.com.bd 2047 | - images.google.com.bh 2048 | - images.google.com.bn 2049 | - images.google.com.bo 2050 | - images.google.com.br 2051 | - images.google.com.by 2052 | - images.google.com.bz 2053 | - images.google.com.co 2054 | - images.google.com.cu 2055 | - images.google.com.cy 2056 | - images.google.com.do 2057 | - images.google.com.ec 2058 | - images.google.com.eg 2059 | - images.google.com.et 2060 | - images.google.com.fj 2061 | - images.google.com.gh 2062 | - images.google.com.gi 2063 | - images.google.com.gt 2064 | - images.google.com.hk 2065 | - images.google.com.jm 2066 | - images.google.com.kh 2067 | - images.google.com.kw 2068 | - images.google.com.lb 2069 | - images.google.com.lc 2070 | - images.google.com.ly 2071 | - images.google.com.mt 2072 | - images.google.com.mx 2073 | - images.google.com.my 2074 | - images.google.com.na 2075 | - images.google.com.nf 2076 | - images.google.com.ng 2077 | - images.google.com.ni 2078 | - images.google.com.np 2079 | - images.google.com.om 2080 | - images.google.com.pa 2081 | - images.google.com.pe 2082 | - images.google.com.ph 2083 | - images.google.com.pk 2084 | - images.google.com.pr 2085 | - images.google.com.py 2086 | - images.google.com.qa 2087 | - images.google.com.sa 2088 | - images.google.com.sb 2089 | - images.google.com.sg 2090 | - images.google.com.sl 2091 | - images.google.com.sv 2092 | - images.google.com.tj 2093 | - images.google.com.tn 2094 | - images.google.com.tr 2095 | - images.google.com.tw 2096 | - images.google.com.ua 2097 | - images.google.com.uy 2098 | - images.google.com.vc 2099 | - images.google.com.vn 2100 | - images.google.cv 2101 | - images.google.cz 2102 | - images.google.de 2103 | - images.google.dj 2104 | - images.google.dk 2105 | - images.google.dm 2106 | - images.google.dz 2107 | - images.google.ee 2108 | - images.google.es 2109 | - images.google.fi 2110 | - images.google.fm 2111 | - images.google.fr 2112 | - images.google.ga 2113 | - images.google.gd 2114 | - images.google.ge 2115 | - images.google.gf 2116 | - images.google.gg 2117 | - images.google.gl 2118 | - images.google.gm 2119 | - images.google.gp 2120 | - images.google.gr 2121 | - images.google.gy 2122 | - images.google.hn 2123 | - images.google.hr 2124 | - images.google.ht 2125 | - images.google.hu 2126 | - images.google.ie 2127 | - images.google.im 2128 | - images.google.io 2129 | - images.google.iq 2130 | - images.google.is 2131 | - images.google.it 2132 | - images.google.it.ao 2133 | - images.google.je 2134 | - images.google.jo 2135 | - images.google.kg 2136 | - images.google.ki 2137 | - images.google.kz 2138 | - images.google.la 2139 | - images.google.li 2140 | - images.google.lk 2141 | - images.google.lt 2142 | - images.google.lu 2143 | - images.google.lv 2144 | - images.google.md 2145 | - images.google.me 2146 | - images.google.mg 2147 | - images.google.mk 2148 | - images.google.ml 2149 | - images.google.mn 2150 | - images.google.ms 2151 | - images.google.mu 2152 | - images.google.mv 2153 | - images.google.mw 2154 | - images.google.ne 2155 | - images.google.nl 2156 | - images.google.no 2157 | - images.google.nr 2158 | - images.google.nu 2159 | - images.google.pl 2160 | - images.google.pn 2161 | - images.google.ps 2162 | - images.google.pt 2163 | - images.google.ro 2164 | - images.google.rs 2165 | - images.google.ru 2166 | - images.google.rw 2167 | - images.google.sc 2168 | - images.google.se 2169 | - images.google.sh 2170 | - images.google.si 2171 | - images.google.sk 2172 | - images.google.sm 2173 | - images.google.sn 2174 | - images.google.so 2175 | - images.google.st 2176 | - images.google.td 2177 | - images.google.tg 2178 | - images.google.tk 2179 | - images.google.tl 2180 | - images.google.tm 2181 | - images.google.to 2182 | - images.google.tt 2183 | - images.google.us 2184 | - images.google.vg 2185 | - images.google.vu 2186 | 2187 | Google News: 2188 | parameters: 2189 | - q 2190 | domains: 2191 | - news.google.ac 2192 | - news.google.ad 2193 | - news.google.ae 2194 | - news.google.am 2195 | - news.google.as 2196 | - news.google.at 2197 | - news.google.az 2198 | - news.google.ba 2199 | - news.google.be 2200 | - news.google.bf 2201 | - news.google.bg 2202 | - news.google.bi 2203 | - news.google.bj 2204 | - news.google.bs 2205 | - news.google.by 2206 | - news.google.ca 2207 | - news.google.cat 2208 | - news.google.cc 2209 | - news.google.cd 2210 | - news.google.cf 2211 | - news.google.cg 2212 | - news.google.ch 2213 | - news.google.ci 2214 | - news.google.cl 2215 | - news.google.cm 2216 | - news.google.cn 2217 | - news.google.co.bw 2218 | - news.google.co.ck 2219 | - news.google.co.cr 2220 | - news.google.co.id 2221 | - news.google.co.il 2222 | - news.google.co.in 2223 | - news.google.co.jp 2224 | - news.google.co.ke 2225 | - news.google.co.kr 2226 | - news.google.co.ls 2227 | - news.google.co.ma 2228 | - news.google.co.mz 2229 | - news.google.co.nz 2230 | - news.google.co.th 2231 | - news.google.co.tz 2232 | - news.google.co.ug 2233 | - news.google.co.uk 2234 | - news.google.co.uz 2235 | - news.google.co.ve 2236 | - news.google.co.vi 2237 | - news.google.co.za 2238 | - news.google.co.zm 2239 | - news.google.co.zw 2240 | - news.google.com 2241 | - news.google.com.af 2242 | - news.google.com.ag 2243 | - news.google.com.ai 2244 | - news.google.com.ar 2245 | - news.google.com.au 2246 | - news.google.com.bd 2247 | - news.google.com.bh 2248 | - news.google.com.bn 2249 | - news.google.com.bo 2250 | - news.google.com.br 2251 | - news.google.com.by 2252 | - news.google.com.bz 2253 | - news.google.com.co 2254 | - news.google.com.cu 2255 | - news.google.com.cy 2256 | - news.google.com.do 2257 | - news.google.com.ec 2258 | - news.google.com.eg 2259 | - news.google.com.et 2260 | - news.google.com.fj 2261 | - news.google.com.gh 2262 | - news.google.com.gi 2263 | - news.google.com.gt 2264 | - news.google.com.hk 2265 | - news.google.com.jm 2266 | - news.google.com.kh 2267 | - news.google.com.kw 2268 | - news.google.com.lb 2269 | - news.google.com.lc 2270 | - news.google.com.ly 2271 | - news.google.com.mt 2272 | - news.google.com.mx 2273 | - news.google.com.my 2274 | - news.google.com.na 2275 | - news.google.com.nf 2276 | - news.google.com.ng 2277 | - news.google.com.ni 2278 | - news.google.com.np 2279 | - news.google.com.om 2280 | - news.google.com.pa 2281 | - news.google.com.pe 2282 | - news.google.com.ph 2283 | - news.google.com.pk 2284 | - news.google.com.pr 2285 | - news.google.com.py 2286 | - news.google.com.qa 2287 | - news.google.com.sa 2288 | - news.google.com.sb 2289 | - news.google.com.sg 2290 | - news.google.com.sl 2291 | - news.google.com.sv 2292 | - news.google.com.tj 2293 | - news.google.com.tn 2294 | - news.google.com.tr 2295 | - news.google.com.tw 2296 | - news.google.com.ua 2297 | - news.google.com.uy 2298 | - news.google.com.vc 2299 | - news.google.com.vn 2300 | - news.google.cv 2301 | - news.google.cz 2302 | - news.google.de 2303 | - news.google.dj 2304 | - news.google.dk 2305 | - news.google.dm 2306 | - news.google.dz 2307 | - news.google.ee 2308 | - news.google.es 2309 | - news.google.fi 2310 | - news.google.fm 2311 | - news.google.fr 2312 | - news.google.ga 2313 | - news.google.gd 2314 | - news.google.ge 2315 | - news.google.gf 2316 | - news.google.gg 2317 | - news.google.gl 2318 | - news.google.gm 2319 | - news.google.gp 2320 | - news.google.gr 2321 | - news.google.gy 2322 | - news.google.hn 2323 | - news.google.hr 2324 | - news.google.ht 2325 | - news.google.hu 2326 | - news.google.ie 2327 | - news.google.im 2328 | - news.google.io 2329 | - news.google.iq 2330 | - news.google.is 2331 | - news.google.it 2332 | - news.google.it.ao 2333 | - news.google.je 2334 | - news.google.jo 2335 | - news.google.kg 2336 | - news.google.ki 2337 | - news.google.kz 2338 | - news.google.la 2339 | - news.google.li 2340 | - news.google.lk 2341 | - news.google.lt 2342 | - news.google.lu 2343 | - news.google.lv 2344 | - news.google.md 2345 | - news.google.me 2346 | - news.google.mg 2347 | - news.google.mk 2348 | - news.google.ml 2349 | - news.google.mn 2350 | - news.google.ms 2351 | - news.google.mu 2352 | - news.google.mv 2353 | - news.google.mw 2354 | - news.google.ne 2355 | - news.google.nl 2356 | - news.google.no 2357 | - news.google.nr 2358 | - news.google.nu 2359 | - news.google.pl 2360 | - news.google.pn 2361 | - news.google.ps 2362 | - news.google.pt 2363 | - news.google.ro 2364 | - news.google.rs 2365 | - news.google.ru 2366 | - news.google.rw 2367 | - news.google.sc 2368 | - news.google.se 2369 | - news.google.sh 2370 | - news.google.si 2371 | - news.google.sk 2372 | - news.google.sm 2373 | - news.google.sn 2374 | - news.google.so 2375 | - news.google.st 2376 | - news.google.td 2377 | - news.google.tg 2378 | - news.google.tk 2379 | - news.google.tl 2380 | - news.google.tm 2381 | - news.google.to 2382 | - news.google.tt 2383 | - news.google.us 2384 | - news.google.vg 2385 | - news.google.vu 2386 | - news.google.ws 2387 | 2388 | Google Product Search: 2389 | parameters: 2390 | - q 2391 | domains: 2392 | - google.ac/products 2393 | - google.ad/products 2394 | - google.ae/products 2395 | - google.am/products 2396 | - google.as/products 2397 | - google.at/products 2398 | - google.az/products 2399 | - google.ba/products 2400 | - google.be/products 2401 | - google.bf/products 2402 | - google.bg/products 2403 | - google.bi/products 2404 | - google.bj/products 2405 | - google.bs/products 2406 | - google.by/products 2407 | - google.ca/products 2408 | - google.cat/products 2409 | - google.cc/products 2410 | - google.cd/products 2411 | - google.cf/products 2412 | - google.cg/products 2413 | - google.ch/products 2414 | - google.ci/products 2415 | - google.cl/products 2416 | - google.cm/products 2417 | - google.cn/products 2418 | - google.co.bw/products 2419 | - google.co.ck/products 2420 | - google.co.cr/products 2421 | - google.co.id/products 2422 | - google.co.il/products 2423 | - google.co.in/products 2424 | - google.co.jp/products 2425 | - google.co.ke/products 2426 | - google.co.kr/products 2427 | - google.co.ls/products 2428 | - google.co.ma/products 2429 | - google.co.mz/products 2430 | - google.co.nz/products 2431 | - google.co.th/products 2432 | - google.co.tz/products 2433 | - google.co.ug/products 2434 | - google.co.uk/products 2435 | - google.co.uz/products 2436 | - google.co.ve/products 2437 | - google.co.vi/products 2438 | - google.co.za/products 2439 | - google.co.zm/products 2440 | - google.co.zw/products 2441 | - google.com/products 2442 | - google.com.af/products 2443 | - google.com.ag/products 2444 | - google.com.ai/products 2445 | - google.com.ar/products 2446 | - google.com.au/products 2447 | - google.com.bd/products 2448 | - google.com.bh/products 2449 | - google.com.bn/products 2450 | - google.com.bo/products 2451 | - google.com.br/products 2452 | - google.com.by/products 2453 | - google.com.bz/products 2454 | - google.com.co/products 2455 | - google.com.cu/products 2456 | - google.com.cy/products 2457 | - google.com.do/products 2458 | - google.com.ec/products 2459 | - google.com.eg/products 2460 | - google.com.et/products 2461 | - google.com.fj/products 2462 | - google.com.gh/products 2463 | - google.com.gi/products 2464 | - google.com.gt/products 2465 | - google.com.hk/products 2466 | - google.com.jm/products 2467 | - google.com.kh/products 2468 | - google.com.kw/products 2469 | - google.com.lb/products 2470 | - google.com.lc/products 2471 | - google.com.ly/products 2472 | - google.com.mt/products 2473 | - google.com.mx/products 2474 | - google.com.my/products 2475 | - google.com.na/products 2476 | - google.com.nf/products 2477 | - google.com.ng/products 2478 | - google.com.ni/products 2479 | - google.com.np/products 2480 | - google.com.om/products 2481 | - google.com.pa/products 2482 | - google.com.pe/products 2483 | - google.com.ph/products 2484 | - google.com.pk/products 2485 | - google.com.pr/products 2486 | - google.com.py/products 2487 | - google.com.qa/products 2488 | - google.com.sa/products 2489 | - google.com.sb/products 2490 | - google.com.sg/products 2491 | - google.com.sl/products 2492 | - google.com.sv/products 2493 | - google.com.tj/products 2494 | - google.com.tn/products 2495 | - google.com.tr/products 2496 | - google.com.tw/products 2497 | - google.com.ua/products 2498 | - google.com.uy/products 2499 | - google.com.vc/products 2500 | - google.com.vn/products 2501 | - google.cv/products 2502 | - google.cz/products 2503 | - google.de/products 2504 | - google.dj/products 2505 | - google.dk/products 2506 | - google.dm/products 2507 | - google.dz/products 2508 | - google.ee/products 2509 | - google.es/products 2510 | - google.fi/products 2511 | - google.fm/products 2512 | - google.fr/products 2513 | - google.ga/products 2514 | - google.gd/products 2515 | - google.ge/products 2516 | - google.gf/products 2517 | - google.gg/products 2518 | - google.gl/products 2519 | - google.gm/products 2520 | - google.gp/products 2521 | - google.gr/products 2522 | - google.gy/products 2523 | - google.hn/products 2524 | - google.hr/products 2525 | - google.ht/products 2526 | - google.hu/products 2527 | - google.ie/products 2528 | - google.im/products 2529 | - google.io/products 2530 | - google.iq/products 2531 | - google.is/products 2532 | - google.it/products 2533 | - google.it.ao/products 2534 | - google.je/products 2535 | - google.jo/products 2536 | - google.kg/products 2537 | - google.ki/products 2538 | - google.kz/products 2539 | - google.la/products 2540 | - google.li/products 2541 | - google.lk/products 2542 | - google.lt/products 2543 | - google.lu/products 2544 | - google.lv/products 2545 | - google.md/products 2546 | - google.me/products 2547 | - google.mg/products 2548 | - google.mk/products 2549 | - google.ml/products 2550 | - google.mn/products 2551 | - google.ms/products 2552 | - google.mu/products 2553 | - google.mv/products 2554 | - google.mw/products 2555 | - google.ne/products 2556 | - google.nl/products 2557 | - google.no/products 2558 | - google.nr/products 2559 | - google.nu/products 2560 | - google.pl/products 2561 | - google.pn/products 2562 | - google.ps/products 2563 | - google.pt/products 2564 | - google.ro/products 2565 | - google.rs/products 2566 | - google.ru/products 2567 | - google.rw/products 2568 | - google.sc/products 2569 | - google.se/products 2570 | - google.sh/products 2571 | - google.si/products 2572 | - google.sk/products 2573 | - google.sm/products 2574 | - google.sn/products 2575 | - google.so/products 2576 | - google.st/products 2577 | - google.td/products 2578 | - google.tg/products 2579 | - google.tk/products 2580 | - google.tl/products 2581 | - google.tm/products 2582 | - google.to/products 2583 | - google.tt/products 2584 | - google.us/products 2585 | - google.vg/products 2586 | - google.vu/products 2587 | - google.ws/products 2588 | - www.google.ac/products 2589 | - www.google.ad/products 2590 | - www.google.ae/products 2591 | - www.google.am/products 2592 | - www.google.as/products 2593 | - www.google.at/products 2594 | - www.google.az/products 2595 | - www.google.ba/products 2596 | - www.google.be/products 2597 | - www.google.bf/products 2598 | - www.google.bg/products 2599 | - www.google.bi/products 2600 | - www.google.bj/products 2601 | - www.google.bs/products 2602 | - www.google.by/products 2603 | - www.google.ca/products 2604 | - www.google.cat/products 2605 | - www.google.cc/products 2606 | - www.google.cd/products 2607 | - www.google.cf/products 2608 | - www.google.cg/products 2609 | - www.google.ch/products 2610 | - www.google.ci/products 2611 | - www.google.cl/products 2612 | - www.google.cm/products 2613 | - www.google.cn/products 2614 | - www.google.co.bw/products 2615 | - www.google.co.ck/products 2616 | - www.google.co.cr/products 2617 | - www.google.co.id/products 2618 | - www.google.co.il/products 2619 | - www.google.co.in/products 2620 | - www.google.co.jp/products 2621 | - www.google.co.ke/products 2622 | - www.google.co.kr/products 2623 | - www.google.co.ls/products 2624 | - www.google.co.ma/products 2625 | - www.google.co.mz/products 2626 | - www.google.co.nz/products 2627 | - www.google.co.th/products 2628 | - www.google.co.tz/products 2629 | - www.google.co.ug/products 2630 | - www.google.co.uk/products 2631 | - www.google.co.uz/products 2632 | - www.google.co.ve/products 2633 | - www.google.co.vi/products 2634 | - www.google.co.za/products 2635 | - www.google.co.zm/products 2636 | - www.google.co.zw/products 2637 | - www.google.com/products 2638 | - www.google.com.af/products 2639 | - www.google.com.ag/products 2640 | - www.google.com.ai/products 2641 | - www.google.com.ar/products 2642 | - www.google.com.au/products 2643 | - www.google.com.bd/products 2644 | - www.google.com.bh/products 2645 | - www.google.com.bn/products 2646 | - www.google.com.bo/products 2647 | - www.google.com.br/products 2648 | - www.google.com.by/products 2649 | - www.google.com.bz/products 2650 | - www.google.com.co/products 2651 | - www.google.com.cu/products 2652 | - www.google.com.cy/products 2653 | - www.google.com.do/products 2654 | - www.google.com.ec/products 2655 | - www.google.com.eg/products 2656 | - www.google.com.et/products 2657 | - www.google.com.fj/products 2658 | - www.google.com.gh/products 2659 | - www.google.com.gi/products 2660 | - www.google.com.gt/products 2661 | - www.google.com.hk/products 2662 | - www.google.com.jm/products 2663 | - www.google.com.kh/products 2664 | - www.google.com.kw/products 2665 | - www.google.com.lb/products 2666 | - www.google.com.lc/products 2667 | - www.google.com.ly/products 2668 | - www.google.com.mt/products 2669 | - www.google.com.mx/products 2670 | - www.google.com.my/products 2671 | - www.google.com.na/products 2672 | - www.google.com.nf/products 2673 | - www.google.com.ng/products 2674 | - www.google.com.ni/products 2675 | - www.google.com.np/products 2676 | - www.google.com.om/products 2677 | - www.google.com.pa/products 2678 | - www.google.com.pe/products 2679 | - www.google.com.ph/products 2680 | - www.google.com.pk/products 2681 | - www.google.com.pr/products 2682 | - www.google.com.py/products 2683 | - www.google.com.qa/products 2684 | - www.google.com.sa/products 2685 | - www.google.com.sb/products 2686 | - www.google.com.sg/products 2687 | - www.google.com.sl/products 2688 | - www.google.com.sv/products 2689 | - www.google.com.tj/products 2690 | - www.google.com.tn/products 2691 | - www.google.com.tr/products 2692 | - www.google.com.tw/products 2693 | - www.google.com.ua/products 2694 | - www.google.com.uy/products 2695 | - www.google.com.vc/products 2696 | - www.google.com.vn/products 2697 | - www.google.cv/products 2698 | - www.google.cz/products 2699 | - www.google.de/products 2700 | - www.google.dj/products 2701 | - www.google.dk/products 2702 | - www.google.dm/products 2703 | - www.google.dz/products 2704 | - www.google.ee/products 2705 | - www.google.es/products 2706 | - www.google.fi/products 2707 | - www.google.fm/products 2708 | - www.google.fr/products 2709 | - www.google.ga/products 2710 | - www.google.gd/products 2711 | - www.google.ge/products 2712 | - www.google.gf/products 2713 | - www.google.gg/products 2714 | - www.google.gl/products 2715 | - www.google.gm/products 2716 | - www.google.gp/products 2717 | - www.google.gr/products 2718 | - www.google.gy/products 2719 | - www.google.hn/products 2720 | - www.google.hr/products 2721 | - www.google.ht/products 2722 | - www.google.hu/products 2723 | - www.google.ie/products 2724 | - www.google.im/products 2725 | - www.google.io/products 2726 | - www.google.iq/products 2727 | - www.google.is/products 2728 | - www.google.it/products 2729 | - www.google.it.ao/products 2730 | - www.google.je/products 2731 | - www.google.jo/products 2732 | - www.google.kg/products 2733 | - www.google.ki/products 2734 | - www.google.kz/products 2735 | - www.google.la/products 2736 | - www.google.li/products 2737 | - www.google.lk/products 2738 | - www.google.lt/products 2739 | - www.google.lu/products 2740 | - www.google.lv/products 2741 | - www.google.md/products 2742 | - www.google.me/products 2743 | - www.google.mg/products 2744 | - www.google.mk/products 2745 | - www.google.ml/products 2746 | - www.google.mn/products 2747 | - www.google.ms/products 2748 | - www.google.mu/products 2749 | - www.google.mv/products 2750 | - www.google.mw/products 2751 | - www.google.ne/products 2752 | - www.google.nl/products 2753 | - www.google.no/products 2754 | - www.google.nr/products 2755 | - www.google.nu/products 2756 | - www.google.pl/products 2757 | - www.google.pn/products 2758 | - www.google.ps/products 2759 | - www.google.pt/products 2760 | - www.google.ro/products 2761 | - www.google.rs/products 2762 | - www.google.ru/products 2763 | - www.google.rw/products 2764 | - www.google.sc/products 2765 | - www.google.se/products 2766 | - www.google.sh/products 2767 | - www.google.si/products 2768 | - www.google.sk/products 2769 | - www.google.sm/products 2770 | - www.google.sn/products 2771 | - www.google.so/products 2772 | - www.google.st/products 2773 | - www.google.td/products 2774 | - www.google.tg/products 2775 | - www.google.tk/products 2776 | - www.google.tl/products 2777 | - www.google.tm/products 2778 | - www.google.to/products 2779 | - www.google.tt/products 2780 | - www.google.us/products 2781 | - www.google.vg/products 2782 | - www.google.vu/products 2783 | - www.google.ws/products 2784 | 2785 | Google Video: 2786 | parameters: 2787 | - q 2788 | domains: 2789 | - video.google.com 2790 | 2791 | Goyellow.de: 2792 | parameters: 2793 | - MDN 2794 | domains: 2795 | - www.goyellow.de 2796 | 2797 | Gule Sider: 2798 | parameters: 2799 | - q 2800 | domains: 2801 | - www.gulesider.no 2802 | 2803 | HighBeam: 2804 | parameters: 2805 | - q 2806 | domains: 2807 | - www.highbeam.com 2808 | 2809 | Hit-Parade: 2810 | parameters: 2811 | - p7 2812 | domains: 2813 | - req.-hit-parade.com 2814 | - class.hit-parade.com 2815 | - www.hit-parade.com 2816 | 2817 | Holmes: 2818 | parameters: 2819 | - q 2820 | domains: 2821 | - holmes.ge 2822 | 2823 | Hooseek.com: 2824 | parameters: 2825 | - recherche 2826 | domains: 2827 | - www.hooseek.com 2828 | 2829 | Hotbot: 2830 | parameters: 2831 | - query 2832 | domains: 2833 | - www.hotbot.com 2834 | 2835 | Icerockeet: 2836 | parameters: 2837 | - q 2838 | domains: 2839 | - blogs.icerocket.com 2840 | 2841 | ICQ: 2842 | parameters: 2843 | - q 2844 | domains: 2845 | - www.icq.com 2846 | - search.icq.com 2847 | 2848 | Ilse: 2849 | parameters: 2850 | - search_for 2851 | domains: 2852 | - www.ilse.nl 2853 | 2854 | Inbox.com: 2855 | parameters: 2856 | - q 2857 | domains: 2858 | - inbox.com/search/ 2859 | 2860 | InfoSpace: 2861 | parameters: 2862 | - q 2863 | - s 2864 | domains: 2865 | - infospace.com 2866 | - dogpile.com 2867 | - www.dogpile.com 2868 | - metacrawler.com 2869 | - webfetch.com 2870 | - webcrawler.com 2871 | - search.kiwee.com 2872 | # powered by InfoSpace 2873 | - isearch.babylon.com 2874 | - start.facemoods.com 2875 | - search.magnetic.com 2876 | - search.searchcompletion.com 2877 | - clusty.com 2878 | 2879 | Flyingbird: 2880 | parameters: 2881 | - q 2882 | domains: 2883 | - inspsearch.com 2884 | - viview.inspsearch.com 2885 | 2886 | Interia: 2887 | parameters: 2888 | - q 2889 | domains: 2890 | - www.google.interia.pl 2891 | 2892 | I-play: 2893 | parameters: 2894 | - q 2895 | domains: 2896 | - start.iplay.com 2897 | 2898 | I.ua: 2899 | parameters: 2900 | - q 2901 | domains: 2902 | - search.i.ua 2903 | 2904 | IXquick: 2905 | parameters: 2906 | - query 2907 | domains: 2908 | - ixquick.com 2909 | - www.eu.ixquick.com 2910 | - ixquick.de 2911 | - www.ixquick.de 2912 | - us.ixquick.com 2913 | - s1.us.ixquick.com 2914 | - s2.us.ixquick.com 2915 | - s3.us.ixquick.com 2916 | - s4.us.ixquick.com 2917 | - s5.us.ixquick.com 2918 | - eu.ixquick.com 2919 | - s8-eu.ixquick.com 2920 | - s1-eu.ixquick.de 2921 | 2922 | Jyxo: 2923 | parameters: 2924 | - q 2925 | domains: 2926 | - jyxo.1188.cz 2927 | 2928 | Jungle Spider: 2929 | parameters: 2930 | - q 2931 | domains: 2932 | - www.jungle-spider.de 2933 | 2934 | Jungle Key: 2935 | parameters: 2936 | - query 2937 | domains: 2938 | - junglekey.com 2939 | - junglekey.fr 2940 | 2941 | Kataweb: 2942 | parameters: 2943 | - q 2944 | domains: 2945 | - www.kataweb.it 2946 | 2947 | Kvasir: 2948 | parameters: 2949 | - q 2950 | domains: 2951 | - www.kvasir.no 2952 | 2953 | kununu: 2954 | parameters: 2955 | - q 2956 | domains: 2957 | - kununu.com 2958 | 2959 | Latne: 2960 | parameters: 2961 | - q 2962 | domains: 2963 | - www.latne.lv 2964 | 2965 | La Toile Du Quebec Via Google: 2966 | parameters: 2967 | - q 2968 | domains: 2969 | - www.toile.com 2970 | - web.toile.com 2971 | 2972 | Looksmart: 2973 | parameters: 2974 | - key 2975 | domains: 2976 | - www.looksmart.com 2977 | 2978 | Lo.st: 2979 | parameters: 2980 | - x_query 2981 | domains: 2982 | - lo.st 2983 | 2984 | Lycos: 2985 | parameters: 2986 | - query 2987 | domains: 2988 | - search.lycos.com 2989 | - www.lycos.com 2990 | - lycos.com 2991 | 2992 | maailm: 2993 | parameters: 2994 | - tekst 2995 | domains: 2996 | - www.maailm.com 2997 | 2998 | Mail.ru: 2999 | parameters: 3000 | - q 3001 | domains: 3002 | - go.mail.ru 3003 | 3004 | Mamma: 3005 | parameters: 3006 | - query 3007 | domains: 3008 | - www.mamma.com 3009 | - mamma75.mamma.com 3010 | 3011 | Marktplaats: 3012 | parameters: 3013 | - query 3014 | domains: 3015 | - www.marktplaats.nl 3016 | 3017 | Maxwebsearch: 3018 | parameters: 3019 | - query 3020 | domains: 3021 | - maxwebsearch.com 3022 | 3023 | Meta: 3024 | parameters: 3025 | - q 3026 | domains: 3027 | - meta.ua 3028 | 3029 | MetaCrawler.de: 3030 | parameters: 3031 | - qry 3032 | domains: 3033 | - s1.metacrawler.de 3034 | - s2.metacrawler.de 3035 | - s3.metacrawler.de 3036 | 3037 | Metager: 3038 | parameters: 3039 | - eingabe 3040 | domains: 3041 | - meta.rrzn.uni-hannover.de 3042 | - www.metager.de 3043 | 3044 | Metager2: 3045 | parameters: 3046 | - q 3047 | domains: 3048 | - metager2.de 3049 | 3050 | Meinestadt: 3051 | parameters: 3052 | - words 3053 | domains: 3054 | - www.meinestadt.de 3055 | 3056 | Mister Wong: 3057 | parameters: 3058 | - Keywords 3059 | domains: 3060 | - www.mister-wong.com 3061 | - www.mister-wong.de 3062 | 3063 | Monstercrawler: 3064 | parameters: 3065 | - qry 3066 | domains: 3067 | - www.monstercrawler.com 3068 | 3069 | Mozbot: 3070 | parameters: 3071 | - q 3072 | domains: 3073 | - www.mozbot.fr 3074 | - www.mozbot.co.uk 3075 | - www.mozbot.com 3076 | 3077 | El Mundo: 3078 | parameters: 3079 | - q 3080 | domains: 3081 | - ariadna.elmundo.es 3082 | 3083 | MySearch: 3084 | parameters: 3085 | - searchfor 3086 | - searchFor 3087 | domains: 3088 | - www.mysearch.com 3089 | - ms114.mysearch.com 3090 | - ms146.mysearch.com 3091 | - kf.mysearch.myway.com 3092 | - ki.mysearch.myway.com 3093 | - search.myway.com 3094 | - search.mywebsearch.com 3095 | 3096 | Najdi: 3097 | parameters: 3098 | - q 3099 | domains: 3100 | - www.najdi.si 3101 | 3102 | Nate: 3103 | parameters: 3104 | - q 3105 | domains: 3106 | - search.nate.com 3107 | 3108 | Naver: 3109 | parameters: 3110 | - query 3111 | domains: 3112 | - search.naver.com 3113 | 3114 | Naver Images: 3115 | parameters: 3116 | - query 3117 | domains: 3118 | - image.search.naver.com 3119 | - imagesearch.naver.com 3120 | 3121 | Needtofind: 3122 | parameters: 3123 | - searchfor 3124 | domains: 3125 | - ko.search.need2find.com 3126 | 3127 | Neti: 3128 | parameters: 3129 | - query 3130 | domains: 3131 | - www.neti.ee 3132 | 3133 | Nifty: 3134 | parameters: 3135 | - q 3136 | domains: 3137 | - search.nifty.com 3138 | 3139 | Nigma: 3140 | parameters: 3141 | - s 3142 | domains: 3143 | - nigma.ru 3144 | 3145 | Onet: 3146 | parameters: 3147 | - qt 3148 | domains: 3149 | - szukaj.onet.pl 3150 | 3151 | Online.no: 3152 | parameters: 3153 | - q 3154 | domains: 3155 | - online.no 3156 | 3157 | Opplysningen 1881: 3158 | parameters: 3159 | - Query 3160 | domains: 3161 | - www.1881.no 3162 | 3163 | Orange: 3164 | parameters: 3165 | - q 3166 | - kw 3167 | domains: 3168 | - busca.orange.es 3169 | - search.orange.co.uk 3170 | - lemoteur.orange.fr 3171 | 3172 | Paperball: 3173 | parameters: 3174 | - q 3175 | domains: 3176 | - www.paperball.de 3177 | 3178 | PeoplePC: 3179 | parameters: 3180 | - q 3181 | domains: 3182 | - search.peoplepc.com 3183 | 3184 | Picsearch: 3185 | parameters: 3186 | - q 3187 | domains: 3188 | - www.picsearch.com 3189 | 3190 | Plazoo: 3191 | parameters: 3192 | - q 3193 | domains: 3194 | - www.plazoo.com 3195 | 3196 | Poisk.ru: 3197 | parameters: 3198 | - q 3199 | domains: 3200 | - poisk.ru 3201 | 3202 | PriceRunner: 3203 | parameters: 3204 | - q 3205 | domains: 3206 | - www.pricerunner.co.uk 3207 | 3208 | qip: 3209 | parameters: 3210 | - query 3211 | domains: 3212 | - search.qip.ru 3213 | 3214 | Qualigo: 3215 | parameters: 3216 | - q 3217 | domains: 3218 | - www.qualigo.at 3219 | - www.qualigo.ch 3220 | - www.qualigo.de 3221 | - www.qualigo.nl 3222 | 3223 | Rakuten: 3224 | parameters: 3225 | - qt 3226 | domains: 3227 | - websearch.rakuten.co.jp 3228 | 3229 | Rambler: 3230 | parameters: 3231 | - query 3232 | - words 3233 | domains: 3234 | - nova.rambler.ru 3235 | 3236 | RPMFind: 3237 | parameters: 3238 | - query 3239 | domains: 3240 | - rpmfind.net 3241 | - fr2.rpmfind.net 3242 | 3243 | Road Runner Search: 3244 | parameters: 3245 | - q 3246 | domains: 3247 | - search.rr.com 3248 | 3249 | Sapo: 3250 | parameters: 3251 | - q 3252 | domains: 3253 | - pesquisa.sapo.pt 3254 | 3255 | # Add Scour.com 3256 | 3257 | Search This: 3258 | parameters: 3259 | - q 3260 | domains: 3261 | - www.searchthis.com 3262 | 3263 | Search.com: 3264 | parameters: 3265 | - q 3266 | domains: 3267 | - www.search.com 3268 | 3269 | Search.ch: 3270 | parameters: 3271 | - q 3272 | domains: 3273 | - www.search.ch 3274 | 3275 | Searchalot: 3276 | parameters: 3277 | - q 3278 | domains: 3279 | - searchalot.com 3280 | 3281 | SearchCanvas: 3282 | parameters: 3283 | - q 3284 | domains: 3285 | - www.searchcanvas.com 3286 | 3287 | Searchy: 3288 | parameters: 3289 | - q 3290 | domains: 3291 | - www.searchy.co.uk 3292 | 3293 | # Add setooz.com 3294 | 3295 | Seznam: 3296 | parameters: 3297 | - q 3298 | domains: 3299 | - search.seznam.cz 3300 | 3301 | Sharelook: 3302 | parameters: 3303 | - keyword 3304 | domains: 3305 | - www.sharelook.fr 3306 | 3307 | Skynet: 3308 | parameters: 3309 | - q 3310 | domains: 3311 | - www.skynet.be 3312 | 3313 | The Smart Search: 3314 | parameters: 3315 | - q 3316 | domains: 3317 | - thesmartsearch.net 3318 | - www.thesmartsearch.net 3319 | 3320 | Sogou: 3321 | parameters: 3322 | - query 3323 | - w 3324 | domains: 3325 | - www.sougou.com 3326 | - www.soso.com 3327 | 3328 | Softonic: 3329 | parameters: 3330 | - q 3331 | domains: 3332 | - search.softonic.com 3333 | 3334 | SoSoDesk: 3335 | parameters: 3336 | - q 3337 | domains: 3338 | - sosodesktop.com 3339 | - search.sosodesktop.com 3340 | 3341 | Snapdo: 3342 | parameters: 3343 | - q 3344 | domains: 3345 | - search.snapdo.com 3346 | 3347 | Startpagina: 3348 | parameters: 3349 | - q 3350 | domains: 3351 | - startgoogle.startpagina.nl 3352 | 3353 | Startsiden: 3354 | parameters: 3355 | - q 3356 | domains: 3357 | - www.startsiden.no 3358 | 3359 | suche.info: 3360 | parameters: 3361 | - q 3362 | domains: 3363 | - suche.info 3364 | 3365 | Suchmaschine.com: 3366 | parameters: 3367 | - suchstr 3368 | domains: 3369 | - www.suchmaschine.com 3370 | 3371 | Suchnase: 3372 | parameters: 3373 | - q 3374 | domains: 3375 | - www.suchnase.de 3376 | 3377 | TalkTalk: 3378 | parameters: 3379 | - query 3380 | domains: 3381 | - www.talktalk.co.uk 3382 | 3383 | Technorati: 3384 | parameters: 3385 | - q 3386 | domains: 3387 | - technorati.com 3388 | 3389 | Telstra: 3390 | parameters: 3391 | - find 3392 | domains: 3393 | - search.media.telstra.com.au 3394 | 3395 | Teoma: 3396 | parameters: 3397 | - q 3398 | domains: 3399 | - www.teoma.com 3400 | 3401 | Terra: 3402 | parameters: 3403 | - query 3404 | domains: 3405 | - buscador.terra.es 3406 | - buscador.terra.cl 3407 | - buscador.terra.com.br 3408 | 3409 | Tiscali: 3410 | parameters: 3411 | - q 3412 | - key 3413 | domains: 3414 | - search.tiscali.it 3415 | - search-dyn.tiscali.it 3416 | - hledani.tiscali.cz 3417 | 3418 | Tixuma: 3419 | parameters: 3420 | - sc 3421 | domains: 3422 | - www.tixuma.de 3423 | 3424 | T-Online: 3425 | parameters: 3426 | - q 3427 | domains: 3428 | - suche.t-online.de 3429 | - brisbane.t-online.de 3430 | - navigationshilfe.t-online.de 3431 | 3432 | Toolbarhome: 3433 | parameters: 3434 | - q 3435 | domains: 3436 | - www.toolbarhome.com 3437 | - vshare.toolbarhome.com 3438 | 3439 | Trouvez.com: 3440 | parameters: 3441 | - query 3442 | domains: 3443 | - www.trouvez.com 3444 | 3445 | TrovaRapido: 3446 | parameters: 3447 | - q 3448 | domains: 3449 | - www.trovarapido.com 3450 | 3451 | Trusted-Search: 3452 | parameters: 3453 | - w 3454 | domains: 3455 | - www.trusted--search.com 3456 | 3457 | Tut.by: 3458 | parameters: 3459 | - query 3460 | domains: 3461 | - search.tut.by 3462 | 3463 | Twingly: 3464 | parameters: 3465 | - q 3466 | domains: 3467 | - www.twingly.com 3468 | 3469 | UKR.net: 3470 | parameters: 3471 | - q 3472 | domains: 3473 | - search.ukr.net 3474 | 3475 | uol.com.br: 3476 | parameters: 3477 | - q 3478 | domains: 3479 | - busca.uol.com.br 3480 | 3481 | URL.ORGanizier: 3482 | parameters: 3483 | - q 3484 | domains: 3485 | - www.url.org 3486 | 3487 | Vinden: 3488 | parameters: 3489 | - q 3490 | domains: 3491 | - www.vinden.nl 3492 | 3493 | Vindex: 3494 | parameters: 3495 | - search_for 3496 | domains: 3497 | - www.vindex.nl 3498 | - search.vindex.nl 3499 | 3500 | Virgilio: 3501 | parameters: 3502 | - qs 3503 | domains: 3504 | - ricerca.virgilio.it 3505 | - ricercaimmagini.virgilio.it 3506 | - ricercavideo.virgilio.it 3507 | - ricercanews.virgilio.it 3508 | - mobile.virgilio.it 3509 | 3510 | Voila: 3511 | parameters: 3512 | - rdata 3513 | - kw 3514 | domains: 3515 | - search.ke.voila.fr 3516 | - www.lemoteur.fr 3517 | 3518 | Volny: 3519 | parameters: 3520 | - search 3521 | domains: 3522 | - web.volny.cz 3523 | 3524 | Walhello : 3525 | parameters: 3526 | - key 3527 | domains: 3528 | - www.walhello.info 3529 | - www.walhello.com 3530 | - www.walhello.de 3531 | - www.walhello.nl 3532 | 3533 | Web.de: 3534 | parameters: 3535 | - su 3536 | domains: 3537 | - suche.web.de 3538 | 3539 | Web.nl: 3540 | parameters: 3541 | - zoekwoord 3542 | domains: 3543 | - www.web.nl 3544 | 3545 | Weborama: 3546 | parameters: 3547 | - QUERY 3548 | domains: 3549 | - www.weborama.com 3550 | 3551 | WebSearch: 3552 | parameters: 3553 | - qkw 3554 | - q 3555 | domains: 3556 | - www.websearch.com 3557 | 3558 | Winamp: 3559 | parameters: 3560 | - q 3561 | domains: 3562 | - search.winamp.com 3563 | 3564 | Witch: 3565 | parameters: 3566 | - search 3567 | domains: 3568 | - www.witch.de 3569 | 3570 | Wirtualna Polska: 3571 | parameters: 3572 | - szukaj 3573 | domains: 3574 | - szukaj.wp.pl 3575 | 3576 | WWW: 3577 | parameters: 3578 | - query 3579 | domains: 3580 | - search.www.ee 3581 | 3582 | X-recherche: 3583 | parameters: 3584 | - MOTS 3585 | domains: 3586 | - www.x-recherche.com 3587 | 3588 | Yahoo!: 3589 | parameters: 3590 | - p 3591 | - q 3592 | domains: 3593 | - search.yahoo.com 3594 | - yahoo.com 3595 | - ar.search.yahoo.com 3596 | - ar.yahoo.com 3597 | - au.search.yahoo.com 3598 | - au.yahoo.com 3599 | - br.search.yahoo.com 3600 | - br.yahoo.com 3601 | - cade.searchde.yahoo.com 3602 | - cade.yahoo.com 3603 | - chinese.searchinese.yahoo.com 3604 | - chinese.yahoo.com 3605 | - cn.search.yahoo.com 3606 | - cn.yahoo.com 3607 | - de.search.yahoo.com 3608 | - de.yahoo.com 3609 | - dk.search.yahoo.com 3610 | - dk.yahoo.com 3611 | - es.search.yahoo.com 3612 | - es.yahoo.com 3613 | - espanol.searchpanol.yahoo.com 3614 | - espanol.yahoo.com 3615 | - fr.search.yahoo.com 3616 | - fr.yahoo.com 3617 | - ie.search.yahoo.com 3618 | - ie.yahoo.com 3619 | - it.search.yahoo.com 3620 | - it.yahoo.com 3621 | - kr.search.yahoo.com 3622 | - kr.yahoo.com 3623 | - mx.search.yahoo.com 3624 | - mx.yahoo.com 3625 | - no.search.yahoo.com 3626 | - no.yahoo.com 3627 | - nz.search.yahoo.com 3628 | - nz.yahoo.com 3629 | - one.cn.yahoo.com 3630 | - one.searchn.yahoo.com 3631 | - qc.search.yahoo.com 3632 | - qc.yahoo.com 3633 | - se.search.yahoo.com 3634 | - se.yahoo.com 3635 | - search.searcharch.yahoo.com 3636 | - uk.search.yahoo.com 3637 | - uk.yahoo.com 3638 | - www.yahoo.co.jp 3639 | - search.yahoo.co.jp 3640 | # powered by Yahoo 3641 | - www.cercato.it 3642 | - search.offerbox.com 3643 | - ys.mirostart.com 3644 | 3645 | Yahoo! Images: 3646 | parameters: 3647 | - p 3648 | - q 3649 | domains: 3650 | - image.yahoo.cn 3651 | - images.search.yahoo.com 3652 | 3653 | Yam: 3654 | parameters: 3655 | - k 3656 | domains: 3657 | - search.yam.com 3658 | 3659 | Yandex: 3660 | parameters: 3661 | - text 3662 | domains: 3663 | - yandex.ru 3664 | - yandex.ua 3665 | - yandex.com 3666 | - yandex.by 3667 | - www.yandex.ru 3668 | - www.yandex.ua 3669 | - www.yandex.com 3670 | - www.yandex.by 3671 | 3672 | Yandex Images: 3673 | parameters: 3674 | - text 3675 | domains: 3676 | - images.yandex.ru 3677 | - images.yandex.ua 3678 | - images.yandex.com 3679 | 3680 | Yasni: 3681 | parameters: 3682 | - query 3683 | domains: 3684 | - www.yasni.de 3685 | - www.yasni.com 3686 | - www.yasni.co.uk 3687 | - www.yasni.ch 3688 | - www.yasni.at 3689 | 3690 | Yatedo: 3691 | parameters: 3692 | - q 3693 | domains: 3694 | - www.yatedo.com 3695 | - www.yatedo.fr 3696 | 3697 | # Add Yellowmap: 3698 | 3699 | Yippy: 3700 | parameters: 3701 | - q 3702 | - query 3703 | domains: 3704 | - search.yippy.com 3705 | 3706 | YouGoo: 3707 | parameters: 3708 | - q 3709 | domains: 3710 | - www.yougoo.fr 3711 | 3712 | Zapmeta: 3713 | parameters: 3714 | - q 3715 | - query 3716 | domains: 3717 | - www.zapmeta.com 3718 | - www.zapmeta.nl 3719 | - www.zapmeta.de 3720 | - uk.zapmeta.com 3721 | 3722 | Zoek: 3723 | parameters: 3724 | - q 3725 | domains: 3726 | - www3.zoek.nl 3727 | 3728 | Zhongsou: 3729 | parameters: 3730 | - w 3731 | domains: 3732 | - p.zhongsou.com 3733 | 3734 | Zoeken: 3735 | parameters: 3736 | - q 3737 | domains: 3738 | - www.zoeken.nl 3739 | 3740 | Zoohoo: 3741 | parameters: 3742 | - q 3743 | domains: 3744 | - zoohoo.cz 3745 | 3746 | 3747 | 3748 | # ####################################################################################################### 3749 | # 3750 | # PAID MEDIA 3751 | 3752 | paid: 3753 | 3754 | Acuity Ads: 3755 | domains: 3756 | - acuityplatform.com 3757 | 3758 | Adform: 3759 | domains: 3760 | - adform.net 3761 | 3762 | Adition: 3763 | domains: 3764 | - adition.com 3765 | 3766 | AdNET: 3767 | domains: 3768 | - adnet.de 3769 | 3770 | AdRoll: 3771 | domains: 3772 | - adroll.com 3773 | 3774 | AdSpirit: 3775 | domains: 3776 | - adspirit.de 3777 | - rtbcity.com 3778 | - plusperformance.com 3779 | 3780 | AppNexus: 3781 | domains: 3782 | - ib.adnxs.com 3783 | - adnxs.com 3784 | - 247realmedia.com 3785 | 3786 | AudienceScience: 3787 | domains: 3788 | - wunderloop.net 3789 | 3790 | BidSwitch: 3791 | domains: 3792 | - bidswitch.net 3793 | 3794 | Casale Media: 3795 | domains: 3796 | - casalemedia.com 3797 | 3798 | Criteo: 3799 | domains: 3800 | - cas.jp.as.criteo.com 3801 | - cas.criteo.com 3802 | 3803 | Doubleclick: 3804 | domains: 3805 | - ad.doubleclick.net 3806 | - ad-apac.doubleclick.net 3807 | - s0.2mdn.net 3808 | - s1.2mdn.net 3809 | - dp.g.doubleclick.net 3810 | - pubads.g.doubleclick.net 3811 | 3812 | Eyeota: 3813 | domains: 3814 | - eyeota.net 3815 | 3816 | Flashtalking: 3817 | domains: 3818 | - flashtalking.com 3819 | - servedby.flashtalking.com 3820 | 3821 | Fluct: 3822 | domains: 3823 | - adingo.jp 3824 | 3825 | Google: 3826 | domains: 3827 | - www.googleadservices.com 3828 | - partner.googleadservices.com 3829 | - googleads.g.doubleclick.net 3830 | - tpc.googlesyndication.com 3831 | - googleadservices.com 3832 | - imasdk.googleapis.com 3833 | 3834 | LifeStreet: 3835 | domains: 3836 | - lfstmedia.com 3837 | 3838 | Jivox: 3839 | domains: 3840 | - jivox.com 3841 | 3842 | MicroAd: 3843 | domains: 3844 | - microad.jp 3845 | 3846 | Mixpo: 3847 | domains: 3848 | - mixpo.com 3849 | 3850 | Mozo: 3851 | domains: 3852 | - mozo.com.au 3853 | - a.mozo.com.au 3854 | 3855 | Neustar AdAdvisor: 3856 | domains: 3857 | - adadvisor.net 3858 | 3859 | ONE by AOL: 3860 | domains: 3861 | - nexage.com 3862 | 3863 | OpenX: 3864 | domains: 3865 | - us-ads.openx.net 3866 | - openx.net 3867 | - servedbyopenx.com 3868 | - openxenterprise.com 3869 | 3870 | Outbrain: 3871 | domains: 3872 | - paid.outbrain.com 3873 | 3874 | Plista: 3875 | domains: 3876 | - farm.plista.com 3877 | 3878 | PubMatic: 3879 | domains: 3880 | - sshowads.pubmatic.com 3881 | 3882 | Rubicon Project: 3883 | domains: 3884 | - optimized-by.rubiconproject.com 3885 | 3886 | Sizmek: 3887 | domains: 3888 | - bs.serving-sys.com 3889 | 3890 | Sociomantic Labs: 3891 | domains: 3892 | - sociomantic.com 3893 | 3894 | Sonobi: 3895 | domains: 3896 | - sonobi.com 3897 | 3898 | Sovrn: 3899 | domains: 3900 | - lijit.com 3901 | 3902 | SteelHouse: 3903 | domains: 3904 | - steelhousemedia.com 3905 | 3906 | StickyADS.tv: 3907 | domains: 3908 | - stickyadstv.com 3909 | - sfx.stickyadstv.com 3910 | 3911 | Taboola: 3912 | domains: 3913 | - trc.taboola.com 3914 | - api.taboola.com 3915 | - taboola.com 3916 | 3917 | Tribal Fusion: 3918 | domains: 3919 | - cdnx.tribalfusion.com 3920 | 3921 | White Pages: 3922 | domains: 3923 | - www.whitepages.com.au 3924 | - mobile.whitepages.com.au 3925 | 3926 | Yieldmo: 3927 | domains: 3928 | - yieldmo.com 3929 | 3930 | ZEDO: 3931 | domains: 3932 | - zedo.com 3933 | - z1.zedo.com -------------------------------------------------------------------------------- /logstash/intro.txt: -------------------------------------------------------------------------------- 1 | 参考资料 2 | https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details 3 | 4 | logstash处理事件有三个阶段:input ---> filter ---> output.input产生事件,filter 对事件进行修改,output输出到其它地方. 5 | input和output支持解码,可以对进入的或者退出管道的数据进行编码或解码而无需单独经过过滤器处理. 6 | 7 | 常用的input有: 8 | file:从文件系统中读取文件,类似于Linux下的tail -0F 9 | syslog:监听在514端口的系统日志信息,并解析成RFC3164格式 10 | redis:从redis服务器读取,同时使用redis channel和redis list 11 | beats: 通过Filebeat发送事件 12 | 13 | filter是logstash管道中间处理的设备.可以结合条件语句对符合标准的事件进行处理. 14 | grok: 解析和结构化任何文本.Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化.logstash内置了120个匹配模式,满足大部分需求. 15 | mutate: 在事件字段执行一般的转换.可以重命名、删除、替换和修改事件字段 16 | drop: 完全丢弃事件,如debug事件 17 | clone: 复制事件,可能添加或者删除字段 18 | geoip: 添加有关IP地址地理位置信息 19 | 20 | 21 | output是logstash管道的最后一个阶段.一个事件可以经过多个output.但是一旦所有输出处理完,该事件已经执行完. 22 | 常用的output有: 23 | elasticsearch: 发送事件数据到 Elasticsearch.如果要将数据保存在一个高效、便捷、易于查询的格式,elasticsearch将是不二人选 24 | file: 将事件数据写入到磁盘文件上 25 | graphite: 发送事件数据到graphite 26 | statsd: 发送事件数据到 statsd 27 | 28 | 29 | codec有json、msgpack、plain(text). 30 | json: 以json格式编码或者解码数据. 31 | multiline: 合并多行文本事件,如java异常和堆栈跟踪信息到一个单一事件. 32 | 33 | 34 | 故障容错 35 | 事件从一个管道到另一个管道使用内部的Ruby SizedQueue队列实现的.一个SizedQueue有最大的项目数.当队列达到最大值,所有的写入队列将会被阻塞. 36 | logstash设置每个队列大小为20.这意味着最多20个事件可以挂起进入下一个阶段,这可以防止数据丢失和保持logstash作为一个数据存储系统.这些内部队列不用于长期存放信息. 37 | 小队列意味着当logstash任务繁重或者管道临时有问题时,更容易堵塞.当出现问题时,要么队列不限制要么丢弃信息.队列不限制时,会无限的增长一直超出内存大小,导致崩溃,从而队列中的所有信息丢失.在多数情况下,丢弃消息也是不希望接受的. 38 | 大多数output会不断尝试受故障影响的事件.output失败或者下游服务的问题如磁盘满、权限问题、网络故障、服务中止. 39 | 如果output失败,output线程等待直到output能成功发送消息.output停止从output队列读取,这意味着事件填满了队列. 40 | 当output队列满了,过滤器是被阻塞的,因此它们不能写入新的事件到输出队列.虽然写入到output队列被阻塞了,过滤器停止从filter队列读取.最终,可能会导致filter队列(input--->filter)满. 41 | 一个满的filter队列,阻塞input写入到filter.这将导致所有input停止处理数据无论是新的事件. 42 | 在理想的情况下,这种行为类似于当tcp窗口关闭为0.没有新的数据发送,因为接收器还没有处理完当前队列的数据,直到下游(output)问题解决,消息重新流动起来. -------------------------------------------------------------------------------- /rsyslog.conf: -------------------------------------------------------------------------------- 1 | $ModLoad imklog 2 | $ModLoad omfwd 3 | #$ModLoad omfile 4 | #module(load="impstats" interval="120" severity="6" log.syslog="off" format="json" resetCounters="on") 5 | #module(load="imuxsock" SysSock.RateLimit.Interval="0") 6 | #module(load="mmnormalize") 7 | #module(load="mmfields") 8 | 9 | module(load="imfile" mode="inotify") 10 | module(load="mmsequence") 11 | 12 | #$ActionFileEnableSync on 13 | $SystemLogRateLimitInterval 0 14 | 15 | #### RULES #### 16 | *.info;mail.none;authpriv.none;cron.none /var/log/messages 17 | authpriv.* /var/log/secure 18 | cron.* ~ 19 | kern.* /var/log/kern.log 20 | daemon.* /var/log/daemon.log 21 | syslog.* /var/log/syslog 22 | 23 | $WorkDirectory /data/rsyslog 24 | #http://www.rsyslog.com/doc/master/rainerscript/queue_parameters.html 25 | main_queue( 26 | queue.filename="queue" 27 | queue.workerthreads="10" 28 | queue.discardmark="1000000000" 29 | queue.highwatermark="80000" 30 | queue.lowwatermark="1000" 31 | queue.size="100000" 32 | queue.type="linkedList" 33 | queue.workerthreadMinimumMessages="500" 34 | queue.timeoutWorkerthreadShutdown="1000" 35 | queue.timeoutEnqueue="10000" 36 | queue.dequeuebatchsize="1000" 37 | queue.maxdiskspace="10G" 38 | queue.discardseverity="8" 39 | queue.checkpointinterval="10" 40 | queue.timeoutshutdown="10" 41 | queue.timeoutactioncompletion="10" 42 | queue.timeoutworkerthreadshutdown="10" 43 | queue.workerthreadminimummessages="5000" 44 | queue.maxfilesize="500M" 45 | queue.saveonshutdown="on" 46 | ) 47 | 48 | $PreserveFQDN on 49 | 50 | $InputFileSeverity error 51 | $InputFileFacility local6 52 | $InputFilePersistStateInterval 20 53 | $InputFilePollInterval 1 54 | $InputFileReadMode 1 55 | $InputRunFileMonitor 56 | 57 | $WorkDirectory /data/rsyslog/ 58 | 59 | $IncludeConfig /etc/rsyslog.d/*.conf 60 | 61 | *.* @@logcenter.example.com;syslog 62 | 63 | -------------------------------------------------------------------------------- /rsyslog.d/fwd.conf: -------------------------------------------------------------------------------- 1 | #通过omfwd 后端logstash 可线性扩展 2 | Ruleset(name="forward_rule" ) { 3 | Action( type="mmsequence" mode="instance" from="0" to="4" var="$.seq" ) 4 | if $.seq == "0" then { 5 | action (type="omfwd" Target="logstash.example.com" Port="5140" Protocol="tcp" queue.size="150000" queue.dequeuebatchsize="2000" ) 6 | } 7 | if $.seq == "1" then { 8 | action (type="omfwd" Target="logstash.example.com" Port="5141" Protocol="tcp" queue.size="150000" queue.dequeuebatchsize="2000" ) 9 | } 10 | if $.seq == "2" then { 11 | action (type="omfwd" Target="logstash.example.com" Port="5142" Protocol="tcp" queue.size="150000" queue.dequeuebatchsize="2000" ) 12 | } 13 | if $.seq == "3" then { 14 | action (type="omfwd" Target="logstash.example.com" Port="5143" Protocol="tcp" queue.size="150000" queue.dequeuebatchsize="2000" ) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /rsyslog.d/grok.conf: -------------------------------------------------------------------------------- 1 | module(load="mmgrok") 2 | 3 | ruleset(name="grok_rule"){ 4 | action( 5 | type="mmgrok" 6 | patterndir="/data/ops/pattern" 7 | match="%{WORD:test}" 8 | source="msg" 9 | target="!msg" 10 | ) 11 | } 12 | 13 | -------------------------------------------------------------------------------- /rsyslog.d/kafka.conf: -------------------------------------------------------------------------------- 1 | module(load="omkafka") 2 | 3 | ruleset(name="kafka_rule_nginx_access"){ 4 | action( 5 | type="omkafka" 6 | broker=["kafka1:9092","kafka2:9092","kafka3:9092"] 7 | topic='nginx_access' 8 | template="syslog" 9 | confParam=["compression.codec=gzip","queue.buffering.max.messages=2000000","socket.timeout.ms=5","socket.keepalive.enable=true"] 10 | partitions.auto="on" 11 | action.resumeRetryCount="-1" 12 | ) 13 | } 14 | 15 | #input(type="imfile" Ruleset ="kafka_rule" File="/var/log/messages" Tag="messages") 16 | -------------------------------------------------------------------------------- /rsyslog.d/log.template.conf: -------------------------------------------------------------------------------- 1 | template(name="syslog" type="list") { 2 | constant(value="@timestamp") property(name="timereported" dateFormat="rfc3339") 3 | constant(value="message") property(name="msg") 4 | constant(value="tag") property(name="syslogtag") 5 | constant(value="host") property(name="fromhost") 6 | constant(value="hostname") property(name="hostname") 7 | constant(value="host_ip") property(name="fromhost-ip") 8 | constant(value="severity") property(name="syslogseverity-text") 9 | constant(value="facility") property(name="syslogfacility-text") 10 | constant(value="programname") property(name="programname") 11 | constant(value="app-name") property(name="app-name") 12 | } 13 | 14 | $template common,"{%timestamp:::date-rfc3339,jsonf:@timestamp%,%source:::jsonf:@source_host%,\"@source\":\"syslog://%fromhost-ip:::json%\",\"@message\":\"%timestamp% %app-name%:%msg:::json%\",\"@fields\":{%syslogfacility-text:::jsonf:facility%,%syslogseverity-text:::jsonf:severity%,%app-name:::jsonf:program%,%procid:::jsonf:processid%}}" 15 | 16 | $ActionFileDefaultTemplate syslog -------------------------------------------------------------------------------- /rsyslog.d/log4j.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | ruleset="forward_rule" 3 | File="/data/logs/log4j/*.log" 4 | Tag="log4j" 5 | Severity="info" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) -------------------------------------------------------------------------------- /rsyslog.d/log4php.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/log4php/*.log" 4 | Tag="log4php" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /rsyslog.d/log4python.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/log4python/*.log" 4 | Tag="log4python" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) -------------------------------------------------------------------------------- /rsyslog.d/messsages.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/var/log/messsages" 4 | Tag="sys_messsages" 5 | Severity="info" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) -------------------------------------------------------------------------------- /rsyslog.d/mysql-error.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/mysql/error.log" 4 | Tag="mysql_error" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) -------------------------------------------------------------------------------- /rsyslog.d/mysql-slow.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/mysql/slow.log" 4 | Tag="mysql_slow" 5 | Severity="info" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | startmsg.regex="^[0-9]") 11 | ) -------------------------------------------------------------------------------- /rsyslog.d/nginx-access.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="kafka_rule_nginx_access" 3 | File="/data/logs/nginx/access.log" 4 | Tag="nginx_access" 5 | Severity="info" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) -------------------------------------------------------------------------------- /rsyslog.d/nginx-error.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/nginx/error.log" 4 | Tag="nginx_error" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) 11 | -------------------------------------------------------------------------------- /rsyslog.d/php-fpm-error.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/php/*error.log" 4 | Tag="php_error" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /rsyslog.d/php-fpm-slow.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/php/*slow.log" 4 | Tag="php_slow" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /rsyslog.d/python-error.conf: -------------------------------------------------------------------------------- 1 | input(type="imfile" 2 | Ruleset ="forward_rule" 3 | File="/data/logs/python/error.log" 4 | Tag="python_error" 5 | Severity="error" 6 | reopenOnTruncate="on" 7 | addMetadata="on" 8 | freshStartTail="on" 9 | escapeLF="on" 10 | ) --------------------------------------------------------------------------------