ELK+filebeat集群搭建全过程总结(一) 软件安装

写在前面

背景是公司目前服务器台数太多,出现问题后一台一台服务器登陆去查看效率低下,于是乎公司决定使用ELK搭建一套日志管理系统,在服务器间架设集群,统一管理日志。因为我之前对ELK没有一点了解,所以便拿自己的服务器作为测试,为了方便自己以后的温故和学习,决定把此次搭建的全过程记录下来。

系统环境

  • System:centos 7(查询版本语句:lsb_release -a)
  • Java : jdk 1.8.0_144
  • Elasticsearch: 6.1.1
  • Kibana: 6.1.1
  • Logstash: 6.1.1
  • Filebeat: 6.1.1

软件介绍

ELK+filebeat集群搭建全过程总结(一) 软件安装_第1张图片
ELK是Elasticsearch、Logstrash和Kibana这三个软件的首字母的缩写,它们代表的是一套成熟的日志管理系统:
Logstrash作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给Elasticsearch;
Elasticsearch是个分布式搜索和分析引擎,优点是能对大容量的数据进行接近实时的存储、搜索和分析操作;
Kibana对Elasticsearch的分析搜索做出可视化的界面展示。
Filebeat,它的作用是在客户端收集和传输日志,基于 Logstash-Forwarder 源代码开发,是对它的替代.

正文

安装elasticsearch

  • 下载文件

进入elsaticsearch下载界面
选择tar进行下载,下载完成后放入/opt下(放置位置个人喜好)

  • 解压文件

进入压缩包所在目录,解压文件。

cd /opt
tar -zxvf ./elasticsearch-6.1.1.tar.gz
  • 修改ES参数

进入解压后文件夹的config目录,增加或者更改其中的配置信息(linux文本操作)

cd elasticsearch-6.1.1
vi config/elasticsearch.yml

# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: morty
node.name: Rick

# 数据目录

path.data: /data/elk/data

# log 目录
path.logs: /data/elk/logs

# 修改一下ES的监听地址,这样别的机器也可以访问
vnetwork.host: 0.0.0.0

# 默认的端口号
http.port: 9200
# 填写你要监视的端口,可以是多个
discovery.zen.ping.unicast.hosts: [“172.18.5.111”, “172.18.5.112”]
# discovery.zen.minimum_master_nodes: 3
# enable cors,保证_site类的插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: “*”

# Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

Tips:ES配置文件属性详析

  • 修改系统参数以确保系统有足够资源启动ES

    • 设置内核参数
      vi /etc/sysctl.conf
      # 增加以下参数
      vm.max_map_count=655360
      执行以下命令,确保生效配置生效:
      sysctl -p
      Tips:max_map_count

    • 设置资源参数
      vi /etc/security/limits.conf
      # 修改
      * soft nofile 65536
      * hard nofile 131072
      * soft nproc 65536
      * hard nproc 131072
      Tips: limits.conf 配置

    • 设置用户资源参数
      vi /etc/security/limits.d/20-nproc.conf
      # 设置elk用户参数
      elk soft nproc 65536

    • 添加启动用户,设置权限
      启动ElasticSearch5版本要非root用户,需要新建一个用户来启动ElasticSearch

 useradd elk         #创建用户elk   
 groupadd elk        #创建组elk    useradd
 elk -g elk          #将用户添加到组

mkdir  -pv  /data/elk/{data,logs}# 创建数据和日志目录

chown -R elk:elk /data/elk/ #  修改文件所有者
chown -R elk:elk /opt/elasticsearch-6.1.1/
  • 启动
    cd elasticsearch-6.1.1
    bin/elasticsearch -d  #-d 为保持后台运行

使用curl localhost:9200 来检查ES是否启动成功,成功显示如下:

{
“name” : “morty”,
“cluster_name” : “Rick”,
“cluster_uuid” : “4RlZck7ERWGbQKNn5KvXGA”,
“version” : {
“number” : “6.1.1”,
“build_hash” : “bd92e7f”,
“build_date” : “2017-12-17T20:23:25.338Z”,
“build_snapshot” : false,
“lucene_version” : “7.1.0”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}

安装kibana

  • 下载文件
    进入kibana下载界面
    选择tar进行下载,下载完成后放入/opt/elk下(放置位置个人喜好)

  • 解压文件
    进入压缩包所在目录,解压文件。

cd /opt/elk
tar -zxvf ./kibana-6.1.1-linux-x86_64.tar.gz
  • 配置kibana
    进入config目录下,修改kibana.yml文件
cd kibana-6.1.1-linux-x86_64
vi config/kibana.yml

server.port: 5601 #开启默认端口5601
server.host: “192.168.91.129” #站点地址
elasticsearch.url: http://192.168.91.129:9200 #指向>elasticsearch服务的ip地址
kibana.index: “.kibana”

  • 启动kibana
bin/kibana

启动成功后访问浏览器访问地址http://192.168.91.129:9200见到如下即表示启动成功
ELK+filebeat集群搭建全过程总结(一) 软件安装_第2张图片

安装logstrash

  • 下载文件
    进入logstrash下载界面
    选择tar进行下载,下载完成后放入/opt/elk下(放置位置个人喜好)

  • 解压文件
    进入压缩包所在目录,解压文件。

cd /opt/elk
tar -zxvf ./logstrash-6.1.1.tar.gz
  • 创建配置文件
    进入解压后文件夹的config目录,新增测试配置文件:
 cd /opt/elk/logstash-6.1.1/config/
 vi logstrash-test.conf

input {
beats {
port => “5044”}
}
output {
elasticsearch {hosts => “192.168.91.129:9200” } #elasticsearch服务地址
stdout { codec=> rubydebug }
}

  • 启动服务
 bin/logstash -f config/logstash-simple.conf

执行这个语句可能会报错:

[FATAL][logstash.runner] Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the “path.data” setting.

这是因为当前的logstash版本不支持多个instance共享一个path.data,所以需要在启动时,命令行里增加”–path.data PATH “,为不同实例指定不同的路径


 bin/logstash -f config/logstash-simple.conf --path.data ./logs/    

安装filebeat

  • 下载文件
    进入filebeat下载界面
    选择Liunx-64x包进行下载,下载完成后放入需要检测的服务器上的任一目录下(放置位置个人喜好)

  • 解压文件
    进入压缩包所在目录,解压文件。

cd /opt/filebeat
tar -zxvf ./filebeat-6.1.1-linux-x86_64.tar.gz
  • 修改配置文件
    进入解压后文件夹的config目录,新增测试配置文件:
 cd filebeat-6.1.1-linux-x86_64
 vi filebeat.yml

paths:
- /opt/logs/filebeat.log #监控的日志文件
————–Elasticsearch output——————-
(全部注释掉)
—————-Logstash output———————
output.logstash:
hosts: [“182.119.137.177:5044”] #你的logstash端口

  • 启动服务
 bin/filebeat -e -c config/filebeat.yml

至此ELK+Filebeat已全部连通,下一部分会写logstash及Elasticsearch的日志优化和处理。

本文主要参考文档:CentOs 7.3下ELK日志分析系统搭建

你可能感兴趣的:(liunx,ELK)