Elasticsearch日志收集
Install pip if necessary
python get-pip.py |
Install Curator for Elasticsearch
Elasticsearch Curator helps you curate, or manage, your Elasticsearch indices and snapshots by:
- Obtaining the full list of indices (or snapshots) from the cluster, as the actionable list
- Iterate through a list of user-defined filters to progressively remove indices (or snapshots) from this actionable list as needed.
- Perform various actions on the items which remain in the actionable list.
pip install elasticsearch-curatorpip install click==6.7 |
Configure curator
mkdir -p /var/log/elastictouch /var/log/elastic/curator.logmkdir ~/.curatorvi ~/.curator/curator.yml |
# Remember, leave a key empty if there is no value. None will be a string,## not a Python "NoneType"client:hosts: [Elasticsearch Server IP]port: 9200url_prefix:use_ssl: Falsecertificate:client_cert:client_key:ssl_no_validate: Falsehttp_auth:timeout: 30master_only: Falselogging:loglevel: INFOlogfile: /var/log/elastic/curator.loglogformat: defaultblacklist: ['elasticsearch', 'urllib3'] |
Have a test, now you can get the indices list
curator_cli show_indices
Create repository
Configure elasticseach.yml default in /etc/elasticsearch/elasticsearch.yml
path.repo: /u01/elasticsearch/backuphttp.max_header_size: 16kb |
Restart elasticsearch service (service elasticsearch restart) to make the configurations work.
Create repository elasticsearch. Ensure location points to a valid path which is configured in path.repo, accesable from all nodes.
curl -XPUT http://localhost:9200/_snapshot/es_backup -H "Content-Type: application/json" -d @repository.json |
{ "type": "fs", "settings": { "compress": true, "location": "/u01/elasticsearch/backup" }} |
Have a test
curl -XGET 'localhost:9200/_snapshot/_all?pretty=true' |
Create curator yaml action files
daily_backup.yml
Customize the snapshot name in name option
action 1: backup all indices before today to repository elasticsearch with specified snapshot name
action 2: delete indices older than 185 days
---actions: 1: action: snapshot description: >- Snapshot selected all indices to repository 'elasticsearch' with the snapshot name options: repository: es_backup name: '<c4cert-{now/d-1d}>' wait_for_completion: True max_wait: 4800 wait_interval: 30 filters: - filtertype: age source: name direction: older unit: days unit_count: 1 timestring: "%Y.%m.%d" 2: action: delete_indices description: >- Delete indices which is older than 185 days filters: - filtertype: age source: name direction: older unit: days unit_count: 185 timestring: "%Y.%m.%d" |
del_snapshot.yml
action 1: Delete snapshots from repository elasticsearch which is older than 185 days
---actions: 1: action: delete_snapshots description: >- Delete snapshots from repository which is older than 185 days options: repository: es_backup retry_interval: 120 retry_count: 3 filters: - filtertype: age source: creation_date direction: older unit: days unit_count: 185 |
restore.yml
action 1: Restore all indices in the most recent snapshot with state SUCCESS.
---actions: 1: action: restore description: >- Restore all indices in the most recent snapshot with state SUCCESS. Wait for the restore to complete before continuing. Do not skip the repository filesystem access check. Use the other options to define the index/shard settings for the restore. options: repository: es_backup # If name is blank, the most recent snapshot by age will be selected name: # If indices is blank, all indices in the snapshot will be restored indices: wait_for_completion: True max_wait: 3600 wait_interval: 10 filters: - filtertype: state state: SUCCESS |
Note: use --dry-run option to verify your action without any change. Find the dry run results in log path.
Curator --dry-run daily_backup.yml
Shell script and crontab
#!/bin/shcurator /u01/curator/del_snapshot.ymlcurator /u01/curator/daily_backup.yml |
crontab -e
Here configured the job run on every 3 AM
0 3 * * * /bin/sh /u01/curator/run.sh |
Restore
Curator restore.yml
Tested OK in CERT env.
Some useful API
# get all repositoriescurl -XGET 'localhost:9200/_snapshot/_all?pretty=true'# delete repositorycurl -XDELETE 'localhost:9200/_snapshot/es-snapshot?pretty=true'# show snapshotscurator_cli show_snapshots --repository es_backup# show indicescurator_cli show_indices |
Elasticsearch日志收集的更多相关文章
- Linux下单机部署ELK日志收集、分析环境
一.ELK简介 ELK是elastic 公司旗下三款产品ElasticSearch .Logstash .Kibana的首字母组合,主要用于日志收集.分析与报表展示. ELK Stack包含:Elas ...
- 快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)
快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana) 概要说明 需求场景,系统环境是CentOS,多个应用部署在多台服务器上,平时查看应用日志及排查问题十 ...
- 日志收集之--将Kafka数据导入elasticsearch
最近需要搭建一套日志监控平台,结合系统本身的特性总结一句话也就是:需要将Kafka中的数据导入到elasticsearch中.那么如何将Kafka中的数据导入到elasticsearch中去呢,总结起 ...
- GlusterFS + lagstash + elasticsearch + kibana 3 + redis日志收集存储系统部署 01
因公司数据安全和分析的需要,故调研了一下 GlusterFS + lagstash + elasticsearch + kibana 3 + redis 整合在一起的日志管理应用: 安装,配置过程,使 ...
- 基于logstash+elasticsearch+kibana的日志收集分析方案(Windows)
一 方案背景 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.开源实时日志分析ELK平台能够完美的 ...
- 用ElasticSearch,LogStash,Kibana搭建实时日志收集系统
用ElasticSearch,LogStash,Kibana搭建实时日志收集系统 介绍 这套系统,logstash负责收集处理日志文件内容存储到elasticsearch搜索引擎数据库中.kibana ...
- ELK(Elasticsearch + Logstash + Kibana) 日志收集
单体应用或微服务的场景下,每个服务部署在不同的服务器上,需要对日志进行集重收集,然后统一查看所以日志. ELK日志收集流程: 1.微服务器上部署Logstash,对日志文件进行数据采集,将采集到的数据 ...
- logstash+elasticsearch+kibana搭建日志收集分析系统
来源: http://blog.csdn.net/xifeijian/article/details/50829617 日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散 ...
- syslog+rsyslog+logstash+elasticsearch+kibana搭建日志收集
最近rancher平台上docker日志收集捣腾挺久的,尤其在配置上,特写下记录 Unix/Linux系统中的大部分日志都是通过一种叫做syslog的机制产生和维护的.syslog是一种标准的协议,分 ...
随机推荐
- 三维重建:多点透视cvSolvePNP的替代函数(Code)
在调试JNI程序时,所有的Shell都已经加载完成,而唯一真正核心的cv::SolvePnP却不能在JNI里面获得通行证,经过反复测试都不能运行,因此只能忍痛舍弃,自行编写一个具有相 ...
- AI:忧郁的机器人
1.塔奇克马 塔奇克马研究起来哲学,被缴械....... 2.机器人瓦力 孤独等待EVA的瓦力 3.马文 http://www.guokr.com/post/683881/
- ANE打包
哈哈,曾经梦寐以求的ANE终于弄成功了一个.说实话,学java和Android就是为了写ANE!好啦,今天把我体会到的记录一下: 网上其实打包ANE的教程好多,我也找了好多好多.但是好多我自己试了还是 ...
- 读书笔记「Python编程:从入门到实践」_7.用户输入和while循环
7.1 函数input()的工作原理 函数input() 让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个变量中,以方便你使用. message = input(&qu ...
- C# 写入二进制文件
写入整型25 文件在MiniHex中显示 写入字符串I am happy 0A 6D - 6D - 这一行数据是C#把字符串转换为16进制形式 不知道为啥用MiniHex打开多了个0A 写入空&quo ...
- element-ui按需引入
{ "name": "vue-test2", "description": "A Vue.js project", &q ...
- static关键字的定义与使用
static关键字概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的.也就是说,既然属于类,就可以不靠创建对象来调用了. 1 ...
- 【转】虚拟化(五):vsphere高可用群集与容错
vsphere高级功能需要vcenter server和共享存储的支持才能实现.vsphere的高级功能有 vmotion.storage vmotion.vsphere HA.vsphere DRS ...
- lvs负载均衡net模式
环境配置,一台双网卡的ens33,ens37,ens37的网关是ens33的IP,指定一下nginx ens33,192.168.30.22,ens37,172.16.1.1nginx 192.16 ...
- BZOJ 4712: 洪水 挖坑待补
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...