容器elk架构

01给女朋友搭建ELK-Elasticsearch安装与配置

2021-06-29  本文已影响0人  XueFengDong

一、Elasticsearch下载

官网网站:https://www.elastic.co/cn/downloads/elasticsearch
本文采用v7.13.2版本

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz

二、Elasticsearch安装与配置

1.解压并移到指定目录

tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz

mv elasticsearch-7.13.2 /usr/local

2.修改配置文件

cd /usr/local/elasticsearch-7.13.2/config

vim elasticsearch.yml

添加如下的配置信息,注意第五项是初始化节点的node name

# 启用该物理机器所有网卡网络访问
network.host: 0.0.0.0
# 服务端口 
http.port: 9200
# 是否支持跨域,默认为false 
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名
http.cors.allow-origin: "*"
# 节点名称
node.name: node-1
# 初始化节点的名称 
cluster.initial_master_nodes: ["node-1"]

3.启动elasticsearch服务,默认不允许root用户启动,新增用户

#新增用户
useradd elkadmin
#赋予用户权限
chown -R elkadmin. /usr/local/elasticsearch-7.13.2
#切换到elkadmin用户下
su elkadmin
# 启动es
sh /usr/local/elasticsearch-7.13.2/bin/elasticsearch -d

此时会报错


图1

错误1:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
修改配置

vim /etc/security/limits.conf

添加如下配置,保存退出

* soft nofile 65536
* hard nofile 65536

重新登录后生效,可以使用下面2个命令查看当前数量

ulimit -Hn
ulimit -Sn
image.png

错误2:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
使用root用户修改配置

vim /etc/sysctl.conf

添加 vm.max_map_count=262144,保存退出

生效配置

sysctl -p

配置结束后,再次启动es,成功!
查看es日志

cd /usr/local/elasticsearch-7.13.2/logs

tailf elasticsearch.log
image.png

使用curl命令与es交互

curl http://10.27.3.20:9200
image.png
默认的es中没有安装中文分词器,可手安装中文分词插件IK
ik插件地址:https://github.com/medcl/elasticsearch-analysis-ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.13.2/elasticsearch-analysis-ik-7.13.2.zip

到es的plugins路径下新建ik,解压完成后重启es

cd /usr/local/elasticsearch-7.13.2/plugins

mkdir ik

mv /root/soft/elasticsearch-analysis-ik-7.13.2.zip /usr/local/elasticsearch-7.13.2/plugins/ik

unzip elasticsearch-analysis-ik-7.13.2.zip

测试ik中文分词器

curl -X GET -H "Content-Type: application/json"  "http://localhost:9200/_analyze?pretty=true" -d'{"text":"中华五千年华夏"}';
image.png

三、配置以systemctl方式管理Elasticsearch

新增service文件

vim /usr/lib/systemd/system/elasticsearch.service

文件中加入以下内容

[Unit]
Description=elasticsearch
After=network.target

[Service]
Type=forking
# 指定用户
User=elkadmin
# 指定es所在路径
ExecStart=/usr/local/elasticsearch-7.13.2/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535

[Install]
WantedBy=multi-user.target

加载配置信息

systemctl daemon-reload

设置开机启动

systemctl enable elasticsearch.service

相关命令

# 查看服务状态
systemctl status elasticsearch.service
# 启动服务
systemctl start elasticsearch.service
# 重启服务
systemctl restart elasticsearch.service
# 停止服务
systemctl stop elasticsearch.service
# 禁止开机启动
systemctl disable elasticsearch.service 
# 启用开机启动
systemctl enable elasticsearch.service
上一篇下一篇

猜你喜欢

热点阅读