自建ELK服务器,设置自动备份和清理备份

ELK官网: https://www.elastic.co/

**安装要求:

1.java1.8以上版本

2. elasticsearch , logstash, kibana要安装同一个版本号

1. 搭建ELK服务器

1.1 要先删除1.7版的JAVA包,并安装1.8版。参考以下网址完成。

http://blog.csdn.net/yony2011/article/details/50313223

1.2 客户端需要安装一个插件filebeat,直接解压即可使用。

1.3 cd /usr/local/filebeat/ 修改里面的yml文件。

- input_type: log   # Paths that should be crawled and fetched. Glob based paths.   paths:     #- /var/log/*.log      - /yoururl/weixin_access.log

output.logstash:   # The Logstash hosts   # hosts: ["localhost:5044"]   hosts: ["logstaship:5044"]   index: pro_weixin_accesslog

启动命令

nohup /usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat-accesslog.yml -d "publish" > /dev/null 2>&1 &

1.4 服务器端安装logstash直接解压即可使用, 在 /usr/local/logstash/bin内新建logstash-access.conf。以下filter处是用正则拆分日志内容。可在http://grokdebug.herokuapp.com上面做拆分正则脚本调试。

filter {   grok {        match => { "message" => "%{IP:client} \| - \| \[%{HTTPDATE:logdate}\] \| \"%{WORD:method} %{URIPATHPARAM:request_url} %{WORD:method1}/%{NUMBER:nil}\" \| %{NUMBER:status} \| %{NUMBER:bytes} \|%{xsx:unknown}\| \"%{xyh:userinfo}" }                               }

启动命令

nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/bin/logstash-access.conf > /dev/null 2>&1 &

1.5 服务器端安装elasticsearch和kibana,也是直接解压可用。启动命令如下:

su elasticsearch

nohup /usr/local/elasticsearch/bin/elasticsearch  > /dev/null 2>&1&

nohup /usr/local/kibana/bin/kibana > /dev/null 2>&1&

2.设置自动备份和清理备份

2.1 配置文件必须添加如下参数

path.repo:  /mnt/backups/es_mybak

2.2  创建备份仓库es_mybak,授777权限,或者转给用户ELK

2.3 备份命令

2.3.1.创建备份仓库

curl -u elasticaccount:password -XPUT 'localhost:9200/_snapshot/EsBackup' -d '{"type":"fs","settings": {"location":"/data/backups/es_mybak"}}'

2.3.2.查询备份仓库

curl -u elasticaccount:password -XGET 'localhost:9200/_snapshot?pretty'

2.3.3.备份部分索引

curl -u elasticaccount:password -XPUT 'localhost:9200/_snapshot/EsBackup/snapshot_pro_weixin_accesslog-2017.06.18' -d '{"indices":"pro_weixin_accesslog-2017.06.18"}'

2.3.4.查看备份快照

curl -u elasticaccount:password -XGET 'localhost:9200/_snapshot/EsBackup/snapshot_*?pretty'

curl -u elasticaccount:password -XGET 'localhost:9200/_snapshot/EsBackup/snapshot_pro_weixin_accesslog-2017.06.18?pretty'

2.3.5.删除索引

curl -u elasticaccount:password -XDELETE 'localhost:9200/pro_weixin_accesslog-2017.06.18?pretty'

2.3.6.根据快照恢复索引

curl -u elasticaccount:password -XPOST 'localhost:9200/_snapshot/EsBackup/snapshot_pro_weixin_accesslog-2017.06.18/_restore'

2.3.7.删除快照

curl -u elasticaccount:password -XDELETE 'localhost:9200/_snapshot/EsBackup/snapshot_pro_weixin_accesslog-2017.06.18'

2.4 使用上述命令做成SHELL脚本,再结合JENKINS定时构建。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容