ELK集群部署

一、ELK简介
1、Elasticsearch

Elasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合

2、Logstash

Logstash是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。

3、Kibana

kibana是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。

4、ELK版本信息为7.2.1,你可以从官网下,也可以直接从下面地址下载:

https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz
https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz
官网地址:https://www.elastic.co/cn/downloads/

二、环境准备
1、三台Linux服务器,系统为CentOS7.x

[root@elk-1 config]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)

2、角色划分

NODEIP节点类型
elk-1192.168.108.151数据、主节点(安装elasticsearch、logstash、kabana)
elk-2192.168.108.152数据节点(安装elasticsearch)
elk-3192.168.108.153数据节点(安装elasticsearch)

3、安装jdk11
这里安装jdk11,如果安装9或者8会报错,具体可看官方文档:

https://www.elastic.co/cn/support/matrix
https://www.elastic.co/guide/en/elasticsearch/reference/7.2/setup.html

3.1、下载安装包

[root@elk-1 ~]# wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz
[root@elk-1 ~]# tar -xzvf jdk-11.0.4_linux-x64_bin.tar.gz /usr/local/jdk

3.2、配置环境变量

#set java environment
JAVA_HOME=/usr/local/jdk/jdk-11.0.1
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

3.3、使环境变量生效

[root@elk-1 ~]# source /etc/profile

3.4、查看jdk是否安装成功(出现以下信息说明安装成功)

[root@elk-1 ~]# java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

三、 安装Elasticsearch(简称ES)集群
1、下载及解压
1.1、下载

