centos7搭建efk6.4

Elasticsearch
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
FileBeat
隶属于Beats,轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择,目前Beats包含四种工具:

  • 1.Packetbeat(搜集网络流量数据)
  • 2.Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据。)
  • 3.Filebeat(搜集文件数据)
  • 4.Winlogbeat(搜集 Windows 日志数据)

为什么用 Filebeat ,而不用原来的 Logstash 呢?
原因很简单,资源消耗比较大。

**由于 Logstash 是跑在 JVM 上面,资源消耗比较大,后来作者用 GO 写了一个功能较少但是资源消耗也小的轻量级的 Agent 叫 Logstash-forwarder。**后来作者加入 elastic.co 公司, Logstash-forwarder 的开发工作给公司内部 GO 团队来搞,最后命名为 Filebeat。

Kibana
Kibana可以为 Logstash 、Beats和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
安装Java JDK

wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1536892035_945cb24c750d0971b8c5b1925cc723a9
mv jdk-8u181-linux-x64.tar.gz\?AuthParam\=1536892035_945cb24c750d0971b8c5b1925cc723a9 java

解压

tar -zxvf jdk-8u181-linux-x64.tar.gz

编辑环境变量

vim /etc/profile

在文件末尾加上

JAVA_HOME=/usr/local/jdk1.8.0_181/
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

使配置生效,并查看版本。

source /etc/profile
java -version

安装es

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

解压

tar -zxvf elasticsearch-6.2.4.tar.gz

进入Elasticsearch主目录,修改配置

vi config/elasticsearch.yml

添加以下配置,或者将对应的配置注释取消修改

network.host: 0.0.0.0 
http.port: 9200

由于Elasticsearch不能使用root用户打开,所以需要专门创建一个用户来启动Elasticsearch

useradd elastic
#设置密码
 passwd elastic
#需要输入2次密码
#授权
 chmod -R 777 /usr/local/elasticsearch-6.2.4
#切换用户
 su elastic

创建的用户名为elastic,其中/usr/local/elasticsearch-6.2.4为解压出来的Elasticsearch主目录

启动Elasticsearch

./bin/elasticsearch

如果遇到错误:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

[root@mes-1 config]# vim jvm.options     ----将
-Xms1g    ----修改成 -Xms2g
-Xmx1g    ----修改成 -Xms2g
增加最大文件打开数
echo "* - nofile 65536" >> /etc/security/limits.conf
增加最大进程数
 vim /etc/security/limits.conf    ---在文件最后面添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
解释:
soft  xxx  : 代表警告的设定,可以超过这个设定值,但是超过后会有警告。
hard  xxx  : 代表严格的设定,不允许超过这个设定的值。
nofile : 是每个进程可以打开的文件数的限制
nproc  : 是操作系统级别对每个用户创建的进程数的限制
增加最大内存映射数(调整使用交换分区的策略)
+++++++++++++++++++++++++++++++++++++++++
vim /etc/sysctl.conf   ---添加如下
vm.max_map_count=262144
vm.swappiness=0
+++++++++++++++++++++++++++
 [root@mes-1 ~]# sysctl -p
解释:在内存不足的情况下,使用交换空间。


[root@mes-1 ~]# sysctl -w vm.max_map_count=262144
增大用户使用内存的空间(临时)

重启生效

