ElasticStack
https://www.elastic.co/cn/
ElasticSearch下载、解压、启动 http://127.0.0.1:9200
1、参数配置 (1)jvm配置 jmv.options 如果运行有问题-> 256M (2)log配置 log4j2.properties (3)es的配置 elasticsearch.yml -cluster.name 集群名称 -node.name 节点名称 -network.host 网络地址 -http.port 端口 -path.data 数据存储地址 -path.log 日志存储地址
启动时修改参数:
bin/elasticsearch -Ehttp.port=19200
2、运行模式 以network.host参数为判断标准 (1)Development (2)Production
3、本地启动集群
$ elasticsearch
$ elasticsearch -Ehttp.port=8200 -Epath.data=node2
$ elasticsearch -Ehttp.port=7200 -Epath.data=node3
查看集群 http://127.0.0.1:9200/_cat/nodes?v http://127.0.0.1:9200/_cluster/stats
4、常用术语 Document 文档数据 Index 索引 Type 索引中的数据类型 Field 字段,文档属性 Query DSL 查询语法
5、CURD
Create 创建 PUT /index/type/id(data)
Read 读取 GET /index/type/id
Update 更新 POST /index/type/id/_update(doc)
Delete 删除 DELETE /index/type/id
6、查询语法2种 (1)Query String
GET /index/type/_search?q=Tom
(2)Query DSL
GET /index/type/_search
{
"query": {
"match": {
"name": "Tom"
}
}
}
Kibana
http://127.0.0.1:5601 1、默认配置
server.host 地址
server.port 端口
elasticsearch.url es地址
2、常用功能 Discover 数据搜索查看 Visualize 图表制作 Dashboard 仪表盘 Timelion 时序数据的高级可视化分析 DevTools 开发者工具 Management 配置
BeatsFilebeat 日志文件 Metricbeat 度量数据 packetbeat 网络数据 Winlogbeat Windows数据 Heartbeat 健康检查
1、Filebeat
Input 输入
-Prospector
-log/stdin
-Havester
Filter 处理
-Input
-Include_lines
-exclude_lines
-exclude_files
-Output Processors
-drop_event
-drop_fields
-decode_json_fields
-include_fields
Output 输出
-ElasticSearch
-Logstash
-Kafka
-Redis
-Console
-File
Filebeat Module nginx apach mysql 最佳实践参考
head -n 2 demo.log|filebeat -e -c nginx.yml
2、packetbeat 实时抓取网络包 自动解析应用层协议 ICMP(v4 and v6) DNS HTTP MySQL Redis
类似Wireshark
sudo packetbeat -e -c es.yml -strict.perms=false
Logstash
ETL Extract Transform Load
1、处理流程
Input
-file
-redis
-beats
-kafka
Filter
-grok 基于正则表达式,非结构化作结构化处理
-mutate 增删改查
-drop
-date 时间字符串转为时间戳类型
Output
-stdout
-elasticsearch
-kafka
2、Grok示例
55.3.244.1 GET /index.html 15824 0.043
->
{%IP:client} %{WORD:method} %{URIPATHPARAM:requst} %{NUMBER:bytes} %{NUMBER:duration}
->
{
"client": "55.3.244.1",
"method": "GET",
"requst": "/index.html",
"bytes": "15824",
"duration": "0.043"
}
测试
head -n 2 demo.log | logstash -f conf.yml
实战
Packetbeat + logstash 收集数据 kibana + elasticsearch 数据分析
方案(不能是同一个集群) 1、Production Cluster ElasticSearch http://127.0.0.1:9200 Kibana http://127.0.0.1:5601
2、Monitoring Cluster ElasticSearch http://127.0.0.1:8200
elasticsearch -Ecluster.name=sniff_search -Ehttp.port=8200 -Ehttp.data=sniff
Kibana http://127.0.0.1:8601
kibana -e http://127.0.0.1:8200 -p 8601