EFLK(Elasticserach7.2.0+Kibana7.2.0+Logstash7.2.0+Filebeat7.2.0)安装文档
2019-07-30 09:26:24    2223    1    0
tanyulonglong@126.com

官方安装地址:https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

系统参数配置参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#sysconfig

 

整体架构:

 

一、Elasticserach安装:

    服务器准备工作:

         1. 准备三台服务器:

                192.180.7.217、192.180.7.218、192.180.7.219

 

         2. 软件工具列表:

                apm-server-7.2.0-linux-x86_64.tar.gz

                elasticsearch-7.2.0-linux-x86_64.tar.gz
                filebeat-7.2.0-linux-x86_64.tar.gz
                kibana-7.2.0-linux-x86_64.tar.gz
                logstash-7.2.0.tar.gz

        

       下载地址见【官方安装地址】如下图所示        

 

 

        3. 安装规划:

        192.180.7.217  主节点       jdk    elasticsearch    kibana    logstash

        192.180.7.218  数据节点   jdk     elasticsearch    

        192.180.7.219  数据节点   jdk     elasticsearch

 

        4. 操作系统调优设置:

        由于Elasticsearch、Logstash、Kibana均不能以root账号运行。
        但是Linux对非root账号可并发操作的文件、线程都有限制。
        所以,部署ELK相关的机器都要调整:

  • 修改文件限制
# 修改系统文件
vi /etc/security/limits.conf

#增加的内容

* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
  • 调整进程数
#修改系统文件
vi /etc/security/limits.d/20-nproc.conf

#调整成以下配置
*          soft    nproc     4096
root       soft    nproc     unlimited
  • 调整虚拟内存&最大并发连接
#修改系统文件
vi /etc/sysctl.conf

#增加的内容
vm.max_map_count=655360
fs.file-max=655360

以上操作重启系统后生效

   或者 sysctl -p

        

    5. 配置hosts    

配置三台机器的hosts文件内容如下:

$ vim /etc/hosts
192.180.7.217 elk-master-node
192.180.7.218 elk-data-node1
192.180.7.219 elk-data-node2

 

    6. 查看防火墙是否开启,如开启则后需要开放端口,这里是测试则关闭防火墙。

    sudo systemctl status firewalld

    如果看到inactive(dead)就意味着防火墙关闭了,看到active(running)就意味着防火墙打开了。

 

    7. 目录规划:

    /home/app/elk

        创建Elasticsearch数据目录​ mkdir /home/app/elk/elasticsearch-7.2.0/data -p
        创建Elasticsearch日志目录 mkdir /home/app/elk/elasticsearch-7.2.0/logs -p

 

 

 

    8. elasticserach配置:

    192.180.7.217  主节点配置:vi /home/app/elk/elasticsearch-7.2.0/config/elasticsearch.yml

# 集群名称
cluster.name: es
# 节点名称
node.name: es-master
# 存放数据目录,先创建该目录
path.data: /home/app/elk/elasticsearch-7.2.0/data
# 存放日志目录,先创建该目录
path.logs: /home/app/elk/elasticsearch-7.2.0/logs
# 节点IP
network.host: 192.180.7.217
# tcp端口
transport.tcp.port: 9300
# http端口
http.port: 9200
# 种子节点列表,主节点的IP地址必须在seed_hosts中
discovery.seed_hosts: ["192.180.7.217:9300","192.180.7.218:9300","192.180.7.218:9300"]
# 主合格节点列表,若有多个主节点,则主节点进行对应的配置
cluster.initial_master_nodes: ["192.180.7.217:9300"]
# 主节点相关配置

# 是否允许作为主节点
node.master: true
# 是否保存数据
node.data: true
node.ingest: false
node.ml: false
cluster.remote.connect: false

# 跨域
# http.cors.enabled: true
# http.cors.allow-origin: "*"    

    

    

 

    192.180.7.218数据节点从配置:vi /home/app/elk/elasticsearch-7.2.0/config/elasticsearch.yml

# 集群名称
cluster.name: es
# 节点名称
node.name: es-data1
# 存放数据目录,先创建该目录
path.data: /home/app/elk/elasticsearch-7.2.0/data
# 存放日志目录,先创建该目录
path.logs: /home/app/elk/elasticsearch-7.2.0/logs
# 节点IP
network.host: 192.180.7.218
# tcp端口
transport.tcp.port: 9300
# http端口
http.port: 9200
# 种子节点列表,主节点的IP地址必须在seed_hosts中
discovery.seed_hosts: ["192.180.7.217:9300","192.180.7.218:9300","192.180.7.218:9300"]
# 主合格节点列表,若有多个主节点,则主节点进行对应的配置
cluster.initial_master_nodes: ["192.180.7.217:9300"]
# 主节点相关配置

# 是否允许作为主节点
node.master: false
# 是否保存数据
node.data: true
node.ingest: false
node.ml: false
cluster.remote.connect: false

# 跨域
# http.cors.enabled: true
# http.cors.allow-origin: "*"    

 

 

    192.180.7.219数据节点从配置:vi /home/app/elk/elasticsearch-7.2.0/config/elasticsearch.yml

# 集群名称
cluster.name: es
# 节点名称
node.name: es-data2
# 存放数据目录,先创建该目录
path.data: /home/app/elk/elasticsearch-7.2.0/data
# 存放日志目录,先创建该目录
path.logs: /home/app/elk/elasticsearch-7.2.0/logs
# 节点IP
network.host: 192.180.7.219
# tcp端口
transport.tcp.port: 9300
# http端口
http.port: 9200
# 种子节点列表,主节点的IP地址必须在seed_hosts中
discovery.seed_hosts: ["192.180.7.217:9300","192.180.7.218:9300","192.180.7.218:9300"]
# 主合格节点列表,若有多个主节点,则主节点进行对应的配置
cluster.initial_master_nodes: ["192.180.7.217:9300"]
# 主节点相关配置