curl 127.0.0.1:9200
会得到类似以下json
{
  "name" : "dQIO4Ad",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "P8KtmO3vQdactRW1jX9JnQ",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

安装Kibana
下载Kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz

解压

tar -zxvf kibana-6.2.4-linux-x86_64.tar.gz

进入主目录,修改配置

vi config/kibana.yml

添加以下配置或者取消注释并修改

elasticsearch.url: "http://es节点ip:9200"
server.host: "0.0.0.0"
kibana.index: ".kibana"

其中elasticsearch.url为Elasticsearch的地址,server.host默认是localhost,如果只是本地访问可以默认localhost,如果需要外网访问,可以设置为0.0.0.0
启动Kibana

./bin/kibana

安装FileBeat
下载FileBeat

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz

解压

tar -zxvf filebeat-6.2.4-linux-x86_64.tar.gz

进入主目录,修改配置

vi filebeat.yml

找到类似以下的配置并修改

filebeat.prospectors:
- type: log
  enabled: true   #默认是false,改为true才能收集日志
  paths:
    - /var/xxx/*.log #需要收集日志的路径,注意 - 后面要有空格,注意空格,yaml格式
    - /var/xxx/*.out
  multiline.pattern: ^\[
  multiline.negate: true
  multiline.match: after
setup.kibana:
  host: "localhost:5601"
output.elasticsearch:
  hosts: ["es的ip:9200"]

启动FileBeat

./filebeat -c /usr/local/filebeat/filebeat.yml

/usr/local/filebeat/filebeat.yml为filebeat 的配置文件地址,需要根据实际情况修改,启动后FileBeat就会自动收集日志了
配置Kibana
访问kibana
kibana的ip+5601
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用filebeat默认模版
首先elasticsearch安装插件

 cd  /data/elasticsearch-6.2.4/bin/
 ./elasticsearch-plugin install ingest-user-agent
 ./elasticsearch-plugin install ingest-geoip
打开filebeat.yaml文件,编辑则是开启使用模版收集日志
filebeat.config.modules:
	path:${path.config}/modules.d/*.yml
	reload.enabled:true#开启使用模版收集

cd /data/filebeat-6.2.4-linux-x86_64/modules.d下可查看默认自带模版
cd /data/filebeat-6.2.4-linux-x86_64
#查看模版(Enabled是开启Disabled是未开启的)
./filebeat modules list  
Enabled:
mysql
Disabled:
apache2
auditd
icinga
kafka
logstash
osquery
postgresql
redis
system
traefik
#开启模版
./filebeat modules enable kafka

Enabled kafka
#查看所有模型
/data/filebeat-6.2.4-linux-x86_64/modules.d
#可以看到开启的kafka
apache2.yml.disabled  icinga.yml.disabled  logstash.yml.disabled  nginx.yml             postgresql.yml.disabled  system.yml.disabled
auditd.yml.disabled   kafka.yml            mysql.yml              osquery.yml.disabled  redis.yml.disabled       traefik.yml.disabled

#打开kafka.yml进行配置

- module: kafka
  # All logs
  log:
    enabled: true #改为true为开启

    # Set custom paths for Kafka. If left empty,
    # Filebeat will look under /opt.
    #var.kafka_home:

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths: ["日志路径"]#配置采集日志的路径,如果不设置则会根据不同系统去按照默认的寻找。
启动elasticSearch&&filebeat可以看到生成新索引
 curl 192.168.47.133:9200/_cat/indices?v
health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana                   FzFQQBEBRXWU2GgWg_-vhA   1   0        144            1    167.9kb        167.9kb
yellow open   filebeat-6.2.4-2024.01.10 cTJb1IqcTVWtue7Zx4i1UQ   3   1         74            0     48.7kb         48.7kb

filebeat是否输出到elasticsearch配置黑白名单
配置名单后则不会匹配输出。
配置名单后则会只匹配白名单里的输出。

filebeat.prospectors:
- type: log
  enabled: true   #默认是false,改为true才能收集日志
  paths:
    - /var/xxx/*.log #需要收集日志的路径,注意 - 后面要有空格,注意空格,yaml格式
    - /var/xxx/*.out
  include_lines: ["^error","info"]#白名单匹配基础,区分大小写
  exclude_lines: ["^error","info"]#黑名单匹配基础
  tags: ["biaoqian"]#打标签
  fields:
  	school: "shangxueyuan" #自定义字段
  #加入下面这个配置没有了fields字段,school成了顶级字段
  fields_under_root:true

自定义elasticsearch的索引模版

#首先要禁用索引生命周期
output.elasticsearch:
  hosts: ["es的ip:9200"]
  index: "test-linux-efk-%{+yyyy.MM.dd}" #自定义索引名称
setup.ilm.enabled:false #关闭索引生命周期,否则自定义索引名称不生效
setup.template.name: "test-linux"#设置索引模版名称
setup.template.pattern:"test-linux"#设置索引模版的匹配模式

根据不同的tag输出到不同的索引里

filebeat.prospectors:
- type: log
  enabled: true   #默认是false,改为true才能收集日志
  paths:
    - /var/xxx/*.log #需要收集日志的路径,注意 - 后面要有空格,注意空格,yaml格式
    - /var/xxx/*.out
  tags: ["123","456"]
 # **采集的日志希望每个字段被拆分开则添加如下一行配置**
  json.keys_under_root:true
  output.elasticsearch:
  hosts: ["es的ip:9200"]
  indices: 
    - index: "test1-linux-efk-%{+yyyy.MM.dd}" 
      when.contains:
        tags: "123"#根据tag不同,进入到不同的索引里了
    - index: "test2-linux-efk-%{+yyyy.MM.dd}" 
      when.contains:
        tags: "456"   
setup.ilm.enabled:false #关闭索引生命周期,否则自定义索引名称不生效
setup.template.name: "test-linux"#设置索引模版名称
setup.template.pattern:"test-linux"#设置索引模版的匹配模式
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值