ELK

  • 一、ELK Stack `日志分析系统`
  • 二、注意事项
  • 三、官方下载地址
  • 四、官方安装文档
  • 4.1Elasticsearch 安装
  • 4.1.1 安装文档
  • 4.1.2 参数配置 `elasticsearch-7.6.2目录/config/`
  • 4.1.2.1 jvm.options
  • 4.1.2.2 elasticsearch.yml
  • 4.1.3 运行
  • 4.1.4 常见错误
  • 4.1.4.1错误1: 文件权限不足
  • 4.1.4.2 错误2:进程虚拟内存
  • 4.1.4.3 错误3: elasticsearch 至少开启一个节点
  • 4.1.5Elasticsearch 命令
  • 4.2 Elasticsearch-analysis-ik
  • 5 Kibana 安装
  • 5.1 配置文件`kibana.yml`
  • 5.2 运行
  • 5.3 问题
  • 5.4 简单调试
  • 6 日志收集
  • 7客户端
  • 8 API


一、ELK Stack 日志分析系统

https://www.elastic.co/cn/start https://github.com/elastic

那么,ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:

Elasticsearch、Logstash 和 Kibana

产品

说明

备注

Elasticsearch

存储、搜索和分析

是一个搜索和分析引擎

Logstash

采集、转换、充实、然后输出

是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch等“存储库”中

Kibana

可视化和管理

则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化

Elastic Stack 是 ELK Stack 的更新换代产品。

ELK 官方下载地址

https://www.elastic.co/cn/downloads/

Github elastic/elasticsearch

https://github.com/elastic/elasticsearch/releases https://github.com/medcl/elasticsearch-analysis-ik/releases

espeak linux下载安装_elasticsearch

二、注意事项

espeak linux下载安装_elasticsearch_02

  1. 下载同一个版本号
  2. 在子用户下安装ELK,因ElK 禁止 使用root 用户安装
  3. kill -9 ** 请使用root 用户去操作

注意:java.lang.RuntimeException: can not run elasticsearch as root

出于安全考虑,elasticsearch默认不允许以root账号运行

#创建用户 root管理操作
useradd yitao
#设置密码
passwd yitao
#切换用户
su - yitao

三、官方下载地址

https://www.elastic.co/cn/start

https://github.com/elastic

四、官方安装文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

4.1Elasticsearch 安装

4.1.1 安装文档

espeak linux下载安装_espeak linux下载安装_03

espeak linux下载安装_elasticsearch_04


上传安装包到 /home/yitao目录

tar -xzf elasticsearch-7.6.2-linux-x86_64.tar.gz
cd elasticsearch-7.6.2/

配置 环境变量 $ES_HOME= elasticsearch-7.6.2 目录

修改文件 /etc/profile 并立即生效 source /etc/profile

espeak linux下载安装_elastic_05

4.1.2 参数配置 elasticsearch-7.6.2目录/config/
4.1.2.1 jvm.options

Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。

内存调小一点

-Xms512m
-Xmx512m
4.1.2.2 elasticsearch.yml
  • 修改数据和日志目录
path.data: /home/yitao/elasticsearch/data # 数据目录位置
path.logs: /home/yitao/elasticsearch/logs # 日志目录位置

需要提前创建好 data 和 logs 这两个目录

espeak linux下载安装_elastic_06

默认Elasticsearch安装目录下 的data 和 logs

espeak linux下载安装_elastic_07

  • 修改绑定的ip
network.host: 0.0.0.0  # 绑定到0.0.0.0,允许任何ip来访问

默认只允许本机访问,修改为0.0.0.0后则可以远程访问

elasticsearch.yml的其它可配置信息:

属性名

说明

cluster.name

配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。

node.name

节点名,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理

path.conf

设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch

path.data

设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开

path.logs

设置日志文件的存储路径,默认是es根目录下的logs文件夹

path.plugins

设置插件的存放路径,默认是es根目录下的plugins文件夹

bootstrap.memory_lock

设置为true可以锁住ES使用的内存,避免内存进行swap

network.host

设置bind_host和publish_host,设置为0.0.0.0允许外网访问

http.port

设置对外服务的http端口,默认为9200。

transport.tcp.port

集群结点之间通信端口

discovery.zen.ping.timeout

设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些

discovery.zen.minimum_master_nodes

主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2

4.1.3 运行

进入elasticsearch/bin目录,并查看如图下的执行文件

espeak linux下载安装_espeak linux下载安装_08

cd 进入elasticsearch/bin目录

./elasticsearch
  • 启动成功(端口放行9200 9300)
  • 9300:集群节点间通讯接口
  • 9200:客户端访问接口

espeak linux下载安装_espeak linux下载安装_09


publish_address {192.168.1.15:9300}, bound_addresses {[::]:9300}

