ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ELK部署

2022-04-08 02:34:23  阅读:277  来源: 互联网

标签:ES ELK 部署 elasticsearch usr 7.6 local es


ELK不是一款软件,而是Elasticsearch、Logstash和Kibana三种软件产品的首字母缩写。这三者都是开源软件,通常配合使用。ELK Stack已经成为目前最流行的集中式日志解决方案。

该部署以Centos7为例

#这里我只使用了一台设备(192.168.111.129)来进行实验

安装前提:需先配置好1.8+的JAVA环境,可参考JDK的安装配置(Windows、Linux)

Elasticsearch安装

官方介绍:Elasticsearch 是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。对于大数据查询来说,ES更加合适,solr会对于大数据查询会相对慢一些。

ES的主要应用分为两大类:

  • 搜索类(带上聚合),考虑事务性,频繁更新,与现有数据库进行同步,通过ES进行查询聚合。
  • 日志类,包括日志收集,指标性收集,通过beats等工具收集到kafka等Q中,通过logstash进行转换,输送到ES中,然后通过Kibana进行展示

ElasticSearch下载地址: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D

1.关闭防火墙和SELinux

systemctl stop firewalld.service

systemctl disable firewalld.service

setenforce 0               

vi /etc/selinux/config

SELINUX=enforcing改为SELINUX=disabled 

2.解压安装包

tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /usr/local/

3.配置ES配置文件

cd /usr/local/elasticsearch-7.6.1/config/

vi elasticsearch.ym

#将以下注释去除并修改
#配置es的集群名称
cluster.name: my-es
#节点名称
node.name: node-1
#设置索引数据的存储路径
path.data: /usr/local/elasticsearch-7.6.1/data
#设置日志的存储路径
path.logs: /usr/local/elasticsearch-7.6.1/logs
#设置当前的ip地址,通过指定相同网段的其他节点会加入该集群中
network.host: 0.0.0.0
#设置对外服务的http端口
http.port: 9200
#添加以下设置,设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点(集群内的所有ES IP及端口)
discovery.zen.ping.unicast.hosts: ["127.0.0.1","192.168.111.129:9200"]
Cluster.initial_master_nodes: ["node-1"]

4.创建ES相关配置文件  

mkdir -p /usr/local/elasticsearch-7.6.1/data
mkdir -p /usr/local/elasticsearch-7.6.1/logs

5.创建ES用户并授权

因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

useradd es

echo "123" |passwd --stdin es

chown -R es:es /usr/local/elasticsearch-7.6.1/

6.配置资源使用

vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 65535 End of file

7.配置虚拟内存大小

vi /etc/sysctl.conf 

#添加下面配置
vm.max_map_count=655360

sysctl -p

8.启动ES

su - es

cd /usr/local/elasticsearch-7.6.1/bin/

nohup ./elasticsearch &

查看日志(因为是nohup启动的,bin下面也会有一个nohup.out记录日志)

cd /usr/local/elasticsearch-7.6.1/logs

tail -f my-es.log

9.访问ES web页面

访问IP:9200即可

Elasticsearch-head安装

elasticsearch-head将是一款专门针对于elasticsearch的客户端工具。elasticsearch-head是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。

由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。

nodejs下载地址:https://nodejs.org/en/download/

ElasticSearch-head下载地址:https://github.com/mobz/elasticsearch-head

1.解压nodejs安装包

tar -xf node-v14.18.0-linux-x64.tar.xz -C /usr/local/

2.配置nodejs的环境变量

vi /etc/profile

export NODE_HOME=/usr/local/node-v14.18.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin

source /etc/profile

node -v

v14.18.0

npm -v

6.14.15

3.建立软连接

ln -s /usr/local/node-v14.18.0-linux-x64/bin/npm  /usr/local/bin/

ln -s /usr/local/node-v14.18.0-linux-x64/bin/node  /usr/local/bin/

4.安装cnpm命令

npm install -g cnpm --registry=https://registry.npm.taobao.org

5.解压ElasticSearch-head安装包并授权

unzip elasticsearch-head-master.zip -d /usr/local/

cd /usr/local/elasticsearch-head-master/

cnpm install

chown -R es:es /usr/local/elasticsearch-head-master/

6.修改ElasticSearch-head配置文件

vim Gruntfile.js

#找到connect,然后在true后面加逗号,然后换行添加hostname: '*' (注意,冒号后面有空格)

vim _site/app.js

#可以通过/app.App = ui进行查找,将localhost修改为ES的IP地址

7.修改ElasticSearch配置文件

cd /usr/local/elasticsearch-7.6.1/config/

vim elasticsearch.yml

#添加如下参数,启用CORS,这里注意后面不允许出现空格
http.cors.enabled: true  
http.cors.allow-origin: "*"

8.重启ES并启动head

可以先通过Kill命令杀掉ES进程

su - es

cd /usr/local/elasticsearch-7.6.1/bin/

nohup ./elasticsearch &

cd /usr/local/elasticsearch-head-master/

nohup npm start &

查看日志

