ELK部署安装集群版(一)

1.ELK安装环境说明

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

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

本例子采用Elasticsearch7.9.2,Kibana7.9.2, logstash-7.9.2版本为例子讲解如何安装部署。安装包下载从官网就可以https://www.elastic.co/cn/

需要准备的安装文件列表:

jdk-8u261-linux-x64.rpm

elasticsearch-7.9.2-x86_64.rpm

kibana-7.9.2-x86_64.rpm

logstash-7.9.2.zip

nginx-1.18.0.tar.gz

操作系统版本为:CentOs7.3版本,JDK1.8

 

2.ELK架构说明

ELK 其实并不是一款软件,而是一整套解决方案,解决的问题主要是从日志收集到索引分类,以及搜索和界面展示的问题。ELK集群的结构如下图:

 

3.环境准备

操作系统需要先安装JDK,JDK1.8步骤安装请参考官方步骤,本文忽略此步骤说明。

装好以后,验证命令:

java -version

输出为:

java version "1.8.0_261"

Java(TM) SE Runtime Environment (build 1.8.0_261-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

 

检查防护墙,停止默认防火墙。输入如下命令:

systemctl stop firewalld

 

服务器IP:

ELK1节点:192.168.119.128

ELK2节点:192.168.119.134

ELK3节点:192.168.119.135

Nginx节点:192.168.119.130

Logstash节点:192.168.119.130

 

Kinana安装在128节点上。

 

为了简化服务器的数据量,实际只安装了一台logstash节点。nginx和logstash共享了一台主机。Kinana也和ELK1节点共享了一台主机。

 

4.安装Elasticsearch

登录192.168.119.128,上传安装包:elasticsearch-7.9.2-x86_64.rpm

4.1安装步骤:

rpm --install elasticsearch-7.9.2-x86_64.rpm

 

4.2修改配置文件

vi /etc/security/limits.conf

新增内容如下:

* hard nofile 65536

* soft nproc 2048

* hard nproc 4096

* soft memlock unlimited

* hard memlock unlimited

 

 

vi /etc/sysctl.conf

vm.max_map_count=655360

fs.file-max=655360

 

执行命令sysctl -p ,让配置生效

 

 

修改elastic配置文件

vi /etc/elasticsearch/elasticsearch.yml

修改data存放的路径

path.data: /var/lib/elasticsearch

修改logs日志的路径

path.logs: /var/log/elasticsearch/

监听的网络地址

network.host: 0.0.0.0

初始化主节点

cluster.initial_master_nodes: ["elk-1", "elk-2"]

开启监听的端口

http.port: 9200

找到配置文件中的cluster.name,打开该配置并设置集群名称

cluster.name: mycluster

找到配置文件中的node.name,打开该配置并设置节点名称

node.name:  elk-1

# 配置集群中,选举的节点

discovery.seed_hosts:  ["192.168.119.128", "192.168.119.134","192.168.119.135"]

 

 

192.168.119.134,192.168.119.135节点的安装步骤一样,配置文件除了节点名其他也是一样的。

注意 /etc/elasticsearch/elasticsearch.yml中需要修改的是:node.name:  的配置

134节点修改成

node.name:  elk-2

135节点修改成

node.name:  elk-3

 

 

4.3启动服务

3个节点分别启动elasticsearch

systemctl start elasticsearch.service

 

4.4停止服务

systemctl stop elasticsearch.service

 

4.5验证:

curl http://192.168.119.128:9200/

curl http://192.168.119.134:9200/

curl http://192.168.119.135:9200/

 

可能的返回结果:

{

  "name" : "localhost",

  "cluster_name" : "elasticsearch",

  "cluster_uuid" : "C1rp3FCmRduPQF9Z9RzSrw",

  "version" : {

    "number" : "7.9.2",

    "build_flavor" : "default",

    "build_type" : "rpm",

    "build_hash" : "d34da0ea4a966c4e49417f2da2f244e3e97b4e6e",

    "build_date" : "2020-09-23T00:45:33.626720Z",

    "build_snapshot" : false,

    "lucene_version" : "8.6.2",

    "minimum_wire_compatibility_version" : "6.8.0",

    "minimum_index_compatibility_version" : "6.0.0-beta1"

  },

  "tagline" : "You Know, for Search"

}

验证集群状态命令:

curl http://192.168.119.128:9200/_cluster/health

curl http://192.168.119.134:9200/_cluster/health

curl http://192.168.119.135:9200/_cluster/health

 

可能的返回结果(status值不是green表示集群不正常):

{"cluster_name":"mycluster","status":"green","timed_out":false,"number_of_nodes":3,"number_of_data_nodes":3,"active_primary_shards":0,"active_shards":0,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"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":100.0}

 

 

5.安装Nginx

Nginx安装步骤请参考官方文档。Nginx在192.168.119.130上安装

 

nginx_ela.conf 配置文件内容:

 

#user  nobody;

worker_processes  1;

 

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

#pid        logs/nginx.pid;

 

 

events {

    worker_connections  1024;

}

 

stream {

    upstream n9200 {

    server 192.168.119.128:9200;

    server 192.168.119.134:9200;

    server 192.168.119.135:9200;

    }

 

 

    server {

       listen 9200;

       proxy_pass n9200;

    }

}

 

启动Nginx

/usr/local/nginx/sbin/nginx -c /opt/nginx_ela.conf

 

6.安装Kibana

登录192.168.119.128,上传安装包:kibana-7.9.2-x86_64.rpm

 

6.1安装步骤

rpm --install kibana-7.9.2-x86_64.rpm

 

6.2修改配置文件

vi /etc/kibana/kibana.yml

 

开启监听的端口

server.port: 5601

 

监听的网络地址

server.host: "0.0.0.0"

elasticsearch的网络地址

elasticsearch.hosts: ["http://192.168.119.130:9200"]

kibana的索引值

kibana.index: ".kibana"

 

6.3启动

systemctl start kibana.service

6.4停止

systemctl stop kibana.service

 

 

6.5验证

访问网站 http://192.168.119.128:5601,可以看到页面如下图:

 

 

7.安装日志节点的logstash

下面需要添加监控日志的节点。下面我以130节点的tomcat日志为例,展示如何添加日志收集的节点。

 

130机器上已经安装好tomcat8,安装步骤忽略。需要收集的日志是:/opt/tomcat8/logs/localhost_access_log.*.txt

 

登录192.168.119.130,上传安装包:logstash-7.9.2.zip

 

7.1 安装步骤

 

 

unzip logstash-7.9.2.zip

mv logstash-7.9.2 /opt/logstash-7.9.2

 

 

7.2 编辑tomcat服务的日志收集配置

# vi  /opt/tomcat.conf

 

输入如下内容:

input {

    file {

        path => "/opt/tomcat8/logs/*.txt"

        type => "tomcat"

    }

    

}

 

output {

 

    if [type] == "tomcat" {

 

        elasticsearch {

            hosts => ["192.168.119.130:9200"]

            index => "tomcat130-%{+YYYY.MM.dd}"

        }

    }

}

 

7.3启动日志收集

/opt/logstash-7.9.2/bin/logstash -f /opt/tomcat.conf &

 

 

7.4 登录Kibana,查看数据

访问网站 http://192.168.119.128:5601

 

点击Connect to your Elasticsearch index,创建一个新的索引模式:

 

 

点击Create按钮:

 

 

输入tomcat*,点击Next step:

 

选择@timestamp ,点击 create按钮:

 

 

 

然后点击,左上方的三的图标,点击 Discover:

 

选择索引中的tomcat*,就可以看到日志了:

 

 

 

如果没有数据,则需要启动tomcat服务,并且访问tomcat的页面,并且随便点击几下。

 

回到Kibana就可以看见数据了。

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以按照以下步骤来部署一个基于Kubernetes的ELK(Elasticsearch, Logstash, Kibana)集群: 1. 配置Kubernetes集群:首先,确保你有一个可用的Kubernetes集群。你可以使用工具如kops、kubeadm或Minikube来搭建一个本地测试环境。 2. 部署Elasticsearch:Elasticsearch是ELK集群的核心组件。你可以使用Helm来简化部署过程。首先,安装Helm客户端,并添加Elasticsearch的Helm存储库: ``` helm repo add elastic https://helm.elastic.co helm repo update ``` 然后,创建一个名为elasticsearch的命名空间,并部署Elasticsearch: ``` kubectl create namespace elasticsearch helm install elasticsearch elastic/elasticsearch -n elasticsearch ``` 注意:根据你的需求,你可能需要修改Elasticsearch的配置。 3. 部署Logstash:Logstash是用于日志收集和处理的组件。同样地,你可以使用Helm部署Logstash: ``` kubectl create namespace logstash helm install logstash elastic/logstash -n logstash ``` 你也可以根据需求修改Logstash的配置。 4. 部署Kibana:Kibana是ELK集群的可视化工具。使用Helm部署Kibana: ``` kubectl create namespace kibana helm install kibana elastic/kibana -n kibana ``` 同样地,你可以自定义Kibana的配置。 5. 配置与连接:根据你的需求,你可能需要配置Elasticsearch、Logstash和Kibana之间的连接。你可以使用Kubernetes的Service、Ingress或者LoadBalancer来使它们能够相互通信。 这样,你就完成了一个基于Kubernetes的ELK集群部署。记得根据你的需求进行适当的配置和调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值