环境配置要求:
组件安装包软件名称与版本功能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
- 创建es安装路径
mkdir -p /data/nusp/es/{data,logs}
- 创建esUser用户
useradd esUser
chown -R esUser:esGroup /data/nusp/es
- root权限编辑 vim配置文件/etc/security/limits.conf,最后面添加以下四行数据
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
- vim配置文件/etc/sysctl.conf,加入以下内容
vm.overcommit_memory =1
vm.max_map_count=655360
- 执行sysctl -p使配置生效
sysctl -p
- 上传es安装包到es目录下,并解压
cd /data/nusp/es
tar -zxvf elasticsearch-7.1.1-linux-x86_64.tar.gz
- 修改配置文件,进入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"
- 修改jvm.options文件
cd /data/nusp/es/elasticsearch-7.1.1/config/
vim jvm.options
-Xms4g
-Xmx4g
- ik分词器安装****将准备好的ik分词器安装包解压后将文件复制到 es的安装目录/plugins/ik下面即可,没有目录则自行创建目录,目录文件夹下不能有其他东西。
- 启动es服务,进入es的安装目录/bin下执行(后台启动,无任何错误表示启动完成,此时通过访问http://ip:9200即可)。
./elasticsearch -d
- 测试es服务,在浏览器中输入http://ip:9200回车,启动成功就会显示如下页面。
.
二. 配置 TLS 和身份验证
以下步骤在一台master上执行即可
- 生成CA证书
cd /data/nusp/es/elasticsearch-7.1.1/bin
./elasticsearch-certutil ca # 两次回车
./elasticsearch-certutil cert --ca elastic-stack-ca.p12 # 三次回车
- 赋予权限(并把证书文件 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/
- 修改配置文件(将所有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
- 重启 elasticsearch
kill -9 10086
./elasticsearch -d
- 设置默认密码(输入y,分别设置 elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user账号的密码,我这里为了方便都输入统一密码10086)
bin/elasticsearch-setup-passwords interactive
- 配置kibana,修改 kibana.yml 文件,加入用户名和密码参数(参照以下内容) .
三. 安装Kibana
- 上传es安装包到es目录下,并解压
cd /data/nusp/es
tar -zxvf kibana-7.1.1-linux-x86_64.tar.gz
- 修改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"
- 启动kibana服务
./bin/kibana &
- 通过浏览器访问http://192.168.11.11:5601验证。![在这里插入图片描述](https://img-blog.csdnimg.cn/0930b18c282a4938b55a1fe37de59370.png)
- 登录后顺带验证刚才安装的分词器
POST /_analyze
{"text":"我是中国人"}
Ik分词器验证脚本
POST /_analyze
{"analyzer":"ik_max_word",
"text":"我是中国人"}
.
.
四. 安装logstast
- 解压安装包,并授权安装目录
cd /data/nusp/es
tar -xzvf logstash-7.1.1.tar.gz
chown -R esUser:esUser logstash-7.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 }}
- 启动logstash服务,必须esUser用户下执行启动命令
su - esUser
cd /data/nusp/es/logstash-7.1.1/
./bin/logstash -f ./pipeline/logstash-gn.conf > /dev/null &
- 验证是否正常运行
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目录的读取权限。
- 创建安装目录,上传并解压安装包
mkdir /data/nusp/es
- 解压安装包并重名为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
- 解压安装包并重名为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
- 修改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保持一致,修改如下。
- 启动filebeat服务并添加权限 这里启动了两个filebeat是因为有两个logstash,如果是一个logstash,启动一个filebeat就可以呢
cd /data/nusp/es/filebeat-7.1.1-host/
chmod644 filebeat-hostlog.yml
./filebeat -e -c filebeat-hostlog.yml -d publish &cd /data/nusp/es/filebeat-7.1.1-pod/
chmod644 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的部署就到这里了,是不是很简单呢 (ง •̀_•́ง)
版权归原作者 春去春又来~ 所有, 如有侵权,请联系我们删除。