tail -f nohup.out

查看进程

ps -ef|grep grunt
es         4946   4934  0 4月05 pts/0   00:00:02 grunt

9.访问ElasticSearch-head web页面

访问IP:9100即可

可参考elasticsearch-head页面说明及使用继续了解

Kibana安装

可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。说直白点,对数据的所有增删改查操作都可以在kibana中进行。

Kibana下载地址:https://mirrors.huaweicloud.com/kibana/?C=N&O=D

1.解压安装包

tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz -C /usr/local/

2.配置Kibana配置文件

cd /usr/local/kibana-7.6.1-linux-x86_64/config/

vim kibana.yml

#server.port: 5601
#本机IP地址
server.host: "192.168.111.129"
#ES的端口及地址
elasticsearch.hosts: ["http://192.168.111.129:9200"]
elasticsearch.requestTimeout: 90000
#中文化
i18n.locale: "zh-CN"

3.授权及启动Kibana

chown -R es:es /usr/local/kibana-7.6.1-linux-x86_64/

su - es

cd /usr/local/kibana-7.6.1-linux-x86_64/bin/

nohup ./kibana &

查看日志

tail -f nohup.out

4.查看进程

Kibana的进程通过ps -ef|grep kibana是无法查看到的,所以我们可以通过端口来进行查看

netstat -tunlp|grep 5601
tcp        0      0 192.168.111.129:5601    0.0.0.0:*               LISTEN      3974/./../node/bin/ 

要想通过ps来查看的话可以通过ps -ef|grep node来进行查看,不过node查看的话,不一定会准确

ps -ef|grep node
es         3974   3816  1 4月05 pts/0   00:01:54 ./../node/bin/node ./../src/cli
root       5029   4983  0 00:01 pts/0    00:00:00 grep --color=auto node

5.访问Kibana web页面

访问IP:5601即可

6.测试连通性

elasticsearch-analysis-ik分词器插件安装

作用:如果直接使用Elasticsearch的分词器在处理中文内容的搜索时,ES会将中文词语分成一个一个的汉字。当用Kibana作图,按照term来分组的时候,也会将一个汉字单独分成一组。这对于我们的使用是及其不方便的,因此我们引入es之中文的分词器插件es-ik就能解决这个问题。

elasticsearch-analysis-ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

1.创建分词器目录

分词器安装在ES目录下即可,所有在ES目录下创建分词器目录

cd /usr/local/elasticsearch-7.6.1/plugins/

mkdir ik

2.解压安装包

unzip elasticsearch-analysis-ik-7.6.1.zip -d /usr/local/elasticsearch-7.6.1/plugins/ik/

3.重新对ES目录授权

chown -R es:es /usr/local/elasticsearch-7.6.1/

4.重启ES和Kibana

可以先通过Kill命令杀掉ES和Kibana进程

su - es

cd /usr/local/elasticsearch-7.6.1/bin/

nohup ./elasticsearch &

此时的ES日志是可以查看到是有加载分词器插件的

cd /usr/local/kibana-7.6.1-linux-x86_64/bin/

nohup ./kibana &

分词器安装完成后,我们就可以来了解Kibana的一些具体操作了,可参考Kibana使用说明

logstash安装

注:logstash同样依赖Java环境,所以如果要在其他设备上部署也要记得进行配置

logstash下载地址: https://mirrors.huaweicloud.com/logstash/?C=N&O=D

1.解压安装包

tar -zxvf logstash-7.6.1.tar.gz -C /usr/local/

2.创建日志采集配置文件并编辑

cd /usr/local/logstash-7.6.1/config/

因为这里采集的是Mysql的日志,所以需要事先安装好Mysql,可参考Mysql单机部署(二进制方式部署)

vim sunny_log.conf

input{
  #从文件读取日志信息,输送到控制台
  file {
    path => "/var/lib/mysql/logs/query_log.log"
    codec => "json"
    type => "elasticsearch"
    start_position => "beginning"
  }
}
output{
  stdout { codec => rubydebug }         #代表在控制台输出
  elasticsearch {
    hosts => ["192.168.111.129:9200"]   #代表输出至ES
    index => "es-mysql-%{+YYYY.MM.dd}"  #索引名称格式
  }
}

这里我采集的是Mysql的操作日志,可参考Mysql操作日志(general_log)详解

3.启动logstash

这里如果不使root启用,需注意配置文件权限,并且,logstash会对第一次采集的文件先进行一次全量采集

cd /usr/local/logstash-7.6.1/bin/

nohup ./logstash -f ../config/sunny_log.conf &

通过ps -ef | grep logstash即可查看到logstash进程

4.验证

稍等片刻后(这里可能需要等待一段时间,可通过日志观察),我们就可以通过elasticsearch-head界面查看到我们的Mysql操作日志采集索引

此时的日志采集当然也是实时的,可以自行登录mysql操作看看

 

标签:ES,ELK,部署,elasticsearch,usr,7.6,local,es
来源: https://www.cnblogs.com/cjzzz/p/15990389.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有