企业 Elasticsearch日志分析平台

Elasticsearch介绍

官网:https://www.elastic.co/cn/

简称: ES
Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上;
Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎;
一个分布式的实时文档存储,每个字段 可以被索引与搜索;
一个分布式实时分析搜索引擎;
能承受上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。

Elasticsearch应用场景

信息检索
日志分析
业务数据分析
数据库加速
运维指标监控

安装配置

安装包下载:https://elasticsearch.cn/download/
因为Elasticsearch是用java开发的,所以运行还需要jdk,所以还需要下载:jdk-7u80-linux-x64.tar.gz
但是在7.6以上的版本里,已经集成里jgdk 的安装包,所以直接安装Elasticsearch就可以。
官网的下载很慢可以使用华为开源镜像下载站下载:https://mirrors.huaweicloud.com/elasticsearch/

[root@server1 ~]# rpm -ivh elasticsearch-7.6.1-x86_64.rpm

安装完成后因为自带jdk所以不需要担心依赖性的问题,然后可以在/etc/elasticsearch有一个jvm.options的文件,这里面有锁定服务开启是使用的内存量,默认是1G,所以如果要注意到你的主机内存,如果可用内存过低,服务是无法启动的,Xmx设置不超过物理RAM的50%,以确保有足够的物理RAM留给内核文件系统缓存,但不要超过32G。

[root@server1 ~]# vim /etc/elasticsearch/jvm.options 
-Xms1g
-Xmx1g
配置集群信息

Elasticsearch在单主机上可以直接使用,但是为了效果这里我配置集群去使用,如果是单机就不需要开启集群相关的配置
然后去配置主配置文件

[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml 
 17 cluster.name: my-app	#编写集群名称,自定义
 23 node.name: server1	#设置本机的主机名,集群配置要配置所有节点上的解析
 33 path.data: /var/lib/elasticsearch	#默认的数据储存目录
 37 path.logs: /var/log/elasticsearch	#默认的日志储存目录
 43 #bootstrap.memory_lock: true		#内存锁定功能开启或关闭,如果主机内存不是很多,不要打开,否则服务无法启动
 55 network.host: 172.25.254.1	#主机ip
 59 http.port: 9200		#http访问的端口
 72 cluster.initial_master_nodes: ["server1"]	#集群内主机名整合,目前只有一个节点,后面可以继续添加集群节点

还需要在/etc/security/limits.conf 文件进行设定修改系统限制
在文件的最后进行添加

[root@server1 ~]# vim /etc/security/limits.conf 
elasticsearch - nofile 65536	#设置最大文件数
elasticsearch - nproc 4096		#设置最大进程数
elasticsearch soft memlock unlimited	#软件内存锁定
elasticsearch hard memlock unlimited	#硬件内存锁定

修改systemd启动文件,在service语句块下添加

[root@server1 ~]# vim /usr/lib/systemd/system/elasticsearch.service
LimitNOFILE=65535

LimitMEMLOCK=infinity	#添加内存锁定
# Specifies the maximum number of processes
LimitNPROC=4096 #这个数字就是/etc/security/limits.conf里设置的nproc 4096

修改swap的使用优先级,使它尽量少用或不用 !!!

[root@server1 ~]# echo 0 > /proc/sys/vm/swappiness
[root@server1 ~]# cat /proc/sys/vm/swappiness
0	#将原本的30改为0

[root@server1 ~]# vim /etc/fstab #把fstab下的自动挂载swap注释掉,开机及就不会去挂载swap分区,也就无法使用了
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

启动服务

[root@server1 ~]# daemon-reload 
[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml 

开启后直接通过9200端口就可以去访问了
在这里插入图片描述

添加图形界面

图形界面是从github上去下载的,可以自行去选择自己喜欢的
我下载的是

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

[root@server1 ~]# unzip master.zip	#解压
[root@server1 ~]# ls
elasticsearch-head-master	#得到这样一个目录

因为head插件本质上是一个nodejs的工程,因此需要安装node:

[root@server1 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/nodesource/rpm_9.x/el/7/x86_64/nodejs-9.11.2-1nodesource.x86_64.rpm
[root@server1 ~]# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm	#安装nodejs

因为使用npm install的时候它的安装依赖性会自行去网上下载,但是因为它的安装源在国外,我们下载会很慢,所以去更换它的安装源

[root@server1 ~]# cd elasticsearch-head-master/	#进入刚解压出来的目录里

使用淘宝的npm源来安装
[root@server1 elasticsearch-head-master]# npm install --registry=https://registry.npm.taobao.org

**注意:**这里安装的时候还需要一个命令支持,PhantomJS not found on PATH 找不到这个命令,并且它会自动下载,但是它给的网站下载是很慢的,所以需要自行提前去下载好,下载网址:https://mirrors.huaweicloud.com/phantomjs/ ,找到和它要求一样的包
在这里插入图片描述
下载完后解压拆解,

[root@server1 ~]# tar xfj phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@server1 bin]# cd phantomjs-2.1.1-linux-x86_64/bin/	#进入它的bin文件
[root@server1 bin]# cp phantomjs /usr/local/bin	#复制到系统命令目录里

[root@server1 bin]#  yum install -y fontconfig-2.13.0-4.3.el7.x86_64	#还需要安装它的依赖性包

[root@server1 bin]# phantomjs 	#测试使用就没有问题了
phantomjs> 

完成操作再去安装nmp就没有问题了
安装完成还在elasticsearch-head-master目录下修改一个文件配置,将http访问指向本机ip的9200端口

[root@server1 elasticsearch-head-master]# vim _site/app.js 
4374                         this.base_uri = this.config.base_uri || this.prefs.get("ap     p-base_uri") || "http://172.25.254.1:9200";

[root@server1 elasticsearch-head-master]# npm run start &	#后台启动就可以了

启动后会开启9100端口提供去访问
在这里插入图片描述
在这里插入图片描述

最后修改ES跨域支持,添加两条配置

[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml 
http.cors.enabled: true		#是否支持跨域,true支持
http.cors.allow-origin: "*"	#*表示支持所有域名

[root@server1 ~]# systemctl restart elasticsearch.service 	#重启服务

重启之后就可以去页面上连接节点了。连接后显示健康就没问题
在这里插入图片描述

ES分布式部署

首先需要再使用两台主机,来搭建集群
server2和server3,也去安装ES,配置文件可以直接从server1上传过去简单改一下就好

[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml 
 17 cluster.name: my-app	
 23 node.name: server2	#设置本机的主机名,集群配置要配置所有节点上的解析
 55 network.host: 172.25.254.2	#主机ip
 59 http.port: 9200		#http访问的端口
 69 discovery.seed_hosts: ["server1","server2","server3"]	#给server1上添加同样的节点主机名
 73 cluster.initial_master_nodes: ["server1","server2","server3"]	#给server1上添加同样的节点主机名
[root@server3 ~]# vim /etc/elasticsearch/elasticsearch.yml 
 17 cluster.name: my-app	
 23 node.name: server3	#设置本机的主机名,集群配置要配置所有节点上的解析
 55 network.host: 172.25.254.3	#主机ip
 59 http.port: 9200		#http访问的端口
 69 discovery.seed_hosts: ["server1","server2","server3"]
 73 cluster.initial_master_nodes: ["server1","server2","server3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值