全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

logstash部署

更新时间:2017-12-04 10:23:18

基础环境准备

1、购买和阿里云ECS服务,准备1.8以上版本的JDK。

2、下载5.5.3版本的logstash。

3、对下载的logstash压缩包进行解压缩。

  1. tar -xzvf logstash-5.5.3.tar.gz
  2. # ElasticSearch从5.x版本之后进行了配置文件的严格校验。

测试用例

1、创建数据接入用户名和密码

创建角色

  1. curl -u elastic:es-password -XPOST http://***instanceId***.elasticsearch.aliyuncs.com:9200/_xpack/security/role/***role-name*** -d '{"cluster": ["manage_index_templates", "monitor"],"indices": [{"names": [ "logstash-*" ], "privileges":["write","delete","create_index"]}]}'
  2. # es-password 是您登录kibana的密码
  3. # ***instanceId*** 是您的实例id
  4. # ***role-name*** 您想使用的角色名称
  5. # logstash默认的索引名称以logstash-当前日期命名,所以在添加用户角色的时候需要有对logstash-*索引读写权限。

创建用户

  1. curl -u elastic:es-password -XPOST http://***instanceId***.elasticsearch.aliyuncs.com:9200/_xpack/security/user/***user-name*** -d '{"password" : "***logstash-password***","roles" : ["***role-name***"],"full_name" : "your full name"}'
  2. # es-password 是您登录kibana的密码
  3. # ***instanceId*** 是您的实例id
  4. # ***user-name*** 是您想创建的数据接入用户名
  5. # ***logstash-password*** 是您创建的数据接入用户的密码

以上创建角色和用户,同样可以在kibana页面中进行配置。添加角色img添加用户img

2、编写conf文件

参考:https://www.elastic.co/guide/en/logstash/5.5/configuration-file-structure.html

样例:在ecs中创建test.conf文件,添加以下配置信息。

  1. input {
  2. file {
  3. path => "/your/file/path/xxx"
  4. }
  5. }
  6. filter {
  7. }
  8. output {
  9. elasticsearch {
  10. hosts => ["http://***instanceId***.elasticsearch.aliyuncs.com:9200"]
  11. user => "***user-name***"
  12. password => "***logstash-password***"
  13. }
  14. }
  15. # ***instanceId*** 是您的实例id
  16. # ***user-name*** 是您想创建的数据接入用户名
  17. # ***logstash-password*** 是您创建的数据接入用户的密码
  18. # 用户名和密码需要用英文引号引起来防止特殊字符在启动logstash时报错

按照配置的conf文件执行logstash

  1. bin/logstash -f path/to/your/test.conf
  2. # 在logstash提供了丰富的input、filter、output插件,只需要简单的配置就可是实现数据的流转。该例子展示了通过logstash获取file中的变化,提交到elasticsearch集群。只要监控的file文件有新增内容,logstash就会自动的索引到elasticsearch集群中。

注意事项及问题解决

更改集群自动创建索引配置

img

aliyun-elasticsearch为了保证用户操作数据的时候的安全性,默认把自动创建索引的配置设置了不允许。logstash在上传数据的时候是采用的提交数据创建索引的方式,并不是采用的create index的api创建的索引。所以在使用logstash上传数据的时候需要把集群的自动创建索引的配置设置为允许。

在修改该配置的时候,集群会自动重启。

没有创建索引没有权限

img

核对一下自己创建的接入数据的用户拥有的角色是否具有”write”,”delete”,”create_index”这几个的权限。

内存不足

img

logstash默认配置的是1g内存,如果您申请的ecs内存不足的话,可以适当的调小logstash内存使用。修改config/jvm.options 中的内存配置。

配置test.conf时用户名密码没有添加引号

img

如果在配置您的任务文件时即上文提到的test.conf文件,用户名和密码中有特殊字符但是又没有用引号引用起来,就会出现上述的错误信息。

【补充说明】如果希望可以监控logstash节点,并收集监控日志。

  • 需要您在安装logstash的时候同时为logstash安装X-Pack的插件,下载地址:https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.5.3.zip
  • 在完成下载后,需要对X-Pack进行部署安装。
  • bin/logstash-plugin install file:///path/to/file/x-pack-5.5.3.zip 。
  • 添加logstash监控用户,阿里云ElasticSearch集群默认禁掉logstash_system用户,需要创建一个以角色为logstash_system的用户名(用户名不可为logstash_system)。可以根据自己的意愿命名,本文以用户logstash_system_monitor为例。推荐两种方式创建用户:
    • 通过kibana管理模块添加监控用户。登录kibana管理页面,然后按如下图操作。img点击create userimg输入需要的信息,然后提交。img
    • 通过指令添加用户。
      1. curl -u elastic:es-password -XPOST http://***instanceId***.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor -d '{"password" : "***logstash-monitor-password***","roles" : ["logstash_system"],"full_name" : "your full name"}'
      2. # es-password 是您登录kibana的密码
      3. # ***instanceId*** 是您的实例id
      4. # ***logstash-monitor-password*** 是您创建的logstash_system_monitor的密码
本文导读目录