Elasticsearch及ELK使用(二):日志数据采集

1 继续安装ELK

上文已经安装了ELK三大件中的两个软件elasticsearch和kibana。 在此基础上,在同一个机器上再安装logstash, 完成三大件的安装。

  1. (非root用户)登录linux,下载最新的logstash安装包 下载地址https://www.elastic.co/cn/downloads/elasticsearch 。然后解压即可

    cd /home/zyplanke/elk
    curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.8.3.tar.gz
    tar -xvf logstash-6.8.3.tar.gz
    

2 安装filebeat

filebeat通常与日志源服务器放同一台机器上。因此我们在另一台跑业务(有业务日志)的Linux机器上安装filebeat。

如果是收集业务系统的日志,确保filebeat对日志文件具有读权限。

  1. 登录业务系统(通常可使用业务系统的用户)载最新的filebeat安装包 下载地址https://www.elastic.co/cn/downloads/elasticsearch

    cd /home/zyplanke/elk
    curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.8.3-linux-x86_64.tar.gz
    tar -xvf filebeat-6.8.3-linux-x86_64.tar.gz
    

3 配置日志文件采集

filebeat从日志源采集日志数据,通过网络发给logstash,logstash将数据进行处理后发给elasticsearch。

前面已经将elasticsearch和kibana,下面分别配置filebeat和logstash。

3.1 配置filebeat

编辑filebeat.yml, 内容如下

filebeat.inputs:
- type: log
  enabled: true
  paths: 
   - /var/log/*.log
  fields:
  	logcategory: oslog

#output.elasticsearch:        由于我们filebeat不直接发给elasticsearch,所有注释本配置。
#  hosts: ["localhost:9200"]


output.logstash:
  hosts: ["192.168.43.201:5044"]

上面的filebeat配置:

  • input表示,filebeat从指定的目录和文件作为采集的日志源(路径和文件名支持星号模糊匹配。 注意必须有被采集文件的读权限)。必须enabled为true,否则不生效。 可以配置多个input。
  • 而fields是自己定义的字段(并赋值),方便后续处理。
  • output表示,filebeat将采集的日志(加上fileds、tag及其他属性)后,将起传输到logstash

3.2 配置logstash

在config目录中,以复制logstash-sample.conf样例文件,得到文件logstash_file.conf。

编辑config/logstash_file.conf,内容如下

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.43.201:9200"]
    index => "%{[fields][logcategory]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

上面logstash_file.conf配置的:

  • input:logstash从filebeat接收数据的本地端口。
  • filter(可选):进行转换改变
  • output:logstash结果传输到哪里(这里定义为传输到elasticsearch,若elasticsearch集群有多个节点则hosts内容应多个)。同时配置了索引名。注意这里使用了filebeat自定义字段。

3.3 启动

  1. 启动logstash。
./logstash -f ../config/logstash_file.conf

启动需要多等一小会。

  1. 启动filebeat。 ./filebeat -e -c 配置文件名 -e输出到标准输出,默认输出到syslog和logs下 -c 指定配置文件
./filebeat -e -c filebeat.yml

默认filebeat会在当前目录创建data目录,里面存放了每个采集文件的名字和坐标(偏移量),这样可以在filebeat重启后支持断点续传。

如果希望filebeat全部重新传输,则可以把filebeat下整个data目录删除(可能在elasticsearch中也要删除。),让filebeat觉得从来都没有传输过。
附:为了便于filebeat的启停管理,写了一个名为:run_filebeat.sh的Shell脚本供使用

##################################################################################
# desc:    FileBeat运行管理脚本
###################################################################################
CURR_PWD=`pwd -P`

Usage()
{
   
	echo "*******************************************************"
	echo " Usage: "
	echo "  
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要远程采集日志,需要在目标服务器上安装一个日志采集代理,如Logstash或Filebeat。然后,将代理配置为将日志发送到Elasticsearch集群中的一个或多个节点。 以下是大致步骤: 1. 在目标服务器上安装Logstash或Filebeat 2. 配置代理以获取要采集的日志 3. 配置代理以将日志发送到Elasticsearch集群中的节点 4. 在Elasticsearch中创建适当的索引模板和搜索查询以检索日志 具体来说,可以按照以下步骤进行操作: 1. 安装Logstash或Filebeat 对于Logstash,可以按照官方文档中的指南进行操作。对于Filebeat,也可以按照官方文档中的指南进行操作。 2. 配置代理 在Logstash或Filebeat中,需要配置输入和输出。输入是指要采集的日志文件或数据源,输出是指将日志发送到Elasticsearch集群中的节点。 例如,在Filebeat中,可以使用以下配置: ``` filebeat.inputs: - type: log enabled: true paths: - /var/log/myapp/*.log output.elasticsearch: hosts: ["http://es-node1:9200", "http://es-node2:9200"] ``` 这将采集`/var/log/myapp/*.log`中的日志,并将其发送到`es-node1`和`es-node2`节点上的Elasticsearch。 3. 创建索引模板和搜索查询 在Elasticsearch中,需要创建一个适当的索引模板以确保日志正确地解析和存储。还可以创建搜索查询以检索和过滤日志。 例如,可以使用以下示例索引模板: ``` PUT _template/myapp_logs { "index_patterns": ["myapp-*"], "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "timestamp": { "type": "date" }, "message": { "type": "text" }, "tags": { "type": "keyword" } } } } ``` 此模板指定了一个索引模式,即`myapp-*`,并定义了索引中的字段。还可以创建搜索查询以检索和过滤日志。 总之,远程采集日志需要配置日志采集代理,并将其配置为将日志发送到Elasticsearch集群中的节点。然后,在Elasticsearch中创建索引模板和搜索查询以检索日志

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值