[root@elk-1 ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz

1.2、解压

[root@elk-1 ~]# tar -zvxf elasticsearch-7.2.1-linux-x86_64.tar.gz -C /usr/local/elk

2、创建用户及授权
ElasticSerach要求以非root身份启动,在每个节点创建用户及用户组

[root@elk-1 ~]# groupadd elasticsearch
[root@elk-1 ~]# useradd elasticsearch -g elasticsearch

在每个节点上创建数据data和logs目录:

[root@elk-1 ~]# mkdir -p /data/elasticsearch/{data,logs}
[root@elk-1 ~]# chown -R elasticsearch. /data/elasticsearch/
[root@elk-1 ~]# chown -R elasticsearch. /home/elk/elasticsearch/elasticsearch-7.2.1

3、修改elasticsearch.yml配置文件
3.1、master节点配置文件

[root@elk-1 config]# grep -Ev "^$|^[#;]"  elasticsearch.yml
cluster.name: master-node
node.name: master
node.master: true
node.data: true
http.cors.enabled: true
http.cors.allow-origin: /.*/
path.data: /home/elk/data
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.108.151", "192.168.108.152", "192.168.108.153"]
cluster.initial_master_nodes: ["master-node", "data-node1","data-node2"]

3.2、node1节点配置文件

[root@elk-2 config]# grep -Ev "^$|^[#;]"  elasticsearch.yml
cluster.name: master-node
node.name: data-node1
node.master: true
node.data: true
path.data: /home/elk/data
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.108.151", "192.168.108.152", "192.168.108.153"]
cluster.initial_master_nodes: ["master-node", "data-node1","data-node2"]

3.3、node2节点配置文件

[root@elk-3 config]# grep -Ev "^$|^[#;]"  elasticsearch.yml
cluster.name: master-node
node.name: data-node2
node.master: true
node.data: true
path.data: /home/elk/data
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.108.151", "192.168.108.152", "192.168.108.153"]
cluster.initial_master_nodes: ["master-node", "data-node1","data-node2"]

4、修改elasticsearch的JVM内存

[root@elk-1 config]# grep -Ev "^$|^[#;]"  jvm.options 
-Xms1g
-Xmx1g

5、启动elasticsearch

[root@ELK1 elk]# su - elasticsearch
Last login: Mon Aug 12 09:58:23 CST 2019 on pts/1

[elasticsearch@ELK1 ~]$ cd /home/elk/elasticsearch-7.2.1/bin/
[elasticsearch@ELK1 bin]$ ./elasticsearch -d

5.1、查看端口号,分别为9200和9300

[root@elk-1 config]# ss -tlunp|grep java
tcp    LISTEN     0      128      :::9200                 :::*                   users:(("java",pid=50257,fd=263))
tcp    LISTEN     0      128      :::9300                 :::*                   users:(("java",pid=50257,fd=212))

5.2、es集群基本操作

#查看集群的健康信息
curl 'localhost:9200/_cluster/health?pretty'

#查看集群的详细信息
curl ' localhost:9200/_cluster/state?pretty'

#查询索引列表
curl -XGET http:// localhost:9200/_cat/indices?v

#创建索引
curl -XPUT http:// localhost:9200/customer?pretty

#查询索引
curl -XGET http:// localhost:9200/customer/external/1?pretty

#查询es数据
curl -XGET 'http://localhost:9200/_cat/count/索引名称'

#删除索引
curl -XDELETE http:// localhost:9200/customer?pretty

#删除指定索引
curl -XDELETE localhost:9200/nginx-log-2019.08

#删除多个索引
curl -XDELETE localhost:9200/system-log-2019.0606,system-log-2019.0607

#删除所有索引
curl -XDELETE localhost:9200/_all

#在删除数据时,通常不建议使用通配符,误删后果会很严重,所有的index都可能被删除,为了安全起见需要禁止通配符,可以在elasticsearch.yml配置文件中设置禁用_all和*通配符
action.destructive_requires_name: true

四、安装logstash
说明:在每台需要收集日志的服务器部署即可
1、下载解压

#下载
[root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz

#解压
[root@ELK1 tools]# tar -zcxf logstash-7.2.1.tar.gz -C /home/elk

#创建数据及日志目录
[root@ELK1 tools]# mkdir -p /data/logstash/{logs,data}

2、修改logstash配置文件(可不修改此配置文件)

[root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.yml

http.host: "ELK1"
path.data: /data/logstash/data
path.logs: /data/logstash/logs
xpack.monitoring.enabled: true #kibana监控插件中启动监控logstash
xpack.monitoring.elasticsearch.hosts: ["192.168.108.151:9200","192.168.108.152:9200","192.168.108.153:9200"]

3、创建监控日志的配置文件(重要)

[root@access-1 logstash-7.0.1]# cat logstash_809.conf
input {
    file{
        path => ['/root/access-server-1.0.5/log/akka-gb809.log']
	type => "akka-gb809"
	stat_interval => "2"
    }
    file{
	path => ['/root/access-server-1.0.5/log/akka-gb808.log']
	type => "akka-gb808"
	stat_interval => "2"
    }
    file{
	path => ['/root/access-server-1.0.5/log/akka.log']
	type => "akka"
	stat_interval => "2"
    }
    file{
	path => ['/root/access-server-1.0.5/log/all_error.log']
	type => "all_error"
	stat_interval => "2"
	codec => multiline {
		pattern => "(^\d{2}\:\d{2}\:\d{2}\.\d{3})UTC"
		negate => true
		what => "previous"
	}

    }

}

filter {
      date {
         match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]
      }
}


output {
	if [type] == "akka-gb809" {
 		 elasticsearch {
    			hosts  => "192.168.108.151:9200"
    			index  => "akka-gb809-%{+YYYY.MM.dd}"
  			}
		}

	if [type] == "akka-gb808" {
 		 elasticsearch {
    			hosts  => "192.168.108.151:9200"
    			index  => "akka-gb808-%{+YYYY.MM.dd}"
  			}
		}
	if [type] == "akka" {
 		 elasticsearch {
    			hosts  => "192.168.108.151:9200"
    			index  => "akka-%{+YYYY.MM.dd}"
  			}
		}
	if [type] == "all_error" {
 		 elasticsearch {
    			hosts  => "192.168.108.151:9200"
    			index  => "all_error-%{+YYYY.MM.dd}"
  			}
		}
}

4、启动服务

nohup /usr/local/elk/logstash-7.2.1/bin/logstash -f /usr/local/elk/logstash-7.2.1/logstash.conf &

五、安装kibana
1、下载及解压

#进入工具目录
[root@ELK1 tools] cd /home/tools

#下载
[root@ELK1 tools] wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz

#解压
[root@ELK1 tools] tar xf kibana-7.2.1-linux-x86_64.tar.gz -C /usr/local/src/

#创建日志目录
mkdir -p /data/kibana/logs/

2、修改kibana配置文件

[root@elk-1 config]# grep -Ev "^$|^[#;]" kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"

3、启动服务

[root@ELK1 tools]# cd /home/elk/kibana-7.2.1-linux-x86_64/
[root@ELK1 kibana-7.2.1-linux-x86_64]# nohup bin/kibana &

4、浏览器输入kibana地址即可访问web页面
在这里插入图片描述
六、kibana简单使用
1、创建索引
在这里插入图片描述
2、查看日志
在这里插入图片描述
3、检索日志
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、日志数量统计
在这里插入图片描述

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维那些事~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值