搭建ES环境,基本操作

1. 安装

1) ES

在这里插入图片描述
linux新建andy用户,不能用root用户操作,解压包,config 目录,编辑elasticsearch.yml
添加内网ip
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动

nohup ./elasticsearch &

在这里插入图片描述

2) kibana

config 目录对 Kibana 进行配置
在这里插入图片描述
在这里插入图片描述
需注意: 需要给andy用户权限,如果报如下错误,需切换到root用户进行操作
在这里插入图片描述

  1. 切换到root用户修改配置sysctl.conf : vi /etc/sysctl.conf
  2. 添加下面配置:vm.max_map_count=655360
  3. 并执行命令:sysctl -p

启动

nohup ./kibana &

使用:
在这里插入图片描述
关闭
使用 fuser -n tcp 5601
kill -9 端口

3) logstash

需安装到需要记录日志的服务器上,如果多服务器需要记录之日,可以考虑filebeat去采集日志,然后发给logstash,logstash只做grok工作。

第一步: Logstash 的启动命令位于安装路径的 bin 目录中,直接运行 logstash 不行,
需要按如下方式提供参数:

./logstash -e "input {stdin {}} output {stdout{}}"

出现 Successfully 即为成功了
在这里插入图片描述

第二步: Logstash 安装路径下的config 目录中, logstash-sample.conf 复制改名为std_es. conf

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  file{
    path => "/mnt/logs/freight-api/freight-api-info.log"
    type => "apilog"
    start_position => "beginning"
    stat_interval => "3"
  }
}

output {
  if[type] == "apilog" {
     elasticsearch {
     hosts => ["http://*.*.35.237:9200"]
     index => "log-api-%{+YYYY-MM-dd}"
     #user => "elastic"
     #password => "changeme"
     }
  }
}

第三步: 关掉logstash,进入bin 目录再次启动logstash

nohup ./logstash -f ../config/std_es.conf &

在这里插入图片描述

2. 基本操作

在这里插入图片描述

1. kibana操作

#列出所有索引
GET /_cat/indices?v

#删除索引
DELETE /es

#创建索引
put es 

#查看索引
get es 

#添加文档
PUT /es/_doc/1
{
"msg":"Hello World!"
}

#查看文档
get /enjoy_test/_doc/1

#查询索引下所有数据
get cargo-order/_search
{
	"query":{
		"match_all":{}
	}
}

#解决10000默认数据问题,降序
get uat_user_behavior/_search
{
	"query":{
		"match_all":{}
	},
	"track_total_hits":true,
	"sort": [ 
	   { "createDate" : { "order" : "desc"}}
	]
}

# 基本查询,分页
get cargo-order/_search
{
  "from":0,
  "size":6,
  "query":{
	"term":{
		"frId":2
	}
  }
}

# term 精准查找
get cargo-order/_search
{
	"query":{
		"term": {
		  "frId": 2
		}
	}
}

# terms 相当于sql中的in
get cargo-order/_search
{
	"query":{
		"terms": {
		  "frId": [1,2]
		}
	}
}

#term多个字段
get pro_user_behavior/_search
{
  "query": {
    "dis_max": {
      "queries": [
        { "term": { "referer.keyword": "order/CusOrderDetail" } },
        { "term": { "type": "5" } }
      ]
    }
  }
}

# bool查询 
#must: 必须匹配,与and等价。贡献算分
#must_not:必须不匹配,与not等价,常过滤子句用,但不贡献算分
#should: 选择性匹配,至少满足一条,与 OR 等价。贡献算分
#filter: 过滤子句,必须匹配,但不贡献算分
## 需要注意的是must与should同时使用时候,不可平级出现,必须是一个嵌套在另一个其中
get pro_user_behavior/_search
{
	"query": {
		"bool": {
			"must": [{
					"term": {
						"type": 5
					}
				},
				{
					"bool": {
						"should": [{
							"term": {
								"referer": "order/CargoMasterDetail"
							}
						}, {
							"term": {
								"type": 5
							}
						}]
					}
				}
			],
			"filter": {
				"term": {
					"type": 5
				}
			}
		}
	}
}

# range 范围:gte:大于等于 gt:大于 lte:小于等于 lt:大于
get cargo-order/_search
{
	"query":{
		"range": {
		  "frId": {
		    "gte":2,
		    "lte":5
		  }
		}
	}
}

# prefix前缀 wildcard通配符 regexp正则表达式

#全文检索
get cargo-order/_search
{
	"query":{
		"match": {
		  "commodity": "冰箱小"
		}
	}
}

# multi_match多字段全文检索
get cargo-order/_search
{
	"query":{
		"multi_match": {
		  "query":"描述",
		  "fields": ["createdDate","commodity"]
		}
	}
}


# bool-must-filter结合
# 查询商户ID3582,订单号为360102199003072618,按时间范围过滤,按下单时间倒序,每次查询100{
	"query": {
		"bool": {
			"must": [{
				"term": {
					"merchant_id": "3582"
				}
			}, {
				"term": {
					"order_num": "360102199003072618"
				}
			}],
			"filter": [{
				"range": {
					"order_time": {
						"from": "2019-11-01T17:00:00+08:00",
						"to": "2019-11-01T20:00:00+08:00"
					}
				}
			}]
		}
	},
	"size": 100,
	"sort": [{
		"order_time": "desc"
	}]
}

# bool-must-should-match
# 查询venderId值为1234,taskId为1234,字段itemCodes和templateCodes的值至少有一个match匹配到结果,才返回对应数据集。
# 即must下两个terms同时满足,should下两个match至少满足一条
{
	"bool": {
		"must": [{
				"terms": {
					"venderId": [
						"1234"
					]
				}
			},
			{
				"terms": {
					"taskId": [
						"1234"
					]
				}
			},
			{
				"should": [{
						"match": {
							"itemCodes": {
								"query": "12,124"
							}
						}
					},
					{
						"match": {
							"templateCodes": {
								"query": "t123,t124,t125"
							}
						}
					}
				]
			}
		]
	}
}

# bool-must-wildcard-range
# 根据促销ID和促销名称查询某个时间段的促销,并时间排序
{
	"from": 0,
	"size": 10,
	"query": {
		"bool": {
			"must": [{
				"term": {
					"promt_id": {
						"value": 200352052277
					}
				}
			}, {
				"wildcard": {
					"promt_name": {
						"wildcard": "*业务部*"
					}
				}
			}, {
				"range": {
					"promt_end_time": {
						"from": "2022-10-01 00:00:00"
					}
				}
			}, {
				"range": {
					"promt_begin_time": {
						"to": "2022-10-31 23:59:59"
					}
				}
			}]
		}
	},
	"sort": [{
		"created_time": {
			"order": "desc",
			"unmapped_type": "keyword"
		}
	}]
}


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值