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定时构建。