实验环境:
操作系统: CentOS 7.5
服务器 ip:192.168.1.198
运行用户: root
网络环境: Internet
在企业生产环境有很多服务器的时候, 很多业务模块的日志的时候运维人员需要每时每刻查看日志, 这样的工作量是非常庞大的, 这样就没有时间做其它的工作, Elasticsearch 是个开源分布式搜索引擎, 它的特点有: 开源, 灵活性, 分布式, 零配置, 自动发现, 索引自动分片, 索引副本机制, restful 风格接口, 多数据源, 自动搜索负载等, 配置简单, 一般都是结合 Logstash,kibana 使用, 现在做运维的都知道有一个 ELK, 就是 Elasticsearch,Logstash,kibana 的简写, 使用比较广泛, 功能强大, 简化运维操作步骤, 还可以实现有错误日志或者故障自动报警, 如果服务器有故障, 可以通过告警方式发送个管理员, 支持企业微信, 企业钉钉, 短信等告警方式, 大家可以尝试去部署, 目前还支持 docker 部署.
Elasticsearch 是用来存储各类日志格式的组件; Logstash 是用来收集, 处理, 分析日志等, 并将其存储供以后使用; kibana 是一个 web 可视化界面的日志查询组件, 它可以为 Logstash 和 Elasticsearch 提供的日志分析友好的 Web 界面, 可以帮助您汇总, 分析和搜索重要数据日志展示出来. 这 3 个组件都是开源的, 而且是在 Linux 平台上面运行的, 所以还是需要有点 Linux 基础才能部署, 现在大型的企业一般都是在 Linux 部署 ELK 系统, 如果没有 Linux 基础的可以去了解下 Linux 基础知识或者参考《Linux 就该这么学》网站上面的资料比较全面, 直接在百度里面输入这本书的名称就能找到官网, 此书名的作者是刘遄, 此书比较适合企业应用, 本文主要介绍在 Linux 操作系统下面如何安装及部署 Elasticsearch 组件.
Elasticsearch 非常容易上手, Elasticsearch 也是一个基于 Apache 的开源搜索引擎来提供了许多合理的默认缺省值, 并对初学者隐藏了复杂的搜索引擎理论. 它开箱即用 (安装即可使用), 只需懂点 Linux 基础及很少的学习既可在生产环境中使用, Elasticsearch 也使用 Java 开发, 并使用 Lucene 作为其核心架构来实现所有索引和搜索的功能性的组件, 但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性, 从而让全文搜索变得简单, 比较适合于初学者.
一, 运行环境
- JDK:1.8.0_171(JAVA_SE)
- Elasticsearch-6.3.1 (JDK 只能用 1.8 版本)
- Logstash-6.3.1
- kibana-6.3.1
二, 安装 Java,Elasticsearch
1, 安装 JDK
下载 JDK:; 本环境下载的是 64 位 tar.gz 包, 将安装包拷贝至安装服务器 / usr/local 目录
- [root@localhost ~]# cd /usr/local/
- [root@localhost local]# tar -xzvf jdk-8u171-Linux-x64.tar.gz
- [root@localhost local]# mv jdk1.8.0_171 java
2, 配置 JDK 环境变量
方法一:
[root@localhost local]# VIM /etc/profile
将下面的内容添加至文件末尾 (假如服务器需要多个 JDK 版本, 为了 ELK 不影响其它系统, 也可以将环境变量的内容稍后添加到 ELK 的启动脚本中)
- JAVA_HOME=/usr/local/java
- JRE_HOME=/usr/local/java/jre
- CLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jar
- PATH=$PATH:$JAVA_HOME/bin
- [root@localhost local]# source /etc/profile
- [root@localhost local]# chmod +x /etc/rc.local
- [root@localhost local]# VIM /etc/rc.local
- source /etc/profile // 添加此行
方法二:
直接吧 java.sh 放到 / etc/profile.d/, 重启系统
- [root@localhost local]# VIM /etc/profile.d/java.sh
- export JAVA_HOME=/usr/local/java
- export JRE_HOME=${
- JAVA_HOME
- }/jre
- export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
- [root@centos7 ~]# java -version // 查看 java 版本, 测试 JDK 是否配置成功
- java version "1.8.0_171"
- Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
- Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
配置 limit 相关参数
[root@localhost local]# VIM /etc/security/limits.conf
添加以下内容
- * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
- ulimit -u 4096
- [root@localhost local]VIM /etc/security/limits.d/20-nproc.conf
修改如下内容:
- * soft nproc 1024 #修改为 * soft nproc 2048 或 soft nproc 4096 (根据 CPU 定, 最低是 2048)
- #VIM /etc/sysctl.conf
- // 添加下面配置: v
- m.max_map_count=655360
- // 并执行命令:
- #sysctl -p
编辑 Elasticsearch 配置文件
- #VIM usr/local/Elasticsearch-5.6.0/config/Elasticsearch.YAML
- cluster.name: nmtx-cluster
- node.name: node-1
- path.data: /usr/local/elk/data
- path.logs: /usr/local/elk/logs
- network.host: 192.168.3.104
- http.port: 9200
创建运行 ELK 的用户
- [root@localhost local]# groupadd elk
- [root@localhost local]# useradd -g elk elk
创建 ELK 运行目录
- [root@localhost local]# mkdir -p /usr/local/elk
- [root@localhost local]# chown -R elk:elk /usr/local/elk
关闭防火墙:
[root@localhost ~]# iptables -F
以上全部是 root 用户完成
3, 安装 ELK
以下由 elk 用户操作
以 elk 用户登录服务器
下载 ELK 安装包: https://www.elastic.co/downloads, 并上传到服务器且解压, 解压命令: tar -xzvf 包名
配置 Elasticsearch
修改如下内容:
保存退出
启动 Elasticsearch
查看是否启动成功
用浏览器访问: http://192.168.10.169:9200
Elasticsearch 安装完毕
- vi /etc/security/limits.conf
- // 添加如下内容:
- * soft nofile 65536
- * hard nofile 131072
- * soft nproc 2048
- * hard nproc 4096
问题三: max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解决: 切换到 root 用户, 进入 limits.d 目录下修改配置文件.
- vi /etc/security/limits.d/90-nproc.conf
- // 修改如下内容:
- * soft nproc 1024 #修改为 * soft nproc 2048
问题四: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决: 切换到 root 用户修改配置 sysctl.conf
- vi /etc/sysctl.conf
- // 添加下面配置:
- vm.max_map_count=655360
- // 并执行命令:
sysctl -p 然后, 重新启动 Elasticsearch, 即可启动成功.
4, 测试, 出现下面说明启动 Elasticsearch 成功.
- [root@centos7 local]# curl http://127.0.0.1:9200
- {
- "name" : "pcncnlr",
- "cluster_name" : "elasticsearch",
- "cluster_uuid" : "uCqIPKYqT_au90cjmtj1rw",
- "version" : {
- "number" : "6.3.1",
- "build_flavor" : "default",
- "build_type" : "tar",
- "build_hash" : "eb782d0",
- "build_date" : "2018-06-29T21:59:26.107521Z",
- "build_snapshot" : false,
- "lucene_version" : "7.3.1",
- "minimum_wire_compatibility_version" : "5.6.0",
- "minimum_index_compatibility_version" : "5.0.0"
- },
- "tagline" : "You Know, for Search"
- }
来源: http://www.bubuko.com/infodetail-2974319.html