# 是否允许作为主节点
node.master: false
# 是否保存数据
node.data: true
node.ingest: false
node.ml: false
cluster.remote.connect: false

# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"  

 

 

    9. 启动elasticserach

    sh    /home/app/elk/elasticsearch-7.2.0/bin/elasticsearch

    提示错误信息要求java11及以上:future versions of Elasticsearch will require Java 11; your Java version from [/opt/java/jdk1.8.0_121/jre] does not meet this requirement

    

  

    解决方案:使用elasticsearch自带的jdk12版本

 

    设置环境变量:vi /home/app/elk/elasticsearch-7.2.0/bin/elasticsearch-env

    JAVA_HOME=/home/app/elk/elasticsearch-7.2.0/jdk 

 

 

    再次启动报错:

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2019-07-26T11:50:09,899][INFO ][o.e.n.Node ] [es-master] stopping ...
[2019-07-26T11:50:09,931][INFO ][o.e.n.Node ] [es-master] stopped
[2019-07-26T11:50:09,931][INFO ][o.e.n.Node ] [es-master] closing ...
[2019-07-26T11:50:09,965][INFO ][o.e.n.Node ] [es-master] closed

 

    解决方案:

 

#切换到root用户
vi /etc/sysctl.conf 
#在最后追加
vm.max_map_count=262144
fs.file-max=655360
#使用 sysctl -p 查看修改结果
sysctl -p

 

    后台启动:

    sh    /home/app/elk/elasticsearch-7.2.0/bin/elasticsearch -d

   警告JVM UseConcMarkSweepGC参数在9.0已弃用,在未来的版本可能会移除该参数。

 

    查看进程:

    ps -ef | grep elasticsearch

 

    10. 健康检查

curl -X GET 'http://192.180.7.217:9200/_cluster/health?pretty'  

如果返回status=green表示正常

 

'

 

   

    二、安装Kibana:

    在    192.180.7.217  安装

cd /home/app/elk/kibana-7.2.0-linux-x86_64/config
vi kibana.yml

server.port: 5601								   # 配置kibana的端口
server.host: "192.180.7.217" 					   # 配置监听ip
elasticsearch.hosts: "http://192.180.7.217:9200/"  # 配置es服务器的ip,如果是集群则配置该集群中主节点的ip
logging.dest:/home/app/elk/kibana-7.2.0-linux-x86_64/logs/kibana.log  				   # 配置kibana的日志文件路径,不然默认是messages里记录日志

    

     运行kibana:

        nohup /home/app/elk/kibana-7.2.0-linux-x86_64/bin/kibana &

    

    查看是否启动:

    ps -ef | grep kibana

 

    浏览器访问地址:http://192.180.7.217:5601

 

 

    三、安装Logstash

    在    192.180.7.217  安装 解压 tar -zxvf logstash-7.2.0.tar.gz

 

修改logstash.conf

vi /home/app/elk/logstash-7.2.0/config/logstash.conf

input {
  beats {
    add_field => {"type"=>"apptest"}
    port => 5044
  }
}

output {
  if [type] == "apptest" {
    elasticsearch {
      hosts => ["http://192.180.7.217:9200"]
      action => "index"
      index => "apptest-%{+YYYY.MM.dd}"
      #user => "elastic"
      #password => "changeme"
   }
  }
 stdout { codec => rubydebug }
}

 

 

    四、安装FileBeat

    在    192.180.7.217  安装 解压 tar -zxvf filebeat-7.2.0-linux-x86_64.tar.gz

    

    

    配置filebeat:

    

#=========================== Filebeat inputs =============================
filebeat.inputs:
# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
- type: tcp
 max_message_size: 10MiB
 host: "0.0.0.0:9000"
 
#----------------------------- Logstash output --------------------------------#
output.logstash:
 # The Logstash hosts
 hosts: ["192.180.7.217:5044"]​

 

 

 

    启动:nohup /home/app/elk/filebeat-7.2.0-linux-x86_64/filebeat -c /home/app/elk/filebeat-7.2.0-linux-x86_64/filebeat.yml &

 

 

 

五、集成SpringBoot logstash-logback

    1 maven pom.xml configuration:

<dependency>
	<groupId>net.logstash.logback</groupId>
	<artifactId>logstash-logback-encoder</artifactId>
	<version>6.1</version>
</dependency>

 

 

    2 logback-spring.xml configuration:

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <!--引入在application.properties文件中的变量-->
    <property resource="application-config.properties"></property>

    <!--定义logstash 传输方式 以及地址-->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>${eflk.filebeat.host}:${eflk.filebeat.port}</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="LOGSTASH"/>
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

          

    

    

    application-config.properties configuration:

eflk.filebeat.host=192.180.7.217
eflk.filebeat.port=9000

    

 

 

六、配置kibana:

    访问:http://192.180.7.217:5601/app/kibana

    

 

 

    先查看下是否有生成日志:这里的index name 是logstash.conf配置的output index

    

 

创建 index pattern

 

查询:

 

 

 

 

 

 

 

 

上一篇: 无

下一篇: RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

2223 人读过
立即登录, 发表评论.
没有帐号? 立即注册
0 条评论
文档导航