环境配置要求:

组件安装包软件名称与版本功能
Java程序编译运行组件JDK 1.8.0_211程序编译运行组件
elasticsearch7.1.1日志存储
ik7.1.1ik分词器
kibana7.1.1日志数据图形化展示
logstash7.1.1日志处理
filebeat7.1.1日志采集

注:elasticsearch、logstash、kibana、filebeat、ik安装的版本号必须全部一致。
.

一. 安装elasticsearch

  1. 创建es安装路径
mkdir -p /data/nusp/es/{data,logs}
  1. 创建esUser用户
useradd esUser
chown -R esUser:esGroup /data/nusp/es
  1. root权限编辑
    vim配置文件/etc/security/limits.conf,最后面添加以下四行数据
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
  1. vim配置文件/etc/sysctl.conf,加入以下内容
vm.overcommit_memory = 1 
vm.max_map_count=655360
  1. 执行sysctl -p使配置生效
sysctl -p
  1. 上传es安装包到es目录下,并解压
cd /data/nusp/es
tar -zxvf elasticsearch-7.1.1-linux-x86_64.tar.gz
  1. 修改配置文件,进入es安装目录config目录下,修改elasticsearch.yml文件
vim /data/nusp/es/elasticsearch-7.1.1/config/elasticsearch.yml


cluster.name: elkbdp-cluster #集群名称
node.name: elk    	  #节点名称
cluster.initial_master_nodes: ["elk"] #主节点信息
path.data: /data/nusp/es/data       #数据存放路径
path.logs: /data/nusp/es/logs       #日志存放路径
bootstrap.memory_lock: false   
bootstrap.system_call_filter: false
network.host: 0.0.0.0				#所有ip可以访问,
discovery.seed_hosts: ["192.168.11.11","192.168.11.12","192.168.11.13"] #输出至elasticsearch服务器
discovery.zen.minimum_master_nodes: 2 	#最多有几个可参与主节点选举
http.cors.enabled: true
http.max_initial_line_length: "1024k"
http.max_header_size: "1024k"
  1. 修改jvm.options文件
cd /data/nusp/es/elasticsearch-7.1.1/config/
vim jvm.options