publish_address {192.168.1.15:9200}, bound_addresses {[::]:9200}

两者都出现时,才表示启动成功

publish_address {192.168.1.15:9200}, bound_addresses {[::]:9200} 如果没有出现在日志文件里面,则表示启动不成功

浏览器中访问:http://192.168.3.220:9200

!

espeak linux下载安装_elasticsearch_10

  • cluster_uuid:的值为:一串字符字符串 则表示启动成功
  • cluster_uuid:的值为:"--na--" 则表示9200端口没启动成功 会导致kibana 访问时返回:Kibana server is not ready yet

Kibana server is not ready yet 产生的原因,有可能时Elasticsearch 配置文件里面没有配置该节点名称

espeak linux下载安装_elastic_11

4.1.4 常见错误

espeak linux下载安装_elastic_12

4.1.4.1错误1: 文件权限不足

max file descriptors [4096] for elasticsearch process too low, increase to at least [65536]
查看当前用户权限 命令

ulimit -Hn
ulimit -Sn

修改配置文件 /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
4.1.4.2 错误2:进程虚拟内存

修改配置文件 /etc/sysctl.conf

vm.max_map_count=655360
4.1.4.3 错误3: elasticsearch 至少开启一个节点

修改配置文件elasticsearch.yml 取消 cluster.initial_master_nodes: [“node-1”] 注释

cluster.initial_master_nodes: ["node-1"]

espeak linux下载安装_elastic_13


如果时单台Elasticsearch 集群,配置文件elasticsearch.ymlnode.namecluster.initial_master_nodes 值设置要一样

4.1.5Elasticsearch 命令

Option

Description

-E

Configure a setting

-V, --version

Prints Elasticsearch version information and exits

-d, --daemonize

Starts Elasticsearch in the background 后台运行

-h, --help

Show help

-p, --pidfile

Creates a pid file in the specified path on start

-q, --quiet

Turns off standard output/error streams logging in console

-s, --silent

Show minimal output

-v, --verbose

Show verbose output

espeak linux下载安装_elastic_14

4.2 Elasticsearch-analysis-ik

Lucene的IK分词器

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

IK 和 ES 版本对应关系

espeak linux下载安装_elasticsearch_15


下载zip

espeak linux下载安装_espeak linux下载安装_16


将zip 解压到 elasticsearch 插件目录plugin

espeak linux下载安装_espeak linux下载安装_17

  • 安装方式1: 解压压缩包
#进入es 插件目录plugins
cd  elasticsearch安装目录/plugins
#解压
unzip elasticsearch-analysis-ik-7.6.2.zip -d es-analysis-ik
#重新启动 elasticsearch

解压后,删除对应得压缩包,只留下解压文件夹

espeak linux下载安装_espeak linux下载安装_18


espeak linux下载安装_Elastic_19

  • 安装方式2: elasticsearch-plugin 安装
#进入 elasticsearch/bin 目录
cd  elasticsearch安装目录/bin
# 使用 elasticsearch-plugin 插件安装
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

espeak linux下载安装_Elastic_20

重启Elasticsearch

5 Kibana 安装

注:通用不允许使用root 安装,请切换到 子用户 去安装和运行

tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz
cd kibana-7.6.2/

espeak linux下载安装_elasticsearch_21

5.1 配置文件kibana.yml
kibana-7.6.2目录/config/kibana.yml
#服务端口
server.port: 5601
# 0.0.0.0 允许任何 IP 访问
server.host: "0.0.0.0"
#elasticsearch 服务器ip:port地址
elasticsearch.hosts: ["http://192.168.1.15:9200"]
#语言设置中文
i18n.locale: "zh-CN"

espeak linux下载安装_elastic_22

5.2 运行

默认端口号: 5601

#进入kibana  bin目录
cd kibana-7.6.2目录/bin
#运行kibana
./kibana

状态为 state:green 表示启动成功

espeak linux下载安装_espeak linux下载安装_23


访问: http://192.168.1.15:5601 能正常访问

espeak linux下载安装_elastic_24

5.3 问题
  • 查找不到进程 ps -ef | grep kibana
  • 处理方法:使用 nethup -luntp | grep 5601

espeak linux下载安装_elasticsearch_25

node 进程??

原因kibana 使用node.js 编写

espeak linux下载安装_elasticsearch_26

5.4 简单调试
  • 最大分词 ik_max_word
  • 智能分词 ik_smart

espeak linux下载安装_espeak linux下载安装_27


espeak linux下载安装_elasticsearch_28

6 日志收集

espeak linux下载安装_elastic_29

7客户端

espeak linux下载安装_Elastic_30


espeak linux下载安装_Elastic_31

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.6.2</version>
</dependency>

8 API

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

espeak linux下载安装_espeak linux下载安装_32