es运维常用基本命令记录。

本文详细介绍Elasticsearch集群的运维操作,包括集群健康检查、状态监控、索引管理、分片调整等关键任务,为专业技术人员提供实用的管理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.集群健康值
curl -XGET "http://xxx.xxx.xxx.xxx:9200/_cluster/health?pretty=true"


2.集群状态
curl -XGET "http://xxx.xxx.xxx.xxx9200/_cluster/state?pretty=true"


3.集群统计:
curl -XGET "http://xxx.xxx.xxx.xxx:9200/_cluster/stats?pretty=true"


4.节点状态
curl -XGET "http://xxx.xxx.xxx.xxx:9200/_cat/nodes?v" 


5.索引信息
curl -XGET "http://xxx.xxx.xxx.xxx:9200/_cat/indices?v"


6.文档总量
curl -XGET "http://xxx.xxx.xxx.xxx:9200/_cat/count?v"


7.强制分片分配(非专业人员禁止执行!!!)
curl -XPOST 'xxx.xxx.xxx.xxx:9200/_cluster/reroute' -d '{"commands":[{"allocate":{"index":"newcase","shard":1,"node":"xxx.xxx.xxx.xxx","allow_primary":true}}]}'


8.分片移动(非专业人员禁止执行!!!)
首先需要禁用分片的自动均衡
cluster.routing.allocation.enable:none
cluster.routing.rebalance.enable:none
curl  -XPOST "xxx.xxx.xxx.xxx:9200/_cluster/reroute" -d '{"commands":[{"move":{"index":"dapdatas","shard":0,"from_node":"xxx.xxx.xxx.xxx","to_node":"ip"}}]}'


9.未分配分片详细原因查询
curl -XGET "xxx.xxx.xxx.xxx:9200/_cluster/allocation/explain" -d '{"index": "newcase","shard": 0,"primary": true}'


10.设置索引的刷新时间
curl -XPUT 'http://xxx.xxx.xxx.xxx:9200/mac_20171202/_settings' -d  '{"index":{"refresh_interval":"-1"}}'

curl -XPUT 'http://xxx.xxx.xxx.xxx:9200/mac_20171202/_settings' -d  '{"index.translog.flush_threshold_size":"1g"}'
curl -XPUT 'http://xxx.xxx.xxx.xxx:9200/_cluster/settings' -d  '{"transient":{"threadpool.index.queue_size":1000}}'


11.设置查询返回数据的大小
curl -XPUT 'http://xxx.xxx.xxx.xxx:9200/dapdatas/_settings' -d '{"index":{"max_result_window":100000}}'


12.归并线程限速
curl -XPUT 'http://xxx.xxx.xxx.xxx:9200/_cluster/settings' -d '{"persistent":{"indices.store.throttle.max_bytes_per_sec":"500mb"}}'

13.强制段合并
curl -XPOST 'http://ip:9200/newperson/_forcemerge?max_num_segments=1' 
curl -XPOST 'http://ip:9200/person_v8/_forcemerge?max_num_segments=1' 

14、获取索引下某个type的mapping类型
 curl -XGET 'http://ip:9200/file_attachment/attachment/_mapping/'
15、获取索引下的type
 curl -XGET 'http://ip:端口/索引/_mapping?pretty=true'
 curl -XGET 'http://ip:端口/newtrajectory_20190817/GCKK/_mapping?pretty=true'

16.修改索引副本数
put index/_settings {"number_of_replicas":0}


17、索引改名
post _reindex
{"dest":{"index":"newwxp_201907"},"source":{"index":"wxp_201907"}}
{
  "dest": {
    "index": "person_bak"
  },
  "source": {
    "index": "person",
    "size": 5000,//批量抓取的size的大小
    "query": {}//查询指定条件下的字段
  }
}
slices====>线程数最后根据实际的分片数来设置
curl -H "Content-Type:application/json" -XPOST 'ip:端口/_reindex?slices=5&refresh&pretty' -d '
{
  "conflicts": "proceed",//出现错误跳过
  "source": {
    "index": "ceshi"
  },
  "dest": {
    "index": "newceshi"
  }
}'


18、添加别名
post _aliases
{"actions":[{"add":{"index":"staticdata","alias":"person"}}]}

19、查看段合并情况
http://ip:端口/_cat/segments?v
http://ip:端口/_cat/segments?v

20、查看任务并停止
查看任务:
http://ip:端口/_cat/tasks?v
停止任务:
 curl -XPOST 'http://ip:端口/_tasks/hEvu8BipS7yN1MYv26yblg:192942739/_cancel'


