wzhwangzhuohui 2020-05-12
本文以Filebeat为例,介绍安装和管理采集器(Beats)的方法。通过采集器,您可以收集云服务器ECS(Elastic Compute Service)中的日志文件、网络数据、服务器指标等数据,发送到阿里云Elasticsearch(简称ES)或阿里云Logstash中,进行监控、分析等操作。
前提条件
您已完成以下操作:
创建阿里云ES实例或Logstash实例。
详情请参见创建阿里云Elasticsearch实例和创建阿里云Logstash实例。
开启阿里云ES实例的自动创建索引功能。
处于安全考虑,阿里云ES默认不允许自动创建索引。但是Beats目前依赖该功能,因此如果采集器Output选择为Elasticsearch,需要开启自动创建索引功能,详情请参见开启自动创建索引。
创建阿里云ECS实例,且该ECS实例与阿里云ES实例或Logstash实例处于同一专有网络VPC(Virtual Private Cloud)下。
详情请参见使用向导创建实例。
注意
Beats默认安装目录为/opt/aliyunbeats/。安装后,ECS上会生成conf、logs和data这3个目录,分别映射了配置文件、Beats日志文件和Beats数据文件。建议不要删除或修改这3个文件中的内容,否则可能出现异常或者导致数据不正确。当出现问题时,您可以在logs目录下查看Beats日志,来定位问题。
Beats目前仅支持Aliyun Linux ,RedHat和CentOS这三种操作系统。
在目标ECS实例上安装云助手和Docker服务。
可以看到还需要在每个主机上面部署docker服务,为了收集日志还得部署docker,感觉有点得不偿失,于是我们就开始自己部署filebeat来采集,下面记录下实际的流程
1、开启es自动创建索引功能
出于安全考虑,阿里云默认是关闭改功能,但想要通过beats写入es,必须开启该功能,注意该功能开启请在夜间无业务流量期间执行,因为开启该功能会重启es实例
2、各个组件部署filebeat并配置
部署过程略过,下面简单贴出部分配置
filebeat.inputs: - type: log enabled: true paths: - /home/logs/*.access.log tags: ["access"] json.keys_under_root: true json.overwrite_keys: true tail_files: true - type: log enabled: true paths: - /home/logs/error.*.log tags: ["error"] tail_files: true setup.kibana: host: "xxxxx.elasticsearch.aliyuncs.com:5601" ##请填写你实际的地址 output.elasticsearch: hosts: ["yyy.elasticsearch.aliyuncs.com:9200"] ##请填写你实际的地址 username: "aaa" ##用户名及密码请填写实际的 password: "bbb" indices: - index: "nginx-access-%{[beat.version]}-%{+yyyy.MM}" when.contains: tags: "access" - index: "nginx-error-%{[beat.version]}-%{+yyyy.MM}" when.contains: tags: "error" setup.template.name: "nginx" setup.template.pattern: "nginx-*" setup.template.enabled: false setup.template.overwrite: true
3.启动并通过kibana观察es索引
systemcat start filebeat
可以看到日志已经被采集到es里面,接下来添加该索引进行展示即可
个人现已录制了一套按照企业生产标准的jumpserver堡垒机(2020年1.5.8最新版本)落地到企业应用视频,如有兴趣请前往
https://edu.51cto.com/sd/84158
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。