filebeat.full.ymlyml 支持动态配置吗

1972人阅读
Filebeat的配置文件是/etc/filebeat/filebeat.yml,遵循YAML语法。具体可以配置如下几个项目:
Logging(可选)
Run Options(可选)
这个Blog主要讲解Filebeat的配置部分,其他部分后续会有新的Blog介绍。
Filebeat的部分主要定义prospector的列表,定义监控哪里的日志文件,关于如何定义的详细信息可以参考filebeat.yml中的注释,下面主要介绍一些需要注意的地方。
filebeat.prospectors:
- input_type: log
& & - /log/channelserver.log
& & #- /home/wang/data/filebeat-5.0.2-linux-x86_64/test.log
& encoding:&gbk
& symlinks: true
& include_lines: ['\[.*?统计\]','\[.*?结算\]']
& document_type: channelserver
& fields_under_root: true
& & host: 192.168.10.155
processors:
- drop_fields:
& & #fields: [&beat.hostname&, &beat.name&, &beat.version&, &input_type&, &beat&]
& & fields: [&input_type&, &beat&, &offset&, &source&]
output.redis:
& enabled: true
& hosts: [&192.168.10.188&]
& port: 6379
& datatype: list
& key: &filebeat&
output.file:
& enabled: true
& path: &/tmp/filebeat&
output.console:
& enabled: false
paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是:
/var/log/* /*.log
则只会去/var/log目录的所有子目录中寻找以”.log”结尾的文件,而不会寻找/var/log目录下以”.log”结尾的文件。
encoding:指定被监控的文件的编码类型,使用plain和utf-8都是可以处理中文日志的。
input_type:指定文件的输入类型log(默认)或者stdin。
exclude_lines:在输入中排除符合正则表达式列表的那些行。
include_lines:包含输入中符合正则表达式列表的那些行(默认包含所有行),include_lines执行完毕之后会执行exclude_lines。
exclude_files:忽略掉符合正则表达式列表的文件(默认为每一个符合paths定义的文件都创建一个harvester)。
fields:向输出的每一条日志添加额外的信息,比如“level:debug”,方便后续对日志进行分组统计。默认情况下,会在输出信息的fields子目录下以指定的新增fields建立子目录,例如fields.level。
level: debug
则在Kibana看到的内容如下:
fields_under_root:如果该选项设置为true,则新增fields成为顶级目录,而不是将其放在fields目录下。自定义的field会覆盖filebeat默认的field。例如添加如下配置:
level: debug&
fields_under_root: true
则在Kibana看到的内容如下:
ignore_older:可以指定Filebeat忽略指定时间段以外修改的日志内容,比如2h(两个小时)或者5m(5分钟)。
close_older:如果一个文件在某个时间段内没有发生过更新,则关闭监控的文件handle。默认1h。
force_close_files:Filebeat会在没有到达close_older之前一直保持文件的handle,如果在这个时间窗内删除文件会有问题,所以可以把force_close_files设置为true,只要filebeat检测到文件名字发生变化,就会关掉这个handle。
scan_frequency:Filebeat以多快的频率去prospector指定的目录下面检测文件更新(比如是否有新增文件),如果设置为0s,则Filebeat会尽可能快地感知更新(占用的CPU会变高)。默认是10s。
document_type:设定Elasticsearch输出时的document的type字段,也可以用来给日志进行分类。
harvester_buffer_size:每个harvester监控文件时,使用的buffer的大小。
max_bytes:日志文件中增加一行算一个日志事件,max_bytes限制在一次日志事件中最多上传的字节数,多出的字节会被丢弃。
multiline:适用于日志中每一条日志占据多行的情况,比如各种语言的报错信息调用栈。这个配置的下面包含如下配置:
pattern:多行日志开始的那一行匹配的pattern
negate:是否需要对pattern条件转置使用,不翻转设为true,反转设置为falsematch:匹配pattern后,与前面(before)还是后面(after)的内容合并为一条日志
max_lines:合并的最多行数(包含匹配pattern的那一行)timeout:到了timeout之后,即使没有匹配一个新的pattern(发生一个新的事件),也把已经匹配的日志事件发送出去
tail_files:如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。
backoff:Filebeat检测到某个文件到了EOF之后,每次等待多久再去检测文件是否有更新,默认为1s。
max_backoff:Filebeat检测到某个文件到了EOF之后,等待检测文件更新的最大时间,默认是10秒。
backoff_factor:定义到达max_backoff的速度,默认因子是2,到达max_backoff后,变成每次等待max_backoff那么长的时间才backoff一次,直到文件有更新才会重置为backoff。比如:
如果设置成1,意味着去使能了退避,每隔backoff那么长的时间退避一次。
spool_size:spooler的大小,spooler中的事件数量超过这个阈值的时候会清空发送出去(不论是否到达超时时间)。
idle_timeout:spooler的超时时间,如果到了超时时间,spooler也会清空发送出去(不论是否到达容量的阈值)。
registry_file:记录filebeat处理日志文件的位置的文件
config_dir:如果要在本配置文件中引入其他位置的配置文件,可以写在这里(需要写完整路径),但是只处理prospector的部分。
publish_async:是否采用异步发送模式(实验功能)。
Filebeat的基本原理其实就是有一群prospector,每个prospector手下管着一批harvester,每个harvester负责监视一个日志文件,把变动的内容由spooler汇总之后交给Logstash或者Elasticsearch。如果想快速搭建一个可以工作的Filebeat,无非有三点:
1.说明要监视哪些文件
&prospectors:
& &- & & &paths:
& & & &- &/var/log/lmz.log&
2.说明收集的日志发给谁
如果直接发送给Elasticsearch,可以设置如下:
&elasticsearch:
& & hosts: [&localhost:
如果需要发给Logstash,可以注释掉Elasticsearch的配置,然后设置Logstash如下:
&logstash:
& &hosts: [&localhost:
当然,也需要在Logstash的配置中指明要从该端口(5044)监听来自Filebeat的数据:
/etc/logstash/conf.d/beats-input.conf:
& &port =& 5044
这里的配置举例是把Filebeat、Logstash、Elasticsearch安装在了一台机器上,实际使用中肯定是分开部署的,需要根据实际情况修改配置文件中的IP地址及端口号。
3.让Elasticsearch知道如何处理每个日志事件。
默认的Elasticsearch需要的index template在安装Filebeat的时候已经提供,路径为/etc/filebeat/filebeat.template.json,可以使用如下命令装载该模板:
$ curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json11
当然,也不能忘了,每次修改完Filebeat的配置后,需要重启Filebeat才能让改动的配置生效。
1.下载和安装
https://www.elastic.co/downloads/beats/filebeat11
目前最新版本 1.3.0&
这里选择&&64-BIT 即方式一&
方式一:源码
wget https://download.elastic.co/beats/filebeat/filebeat-1.3.0-x86_64.tar.gztar -zxvf filebeat-1.3.0-x86_64.tar.gz1212
方式二:deb
curl -L -O https://download.elastic.co/beats/filebeat/filebeat_1.3.0_amd64.debsudo dpkg -i filebeat_1.3.0_amd64.deb1212
方式三:rpm
curl -L -O https://download.elastic.co/beats/filebeat/filebeat-1.3.0-x86_64.rpmsudo rpm -vi filebeat-1.3.0-x86_64.rpm1212
方式四:MAC
curl -L -O https://download.elastic.co/beats/filebeat/filebeat-1.3.0-darwin.tgztar -xzvf filebeat-1.3.0-darwin.tgz1212
2.配置Filebeat
环境说明:&
1)elasticsearch和logstash 在不同的服务器上,只发送数据给logstash&
2)监控nginx日志&
3)监控支付日志&
4)监控订单日志
编辑filebeat.yml
vim filebeat.yml11
默认监控日志配置
filebeat:&
&prospectors:
&- & & &paths:
& & & &- /var/log/*.log & & &input_type: log
按照要求修改为
filebeat:&
&prospectors:
&- & & &paths:
& & & &- /www/wwwLog/_old/*.log & & & &- /www/wwwLog//*.log & & &input_type: log&
& & &document_type: nginx-access-
- & & &paths:
& & & &- /www/wwwRUNTIME//order/*.log & & &input_type: log&
& & &document_type: order-
&- & & &paths:
& & & &- /www/wwwRUNTIME//pay/*.log & & &input_type: log&
& & &document_type: pay-
&#elasticsearch:
&# & hosts: [&localhost:9200&]
&&logstash:
& &hosts: [&10.1.5.65:5044&]
...其他部分没有改动,不需要修改
paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是:
/var/log/* /*.log11
则只会去/var/log目录的所有子目录中寻找以”.log”结尾的文件,而不会寻找/var/log目录下以”.log”结尾的文件。&
2. input_type:指定文件的输入类型log(默认)或者stdin。&
3. document_type:设定Elasticsearch输出时的document的type字段,也可以用来给日志进行分类。
把 elasticsearch和其下的所有都注释掉(这里Filebeat是新安装的,只注释这2处即可)
output: &#elasticsearch: &# & hosts: [&localhost:
开启 logstash(删除这两行前的#号),并把localhost改为logstash服务器地址
& &hosts: [&10.1.5.65:
如果开启logstash了,那么Logstash配置中要设置监听端口 5044:&
这个是默认文件位置,如果不存在请自行查找
vim /etc/logstash/conf.d/beats-input.conf11
& &port =& 5044
./filebeat -e -c filebeat.yml&-d &Publish&11
如果能看到一堆东西输出,表示正在向elasticsearch或logstash发送日志。&
如果是elasticsearch可以浏览:&如果有新内容返回,表示ok&
正常后,Ctrl+C结束
nohup ./filebeat -e -c filebeat.yml &/dev/null 2&&1 &11
上面会转入后台运行
查找进程 ID
ps -ef |grep filebeat11
kill -9 &id11
3.X kibana设置
如果使用 kibana 做日志分析,&
在kibana里,创建一个索引,注意pattern为:filebeat-*&
4.高级配置说明
5.其他说明
默认的Elasticsearch需要的index template在安装Filebeat的时候已经提供,路径为/etc/filebeat/filebeat.template.json,可以使用如下命令装载该模板:
curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json11
如果运行成功则返回如下,表示模板已被接收
&&acknowledged& : true}123123
每次修改Filebeat配置,重启Filebeat才能生效
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:386063次
积分:5171
积分:5171
排名:第5765名
原创:30篇
转载:693篇
(3)(3)(12)(3)(7)(4)(8)(77)(76)(32)(2)(1)(1)(6)(7)(9)(7)(2)(2)(5)(10)(5)(2)(8)(17)(27)(8)(21)(37)(30)(13)(16)(44)(53)(30)(54)(81)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'用户名:kjh2007abc
文章数:202
评论数:31
访问量:501219
注册日期:
阅读量:1297
阅读量:3317
阅读量:582222
阅读量:466895
51CTO推荐博文
&# &一:简介```Elasticsearch作为日志的存储和索引平台; &&Kibana 用来从 Elasticsearch获取数据,进行数据可视化,定制数据报表; &Logstash 依靠强大繁多的插件作为日志加工平台; &Filebeat 用来放到各个主机中收集指定位置的日志,将收集到日志发送到 Logstash; &Log4j 直接与 Logstash 连接,将日志直接Logstash(当然此处也可以用 Filebeat 收集 tomcat 的日志)。```#### &port```Elasticsearch&& & 9200:对外提供服务的 HTTP 端口& & 9300:作为交互的 TCP 端口Logstash&& & 5000: Logstash TCP input& & 5044:用于接收来着 Filebeat 收集的日志数据& & 4569:用于接收来着 Log4j 的日志数据& & 8080:用于接收来自插件 Logstash-input-http 的日志数据Kibana& & 5601 端口用于 Kibana的界面```#### &安装环境介绍:```- 系统版本 && more /etc/redhat-release &&& CentOS Linux release 7.2.1511 (Core) &&- 系统内核 && uname -a && Linux yunwei-ts-100-71 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC
x86_64 x86_64 GNU/Linux &- java 版本& java -version && openjdk version "1.8.0_101" && OpenJDK Runtime Environment (build 1.8.0_101-b13) && OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode) &- 如果版本过低,或者没有安装执行命令如下: && yum install &java-1.8.0-* && 注意: Logstash需要Java 8或更高版本.可以使用 && /technetwork/java/javase/downloads/index.html && [oracle官方版本] 或者使用开源版本OpenJDK: http://openjdk.java.net/.```#### 二:集群安装配置```- 测试集群规划 && 主机名 & & & & & & & & & &IP地址 & &&& yunwei-ts-100-70 & & &172.16.1.70 && yunwei-ts-100-71 & & &172.16.1.71 && yunwei-ts-100-111 & & 172.16.1.111 &&- 软件版本: && elasticsearch 2.4.1 && logstash.noarch 1:2.3.4-1 & && filebeat-1.2.3 & & &&& kibana.x86_64 0:4.5.3-1```### 安装部署elasticsearch集群##### 简介& & ElasticSearch原生支持Cluster模式,节点之间通过单播或多播进行通信;ElasticSearch Cluster能自动检测节点的增加、失效和恢复,并重新组织索引。& &&##### ELK的工作原理:& & 使用多播进行机器发现同一个集群内的节点,并汇总各个节点的返回组成一个集群,主节点要读取各个节点的 && & 状态,在关键的时候进行数据的恢复,主节点会jian'shi监视各个节点的状态,并决定每个分片的位置,通过ping的request检测各失效的节点。& &&##### elasticsearch的基本结构认识```以mysql数据库为实例对应理解:mysql 数据库databases & &表tables & & & 行rows & & & & & & & &列columnses & 索引indices & & & & 类型types & & 文档documents & & & & &字段fields```##### elasticsearch中所说的索引容易混淆,3种含义:```1. 索引(名词) 如上面类比,一个索引(index)就好比是mysql中的数据库,它是存储数据的地方。2. 索引(动词)表示把一个文档存储到索引(名词)里。3. 倒排索引 好比mysql为特定列增加一个索引。- & 和mysql类似,每个库都得有表,还有表的结构。es的每一个索引都有个类型,而每个type(类型)得有个mapping (映射)。mapping就像是mysql中的表结构, 他将每个字段匹配为一种确定的数据类型(string,date等)。 &- & 你可以向已有映射中增加字段,但你不能修改它。如果一个字段在映射中已经存在,这可能意味着那个字段的数据已经被索引。 & & & &- & 如果你改变了字段映射,那已经被索引的数据将错误并且不能被正确的搜索到.为了提高搜索的效率,es使用倒排索引来做全文搜索。通过analyzer(分词器)先把需要分析的文本,表征化为适合的term(词),然后标准化这些term,使他们容易被搜索到。(比如说模糊大小写,空格等等)```##### 集群规划```主机名 & & & & & IP & & & & & & & & & & 集群服务 &&yunwei-ts-100-70 &172.16.100.70 & & & & (elasticsearch) &yunwei-ts-100-70 &172.16.100.71 & & & & (elasticsearch) &yunwei-ts-100-70 &172.16.100.111 & & & &(elasticsearch)软件版本: 2.4.1-1```#### 安装 Elasticsearch###### 添加yum 签名key,& & rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch###### 添加 elasticsearch.repo 到 /etc/yum.repos.d/ 目录```cat &/etc/yum.repos.d/elasticsearch.repo &&-EOF[elasticsearch-2.x]name=Elasticsearch repository for 2.x packagesbaseurl=https://packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearchenabled=1EOF```###### 2.1.3:安装软件包```yum install elasticsearch &-y```###### 建立slasticsearch 存储数据的目录```mkdir -p &/data/elasticsearchchown elasticsearch.elasticsearch & &/data/elasticsearch```###### 2.1.4:调整配置文件```vi /etc/elasticsearch/elasticsearch.ymlcluster.name: ptsearch & & & & & & & & & & & & & &# 组名(同一个组,组名必须一致)node.name: yunwei-ts-100-70 & & & & & & & & & & & # 节点名称,建议和主机名一致path.data: /data/elasticsearch & & & & & & & & & &# 数据存放的路径path.logs: /var/log/elasticsearch/ & & & & & & & &# 日志存放的路径bootstrap.mlockall: true & & & & & & & & & & & & &# 锁住内存,不被使用到交换分区去network.host: 0.0.0.0 & & & & & & & & & & & & & & # 网络设置http.port: 9200 & & & & & & & & & & & & & & & & & &# 端口discovery.zen.ping.unicast.hosts: ["172.16.100.71","172.16.100.111"] & &#手动发现节点,写本机之外的集群节点IP地址discovery.zen.ping.multicast.enabled: false & & & #关闭多播模式```==以上配置3台elasticsearch节点都要配,注意nodename写每台主机的名称,discovery.zen.ping.unicast.hosts:xie写本机之外的集群节点IP地址。==###### 2.1.5:添加开机启动systemctl enable elasticsearch.service###### 启动服务systemctl start elasticsearch###### 查看服务状态```systemctl status elasticsearch..............& Process: 6470 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS)&Main PID: 6473 (java)& &Memory: 280.2M& &CGroup: /system.slice/elasticsearch.service& & & & & &└─6473 /bin/java -Xms256m -Xmx1g -Djava.awt.headless=true&```==注意:上面可以看出elasticsearch设置默认的内存最小256m,最大1g==##### 2.1.6:检查,验证服务器端口```netstat -antlp |egrep ""tcp & & & &0 & & &0 172.16.100.70:9200 & & &172.16.3.151:36013 & & &SYN_RECV & &- & & & & & & & & &&tcp & & & &0 & & &0 172.16.100.70:9200 & & &172.16.3.151:36012 & & &SYN_RECV & &- & & & & & & & & &&tcp & & & &0 & & &0 127.0.0.1:35793 & & & & 127.0.0.1:9200 & & & & &TIME_WAIT & - & & & & & & & & &&tcp & & & &0 & & &0 127.0.0.1:35791 & & & & 127.0.0.1:9200 & & & & &TIME_WAIT & - & & & & & & & & &&tcp & & & &0 & & &0 127.0.0.1:35794 & & & & 127.0.0.1:9200 & & & & &TIME_WAIT & - & & & & & & & & &&tcp & & & &0 & & &0 127.0.0.1:35792 & & & & 127.0.0.1:9200 & & & & &TIME_WAIT & - & & & & & & & & &&tcp6 & & & 0 & & &0 :::9200 & & & & & & & & :::* & & & & & & & & & &LISTEN & & &6473/java & & & & &&tcp6 & & & 0 & & &0 :::9300 & & & & & & & & :::* & & & & & & & & & &LISTEN & & &6473/java & & & & &&tcp6 & & & 0 & & &0 172.16.100.70:53651 & & 172.16.6.24:9200 & & & &ESTABLISHED 19098/java & & & & &tcp6 & & & 0 & & &1 172.16.100.70:35771 & & 10.42.0.1:9200 & & & & &SYN_SENT & &19098/java```##### 启动两个端口```9200:集群之间事务通信9300:集群选举等```##### elasticsearch 目录环境介绍:```Environment=ES_HOME=/usr/share/elasticsearchEnvironment=CONF_DIR=/etc/elasticsearchEnvironment=DATA_DIR=/var/lib/elasticsearchEnvironment=LOG_DIR=/var/log/elasticsearchEnvironment=PID_DIR=/var/run/elasticsearchEnvironmentFile=-/etc/sysconfig/elasticsearch```## 验证服务接口响应##### 通过浏览器访问:http://172.16.100.70:9200/ &返回数据如下:```{& "name" : "yunwei-ts-100-70", & &《《===节点名称& "cluster_name" : "ptsearch", & &《《===集群名称& "version" : {& & "number" : "2.3.4", & & & & & && & "build_hash" : "e455fd0c13dceca8dbbdbbdabe3f",& & "build_timestamp" : "T11:24:31Z",& & "build_snapshot" : false,& & "lucene_version" : "5.5.0"& },& "tagline" : "You Know, for Search"}```##### 通过命令的方式查看数据(可以在node1本机上查看,也可以在其他机器上访问node的9200查看,如下)```curl -i -XGET 'http://172.16.100.70:9200/_count?pretty' -d '{"query":{"match_all":{}}}'HTTP/1.1 200 OKContent-Type: application/ charset=UTF-8Content-Length: 95{& "count" : 2,& "_shards" : {& & "total" : 1, & & & & & & &《《===集群加入节点后数据会变化& & "successful" : 1,& & "failed" : 0& }}```##### 查看健康信息:curl -XGET 'http://172.16.100.70:9200/_cluster/health?pretty'&```{& "cluster_name" : "ptsearch",& "status" : "yellow",& "timed_out" : false,& "number_of_nodes" : 1,& "number_of_data_nodes" : 1,& "active_primary_shards" : 1,& "active_shards" : 1,& "relocating_shards" : 0,& "initializing_shards" : 0,& "unassigned_shards" : 1,& "delayed_unassigned_shards" : 0,& "number_of_pending_tasks" : 0,& "number_of_in_flight_fetch" : 0,& "task_max_waiting_in_queue_millis" : 0,& "active_shards_percent_as_number" : 50.0}```##### 查看节点数:curl -XGET '172.16.100.70:9200/_cat/nodes?v'```host & & & & & ip & & & & & & heap.percent ram.percent load node.role master name & & & & & & & &172.16.100.111 172.16.100.111 & & & & & &7 & & & & &98 0.65 d & & & & m & & &yunwei-ts-100-111&172.16.100.70 &172.16.100.70 & & & & & & 5 & & & & &69 0.00 d & & & & * & & &yunwei-ts-100-70 & &&&主节点172.16.100.71 &172.16.100.71 & & & & & & 7 & & & & &97 0.00 d & & & & m & & &yunwei-ts-100-71```##### 查看节点分片信息:curl -XGET '172.16.100.70:9200/_cat/indices?v'```health status index & & & & & & & & & pri rep docs.count docs.deleted store.size pri.store.size&green &open & .kibana & & & & & & & & & 1 & 1 & & & & &2 & & & & & &0 & & 38.4kb & & & & 19.2kb&green &open & .marvel-es-1- & 1 & 1 & & & 1369 & & & & & &0 & &840.1kb & & & & &420kb&green &open & .marvel-es-1- & 1 & 1 & & & 4468 & & & & & &0 & & &1.2mb & & & &634.9kb```#### elasticsearch日志定期清理日志、索引索引旧数据需要清理,清理所以可以使用Elasticsearch的API。&例如:删除某个索引2016年11月份的所有索引,可以使用下面的命令:```curl -XDELETE 'http://localhost:9200/customer-2016.11.*'```## ElasticSearch参数优化(提高检索效率)```一、Linux操作系统优化1) &调整系统资源最大句柄数& & /etc/security/limits.conf& &在文件中增加& & &* soft nofile 65536& & &* hard nofile 655362) &设置bootstrap.mlockall: 为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。& & &同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过`ulimit -l unlimited`命令。3) &关闭文件更新时间& & &cat /etc/fstab& & &/dev/sda7 & /data/elasticSearch & & ext4 & &defaults,noatime 0 04) &提高ES占用内存(elasticsearch.in.sh)& & &ES_MIN_MEM=30g (一般为物理内存一半,但不要超过31G)& & &ES_MAX_MEM=30g官方建议:https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html#compressed_oops```## 二、Elasticsearch 字段缓存优化```1) &Fielddata(字段数据)& & Elasticsearh默认会将fielddata全部加载到内存。但是,内存是有限的,需要对fielddata内存做下限制:Indices.fieldata.cache.size 节点用于fielddata的最大内存,如果fielddata达到该阀值,就会把旧数据交换出去。默认设置是不限制,建议设置10%。2) &doc-values其实就是在elasticsearch 将数据写入索引的时候,提前生成好fileddata内容,并记录到磁盘上。因为fileddata数据是顺序读写的,所以即使在磁盘上,通过文件系统层的缓存,也可以获得相当不错的性能。doc_values只能给不分词(对于字符串字段就是设置了 "index":"not_analyzed",数值和时间字段默认就没有分词) 的字段配置生效。如相应字段设置应该是:"@timestamp":{& & & & & & & & & & "type":"date",& & & & & & & & & & "index":"not_analyzed",& & & & & & & & & & "doc_values":true,& & & & & & & & }优化参考文档:https://my.oschina.net/davehe/blog/549189```## 安装elasticsearch插件&安装部署访问下面博客页面:http://michaelkang./1838### elasticsearch 安装配置故障排查:###### elasticsearch服务启动报错:```[ 16:18:43,974][WARN ][bootstrap & & & & & & & &] Unable to lock JVM Memory: error=12,reason=Cannot allocate memory[ 16:18:43,975][WARN ][bootstrap & & & & & & & &] This can result in part of the JVM being swapped out.[ 16:18:43,975][WARN ][bootstrap & & & & & & & &] Increase RLIMIT_MEMLOCK, soft limit: 65536, hard limit: 65536[ 16:18:43,975][WARN ][bootstrap & & & & & & & &] These can be adjusted by modifying /etc/security/limits.conf, for example:&& & & & # allow user 'elasticsearch' mlockall& & & & elasticsearch soft memlock unlimited& & & & elasticsearch hard memlock unlimited[ 16:18:43,975][WARN ][bootstrap & & & & & & & &] If you are logged in interactively, you will have to re-login for the new limits to take effect.[ 16:18:44,165][INFO ][node & & & & & & & & & & ] [yunwei-ts-100-71] version[2.4.1], pid[31324], build[c67dc32/T18:57:55Z][ 16:18:44,165][INFO ][node & & & & & & & & & & ] [yunwei-ts-100-71] initializing ...[ 16:18:44,719][ERROR][bootstrap & & & & & & & &] Exception部分内容省略```###### 解决办法:```1:修改启动文件systemd:/usr/lib/systemd/system/elasticsearch.service set: LimitMEMLOCK=infinitySysV:/etc/sysconfig/elasticsearch set: MAX_LOCKED_MEMORY=unlimitedUpstart:/etc/default/elasticsearch set: MAX_LOCKED_MEMORY=unlimitedThen restart Elasticsearch.2:在limit 文件添加配置如下:&/etc/security/limits.conf&&elasticsearch soft memlock unlimitedelasticsearch hard memlock unlimited```---## 2.2:安装配置Kibana##### 2.2.1:添加yum 签名key,添加 kibana.repo 到 /etc/yum.repos.d/ 目录```rpm --import https://packages.elastic.co/GPG-KEY-elasticsearchcat &/etc/yum.repos.d/kibana.repo &&-EOF[kibana-4.5]name=Kibana repository for 4.5.x packagesbaseurl=http://packages.elastic.co/kibana/4.5/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenabled=1EOF```##### 安装软件包,软件版本: 4.5.4-1&```yum install kibana -y```##### 调整配置文件```sudo vi /opt/kibana/config/kibana.yml......&4 # The host to bind the server to.&5 # server.host: "0.0.0.0"&6 server.host: "0.0.0.0" & &#&7&&8 # If you are running kibana behind a proxy, and want to mount it at a path,&9 # specify that path here. The basePath can't end in a slash.10 # server.basePath: ""11&12 # The maximum payload size in bytes on incoming server requests.13 # server.maxPayloadBytes: 104857614&15 # The Elasticsearch instance to use for all your queries.16 # elasticsearch.url: "http://localhost:9200"17 elasticsearch.url: "http://localhost:9200" & & & & & & & & & #elasticsearch 地址 & 《=====18..```==elasticsearch cluster地址,可以写多个节点,kibana 只会取最后一个连接,不支持多节点负载均衡和自动冗余==```elasticsearch.url: http://172.16.100.111:9200 & & &&elasticsearch.url: http://172.16.100.70:9200elasticsearch.url: http://172.16.100.71:9200```##### 2.2.5:添加开机启动,启动服务;```chkconfig --add kibanasudo /bin/systemctl daemon-reloadsudo /bin/systemctl enable kibana.servicesudo systemctl start kibana```##### 检查,验证服务器端口```lsof -n -i:5601COMMAND & PID & USER & FD & TYPE &DEVICE SIZE/OFF NODE NAMEnode & &29895 kibana & 11u &IPv4 9963707 & & &0t0 &TCP *:esmagent (LISTEN)```##### 验证访问:http:172.16.100.70:5601### 2.4: 安装部署 Kibana Dashboards##### 下载软件包&```cd ~ &curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip```##### 安装解压软件,解压软件包```sudo yum -y install unzip &unzip beats-dashboards-*.zip```##### 2.4.3:导入基础显示面板, 将数据导入 Elasticsearch 命令如下:```cd beats-dashboards-*./load.sh```指向上面的命令将导入如下查询模板信息```[packetbeat-]YYYY.MM.DD[topbeat-]YYYY.MM.DD[filebeat-]YYYY.MM.DD[winlogbeat-]YYYY.MM.DD```##### 访问页面,即可查看索引http://172.16.100.70:5601/---## 2.3:安装配置 Logstash##### 插件简介![插件简介](http://image.3001.net/images/.png)##### 官方参考信息:https://www.elastic.co/guide/en/logstash/current/index.html##### 添加yum 签名key:```rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch```##### 添加 logstash.repo 到 /etc/yum.repos.d/ 目录```cat &/etc/yum.repos.d/logstash.repo &&-EOF[logstash-2.4]name=Logstash repository for 2.4.x packagesbaseurl=https://packages.elastic.co/logstash/2.4/centosgpgcheck=1gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearchenabled=1EOF```2.3.3:安装软件包```yum install logstash -y```### 配置日志输入、输出[tuopu](!http://image.3001.net/images/.png)##### 2.3.4:调整配置文件vi /etc/logstash/conf.d/02-beats-input.conf```input {& beats {& & port =& 5044# & &ssl =& true# & &ssl_certificate =& "/etc/pki/tls/certs/logstash-forwarder.crt"# & &ssl_key =& "/etc/pki/tls/private/logstash-forwarder.key"& }}```logstack 输入默认使用5044 端口,如果需要使用ssl 加密传输,可以配置自己证书##### 创建一个配置文件,10-syslog-filter.conf &,添加 syslog messages,过滤配置。sudo vi /etc/logstash/conf.d/10-syslog-filter.confnsert the following syslog filter configuration:```filter {& if [type] == "syslog" {& & grok {& & & match =& { "message" =& "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }& & & add_field =& [ "received_at", "%{@timestamp}" ]& & & add_field =& [ "received_from", "%{host}" ]& & }& & syslog_pri { }& & date {& & & match =& [ "syslog_timestamp", "MMM &d HH:mm:ss", "MMM dd HH:mm:ss" ]& & }& }}```配置完成保存退出,上面的配置是添加一个 syslog 的过滤标签,将输入的日志进行格式化并生成查询表;##### 再创建一个配置文件 30-elasticsearch-output.conf:sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf添加日志输出配置如下:```output {& elasticsearch {& & hosts =& ["172.16.100.70","172.16.100.71","172.16.100.111"]& & sniffing =& true & & & & & &#单机模式关闭此选项& & sniffing_delay =& 5 & & & & &&& & manage_template =& false& & index =& "%{[@metadata][beat]}-%{+YYYY.MM.dd}"& & document_type =& "%{[@metadata][type]}"& }}```==协议:新插件支持三种协议: node,http 和 transpor。==配置完成保存退出,这个配置主要实现logstash 将beats 收集的数据发送到elasticsearch ,&如果你想添加对其他应用程序使用的过滤器Filebeat输入,确保名称的文件所以他们之间的输入和输出配置(即02 - 30之间)。##### 测试配置正确性,返回ok 为正常。sudo service logstash configtest##### 2.3.7:添加开机启动,启动服务;sudo chkconfig logstash onsudo /etc/init.d/logstash start==logstash 使用systemctl 有问题,具体原因待查==##### 检查,验证服务器端口```lsof &-n -i:5044 &&COMMAND & PID & & USER & FD & TYPE & DEVICE SIZE/OFF NODE NAME &java & &13426 logstash & 15u &IPv6 ```##### 使用 curl 命令发送请求来查看 ES 是否接收到了数据curl 'http://localhost:9200/_search?pretty'---## 添加filebeat客户端##### 安装部署 Filebeat##### 添加yum 签名key:```rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch```##### 添加 beats.repo 到 /etc/yum.repos.d/ 目录```cat &/etc/yum.repos.d/beats.repo &&-EOF[beats]name=Elastic Beats Repositorybaseurl=https://packages.elastic.co/beats/yum/el/$basearchenabled=1gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearchgpgcheck=1EOF```##### 2.5.4:安装filebeat 服务sudo yum install filebeat -y##### 2.5.5:添加开机启动,启动服务sudo systemctl start filebeatsudo systemctl enable filebeat### 源码安装filebeat 服务##### 2.6.1:下载软件包:curl -L -O https://download.elastic.co/beats/filebeat/filebeat-1.2.3-x86_64.rpm##### 安装服务yum install &filebeat-1.2.3-x86_64.rpm##### 配置服务:sudo vi /etc/filebeat/filebeat.yml我们将修改现有的发送日志文件配置,仅发送安全、消息日志。在路径下,注释掉――/var/log/*.日志文件。这将防止Filebeat发送所有日志。filebeat.yml&```...& & & paths:& & & & - /var/log/secure& & & & - /var/log/messages# & & & &- /var/log/*.log...```然后找到指定的行document_type:取消它,改变它的值,“syslog”。filebeat.yml&```...& & & document_type: syslog...```==上面的配置指定日志类型为syslog(类型,在Logstash过滤器中使用)==配置Filebeat连接Logstash服务器的端口5044。filebeat.yml&```& ### Logstash as output& logstash:& & # The Logstash hosts& & hosts: ["ELK_server_private_IP:5044"]#配置日志最大装载量& & bulk_max_size: 1024#配置ssl 证书信息,不使用ssl,忽略此配置filebeat.yml&...& & tls:& & & # List of root certificates for HTTPS server verifications& & & certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]This configures Filebeat to use the SSL certificate that we created on the ELK Server.```保存退出##### 2.6.4:添加开机启动,启动服务sudo systemctl start filebeatsudo systemctl enable filebeat完成以上配置,Filebeat将发送你的syslog消息和secure到你的ELK服务器,其它节点重复以上配置即可。##### filebeat 调试命令;whereis filebeatfilebeat: /usr/bin/filebeat /etc/filebeat##### 测试配置正确性filebeat -configtest -e以上配置设置ok,Filebeat(客户端)会将数据发送Logstash发送日志到elk服务器上。Logstash应该Filebeat数据加载到Elasticsearch日期戳的指数,filebeat-YYYY.MM.DD。##### 导入 Filebeat 索引模板到 Elasticsearch```我们计划使用filebeat 处理日志到elasticsearch 收下要导入一个配置模板,elasticsearch 将按照模板格式对数据进行处理;##### 先下载一个filebeat模板到本地目录;cd ~curl -O /thisismitch/8cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json##### 执行模板导入命令curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json##### 执行成功返回结果如下{& "acknowledged" : true}```##### 确认elk 服务器是否收到数据,测试命令如下,在elk 服务器执行```curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'```##### 2.6.7:导入模板命令:curl -XPUT 'http://localhost:9200/_template/filebeat' -d@/etc/filebeat/filebeat.template.json#####参考文档:```https://www.elastic.co/guide/en/beats/filebeat/current/index.htmlhttps://www.elastic.co/guide/en/beats/libbeat/1.2/setup-repositories.htmlhttp://blog.smoker.cc/docker/.html/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7/articles/YfAjI3a安装Logstash:https://www.elastic.co/guide/en/beats/libbeat/1.2/setup-repositories.html```本文出自 “” 博客,转载请与作者联系!
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 filebeat安装配置 的文章

 

随机推荐