-Xms4g
-Xmx4g
  1. ik分词器安装
    将准备好的ik分词器安装包解压后将文件复制到 es的安装目录/plugins/ik下面即可,没有目录则自行创建目录,目录文件夹下不能有其他东西。

  2. 启动es服务,进入es的安装目录/bin下执行(后台启动,无任何错误表示启动完成,此时通过访问http://ip:9200即可)。

./elasticsearch -d
  1. 测试es服务,在浏览器中输入http://ip:9200回车,启动成功就会显示如下页面。

在这里插入图片描述
.

二. 配置 TLS 和身份验证

以下步骤在一台master上执行即可

  1. 生成CA证书
cd /data/nusp/es/elasticsearch-7.1.1/bin

./elasticsearch-certutil ca		# 两次回车
./elasticsearch-certutil cert --ca elastic-stack-ca.p12		# 三次回车
  1. 赋予权限(并把证书文件 elastic-certificates.p12 复制到其他master节点并赋予权限)。
mkdir /data/nusp/es/elasticsearch-7.1.1/config/certs
mv elastic-*.p12 config/certs/
chown -R elsearch:elsearch config/certs/
  1. 修改配置文件(将所有master配置文件添加ssl)
vim /data/nusp/es/elasticsearch-7.1.1/config/elasticsearch.yml

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate		# 证书认证级别
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
  1. 重启 elasticsearch
kill -9 10086
./elasticsearch -d
  1. 设置默认密码(输入y,分别设置 elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user账号的密码,我这里为了方便都输入统一密码10086)
bin/elasticsearch-setup-passwords interactive
  1. 配置kibana,修改 kibana.yml 文件,加入用户名和密码参数(参照以下内容)
    .

三. 安装Kibana

  1. 上传es安装包到es目录下,并解压
cd /data/nusp/es
tar -zxvf kibana-7.1.1-linux-x86_64.tar.gz
  1. 修改Kibana配置文件,添加以下内容
vim /data/nusp/es/kibana-7.1.1-linux-x86_64/config/kibana.yml

server.port: 5601	#修改绑定ip,使外部可以通过http访问
server.host: "0.0.0.0"	##监听端口,可以不修改
elasticsearch.hosts: ["192.168.11.11","192.168.11.12","192.168.11.13"]
elasticsearch.username: "kibana"
elasticsearch.password: "10086"
  1. 启动kibana服务
 ./bin/kibana &
  1. 通过浏览器访问http://192.168.11.11:5601验证。
    在这里插入图片描述

  2. 登录后顺带验证刚才安装的分词器

POST /_analyze
{
  "text": "我是中国人"
}
Ik分词器验证脚本
POST /_analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

在这里插入图片描述
.
在这里插入图片描述

.

四. 安装logstast

  1. 解压安装包,并授权安装目录
cd /data/nusp/es
tar -xzvf logstash-7.1.1.tar.gz
chown -R esUser:esUser logstash-7.1.1
  1. 修改logstash配置文件,在logstash-7.1.1目录下创建pipeline。
    将logstash-sample.conf文件拷贝到pipeline该文件夹下,修改logstash-sample.conf中output中elasticsearch的地址。
cd /data/nusp/es/logstash-7.1.1/pipeline
mv /data/nusp/es/logstash-7.1.1/config/logstash-sample.conf .
vim logstash-sample.conf

input {
  beats {
    port => 5044
  }
}

filter {
}

output {
	elasticsearch {
	hosts => ["192.168.11.11","192.168.11.12","192.168.11.13"]	
	index => "logstash-dev-%{+YYYY.MM.dd}"
	user => "elastic"
	password => "10086"
}
	stdout { codec => rubydebug }
}
  1. 启动logstash服务,必须esUser用户下执行启动命令
su - esUser
cd /data/nusp/es/logstash-7.1.1/
./bin/logstash -f ./pipeline/logstash-gn.conf > /dev/null &
  1. 验证是否正常运行
cd /data/nusp/es/logstash-7.1.1/logs
tail -f logstash-plain.log

.

五. 安装filebeat

Filebeat部署在需要采集日志的节点上(如k8s中的master和node节点),由于当前收集的是root用户下的日志,因此filebeat在root用户下安装,否则需要用户具备对/var/log/messages文件以及/var/log/podlog目录的读取权限。

  1. 创建安装目录,上传并解压安装包
 mkdir /data/nusp/es
  1. 解压安装包并重名为filebeat-7.1.1-host
 tar xzvf filebeat-7.1.1-linux-x86_64.tar.gz
 mv filebeat-7.1.1-linux-x86_64 filebeat-7.1.1-host
  1. 解压安装包并重名为filebeat-7.1.1-pod
tar xzvf filebeat-7.1.1-linux-x86_64.tar.gz
mv filebeat-7.1.1-linux-x86_64 filebeat-7.1.1-pod
  1. 修改filebeat配置文件,将配置文件filebeat-nusplog.yml拷贝到/data/nusp/es/filebeat-7.1.1-pod目录下。将filebeat-hostlog.yml文件拷贝到/data/nusp/es/filebeat-7.1.1-host目录下,注意修改文件中logstash的地址和端口信息,与logstash保持一致,修改如下。
    在这里插入图片描述

  2. 启动filebeat服务并添加权限
    这里启动了两个filebeat是因为有两个logstash,如果是一个logstash,启动一个filebeat就可以呢

cd /data/nusp/es/filebeat-7.1.1-host/
chmod 644  filebeat-hostlog.yml
./filebeat -e -c filebeat-hostlog.yml -d publish &
cd /data/nusp/es/filebeat-7.1.1-pod/
chmod 644  filebeat-nusplog.yml
./filebeat -e -c filebeat-nusplog.yml -d publish &

整个流程即为 filebeat采集/var/log/messages和/var/log/podlog目录下的日志数据传输给logstash,logstash接收到数据后经过解析将数据发送给ES集群。

后续如果新增filebeat,则需要在filebeat配置文件中配置logstash地址,logstash配置文件中配置es集群的地址。

好了,elk的部署就到这里了,是不是很简单呢 (ง •̀_•́ง)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