21.查询时增加参数。
  "profile": true, //查询时曾加该参数,用来分析查询速度慢的问题。

22、创建索引
PUT book_v5
//不分词
{
  "settings":{
    "number_of_shards": "6",
    "number_of_replicas": "1",  
     //指定分词器  
    "analysis":{   
      "analyzer":{
        "ik":{
          "tokenizer":"ik_max_word"
        }
      }
    }
  }
}
//分词!!!
{
  "settings": {
    "number_of_shards": "5",
    "number_of_replicas": "0",
    "analysis": {
      "analyzer": {
        "default": {
          "type": "ik_max_word"
        }
      }
    }
  }
}
 

虽然这个问题偏向Linux系统操作层面而非直接与Java相关,但我可以为你介绍一些常用查看日志的命令,在开发环境中(尤其是基于Linux的服务端Java应用)这也是非常有用的技能。 在Linux中查看日志文件最常使用的命令包括`cat`,`less`, `more`, `tail`以及带有颜色高亮显示效果的`ccze`等工具,并且结合使用`grep`进行过滤查找也是非常常见的需求。 1. **Cat**:这个命令会将整个文本内容一次性全部输出到屏幕上。 ```bash cat /path/to/logfile.log ``` 然而对于大文件而言不建议用此方法因为可能会导致屏幕被大量信息刷满难以阅读并且无法滚动回溯。 2. **Less/More**:这两个工具都可以分页地展示文档内容但相比之下`less`功能更加强大支持向前及向后翻阅而`more`只可向下读取不能返回上一行或页面。 - 使用`q`退出浏览; - 可以上下左右键、空格键翻页; - `/pattern`搜索匹配的内容。 例如利用`less`打开日志并查询包含特定关键词的日志行: ```bash less +F logfile.log # 实时跟踪最新添加的日志条目直到按下Ctrl+C停止监听模式然后可以通过其他快捷键如?keyword来进行历史记录中的反向搜索 # 或者先启动less再按shift+F进入类似尾部追踪的状态 less logfile.log ``` 3. **Tail**:通常用来打印出指定文件的最后一部分数据,默认情况下为最后一屏的信息。加上参数-f可以让其持续监控新增加的数据。 例如一直关注某个正在写入的日志的变化情况: ```bash tail -f catalina.out # 对于Tomcat服务器来说catalina.out就是很典型的应用程序运行期标准输出流重定向后的目标之一 ``` 4. 如果安装了`ccze`(需自行确认环境是否具备),那么它能给普通纯文本形式的日志增添色彩标记从而更容易识别不同类型的事件。 ```bash tail -f access_log | ccze -A ``` 5. 结合Grep对海量日志做初步筛选是非常实用的做法比如找出所有含有错误(ERROR)级别的消息或是某一天内发生的活动。 ```bash grep 'ERROR' application.log # 获取所有的error级别日志 # 加上时间戳过滤条件 grep $(date +"%Y-%m-%d") myapp-debugging-info.txt # 这样就能拿到今天生成的相关联调试详情片段啦! # 当然也可以两者一起用同时限定日期范围和关键字 grep "WARN" catalina.out | grep "$(date --date="yesterday" +%Y-%m-%d)" ``` 6. 此外还有专门用于处理syslog格式(大多数守护进程默认采用该结构化布局存储自身运作状态报告)的专业软件像Logwatch,Swatch等等这里就不展开介绍了。 7. 对于Java应用程序开发者特别要注意的是如果是在生产环境下部署Web容器(Jetty,Tomcat...)或者框架(Spring Boot..),这些平台往往会自带私有的日志管理体系(SLF4J+Logback...,java.util.logging...).所以应当熟悉查阅对应官方手册了解具体配置项含义以便准确高效定位故障点。 8. 最近还流行起一种集中式管理分布式架构下的各类异构来源产生的非结构化半结构性元数据的方法——ELK(Elasticsearch Logstash Kibana)/EFK(Elastisearch Fluent-bit Kibana)...借助这类解决方案我们可以跨越多个主机甚至云端实例收集整理分析庞大的二进制流转换之后的文字描述进而绘制可视化图表辅助决策制定优化业务逻辑提高运维效率降低成本支出... 综上所述掌握基本shell脚本指令只是第一步更重要是要学会根据实际场景选择合适的技术手段灵活组合运用才能真正发挥最大价值!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值