100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

时间:2022-09-27 21:52:45

相关推荐

[基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

步骤/详情

一:下载

注意的是下载版本为免安装版。下载地址:

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

笔者由于当前用的是JDK8选择的是 7.0.0-alpha2 版本。

为最后一个不内嵌JDK的版本(包大小为140M+), 后面的版本内嵌JDK11+了

推荐高版本直接上JDK17+

二: 安装ES服务

Window版的ElasticSearch的安装很简单,类似Window版的Tomcat,解压开即安装完毕,解压后的ElasticSearch的目录结构如下:

修改elasticsearch配置文件,config/elasticsearch.yml文件,增加文件内容如下:

# 开启跨域访问http.cors.enabled: true http.cors.allow-origin: "*"# 关闭安全校验 (生产外网环境建议设置账号密码并且开启该选项)xpack.security.enabled: false

添加配置是为了允许elasticsearch跨域访问,如果不配置,后面有可能elasticsearch-head是可以不修改,直接启动;

2.1 elasticsearch 7.0.0 系列版本以上添加配置

在elasticsearch7.x之后的版本, 已经集成了自带的jdk, 在根目录下的jdk文件夹中 这里需要修改elasticsearch-env.bat启动文件的配置内容, 设置系统使用elasticsearch自带的jdk版本 在bin/elasticsearch-env.bat文件中找到关于JAVA_HOME的配置, 注释掉if…else判断的东西,

把下面的代码

if defined ES_JAVA_HOME (set JAVA="%ES_JAVA_HOME%\bin\java.exe"set JAVA_TYPE=ES_JAVA_HOME) else if defined JAVA_HOME (rem fallback to JAVA_HOMEecho "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2set JAVA="%JAVA_HOME%\bin\java.exe"set "ES_JAVA_HOME=%JAVA_HOME%"set JAVA_TYPE=JAVA_HOME) else (rem use the bundled JDK (default)set JAVA="%ES_HOME%\jdk\bin\java.exe"set "ES_JAVA_HOME=%ES_HOME%\jdk"set JAVA_TYPE=bundled JDK)

改为:

set JAVA="%ES_HOME%\jdk\bin\java.exe"set JAVA_HOME="%ES_HOME%\jdk"set JAVA_TYPE=bundled jdk

2.2 修改yml文件 外网可以访问

conf/elasticsearch.yml 修改network.host为:

# 设置节点名称node.name: node-1#设置ip地址,使任意网络均可访问network.host: 0.0.0.0#放开端口号http.port: 9200# 启动时初始化的参与选主的节点cluster.initial_master_nodes: ["node-1"]# 开启跨域访问http.cors.enabled: true http.cors.allow-origin: "*"

三:IK 中文分词器

elasticsearch-analysis-ik

下载解压之后放到elasticsearch/pluging目录下

3.1 IK 配置文件

main.dic : IK 中内置的词典。 main dictionary。记录 了 IK 统计的所有中文单词。一行一词。文件中未记录的单词,IK 无法实现有效分词。

如:雨女无瓜。不建议修改当前文件中的单词。这个是最核心的中文单词库。就好像,很多的网络词不会收集到辞海中一样。

quantifier.dic : IK 内置的数据单位词典suffix.dic :IK 内置的后缀词典surname.dic :IK 内置的姓氏词典stopword.dic :IK 内置的英文停用词

preposition.dic :IK 内置的中文停用词(介词)

IKAnalyzer.cfg.xml :

用于配置自定义词库的自定义词库是用户手工提供的特殊词典,类似网络热词,特定业务用词等。

ext_dict:

自定义词库,配置方式为相对于IKAnalyzer.cfg.xml文件所在位置的相对路径寻址方式。相当于是用户自定义的一个main.dic文件。是对main.dic文件的扩展。

ext_stopwords:

自定义停用词,配置方式为相对于IKAnalyzer.cfg.xml文件所在位置的相对路径寻址方式。相当于是preposition.dic的扩展。

注意:IK的所有的 dic词库文件,必须使用 UTF-8字符集。不建议使用 windows自带的文本编辑器编辑。Windows中自带的文本编辑器是使用 GBK字符集 。IK不识别,是乱码。

备注 IK分词器 查看方式

ik_max_word 和 ik_smart 方式的区别大致就是前者会进行更细粒度的拆分,后者更多的是尽可能的组成词汇短语

GET _analyze{"analyzer":"ik_max_word","text": "中华人名共和国"}GET _analyze{"analyzer":"ik_smart","text": "中华人名共和国"}

四 : 启动ES服务

点击elasticsearch下的bin目录下的elasticsearch.bat启动:

注意:9300是tcp通讯端口,集群间和TCPClient都执行该端口,9200是http协议的RESTful接口;

通过浏览器访问elasticsearch服务器,启动成功后的内容如下:

注意事项:

1, elasticsearch是使用java开发的,且本版本的ES需要的jdk版本要是1.8以上 一定要严格注意JDK版本对应 7.0.1以及以上版本推荐使用JDK17;

2, 启动elasticsearch.bat时,如果一闪而过,修改配置如下:

Elasticsearch默认会配置2G的JVM堆的初始值和最大值,该jvm参数被配置在/config/jvm.options里,可以将JVM参数改小:

-Xms512M-Xmx512M

五:安装Kibana

1、到官网下载Kibana:Download Kibana Free | Get Started Now | Elastic 。

2、解压并修改配置文件。

修改“elasticsearch.hosts”属性并保存文件:

# 外网可以访问server.host: "0.0.0.0"# 如果ES没有kibana索引则创建索引kibana.index: ".kibana"elasticsearch.hosts: ['http://远程服务器ip:9200']# 设置kibana为中文i18n.locale: "zh-CN"

3、运行 kibana.bat。

Ready状态即为成功。

4、打开 http://localhost:5601/app/kibana#/ ,页面成功加载。

注意: 关于Kibana 设置中文不生效问题

修改i18n.locale: "zh-CN"参数的人都忽略了一个事实

中文版本仅限于包含x-pack的版本,因为kibana的中文包就放在

/home/kibana-7.1.1-linux-x86_64/node_modules/x-pack/plugins/translations/translations这个路径下

六:安装Logstash

解压并设置默认配置

设置外网访问

在 logstash-7.0.0\config\logstash.yml文集添加以下配置

# 开启外网访问http.host: 0.0.0.0

进入bin目录,新建文件logstash_default.conf

input {# Filebeat 默认端口号5044 如果使用Filebeat 可以放开这段注释beats {port => "5044"}stdin{}} output {elasticsearch {hosts => ["127.0.0.1:9200"]index => "logstash-console-%{+YYYY.MM.dd}"#user => "elastic"#password => "changeme"}stdout{}}

在bin目录,新文件文件run_default.bat

logstash -f logstash_default.conf

运行启动logstash

点击run_default.bat,启动logstash,浏览器访问http://localhost:9600/,表示启动成功。

kibana可以看到logstash创建的索引了

记得使用新生命周期策略(关闭滚动更新)

kibana 创建索引查看可以获取到相关信息了

七:🧩安装Filebeat

官方资源地址 下载并且解压

# 查看filebeat支持哪些模块./filebeat modules list# 开启支持模块(nginx/ mysql)./filebeat modules enable system nginx mysql

7.1 相关配置

放开logstash 的关于filebeat 5044端口 相关配置打开主目录下面 filebeat.yml文件

filebeat.inputs:##类型,默认的log即可- type: log##默认是false,不启用设置,这里设置好的一定要改成true,否则不生效enabled: truepaths:##日志路径,绝对路径,可以使用*来做通配,但是我并没有这么做,日志索引的信息我是定期删除的,这个也要考虑一下你的日志滚动设置- /var/log/nginx/access.log##这个是为我们采集的每条日志信息增加一个标签一样的东西,来进行标识,为啥是这个,我不知道,反正大家都这么写的,哈哈- fields:index: nginx-access- type: logenabled: truepaths:- /var/log/nginx/error.logfields:index: nginx-error# ---------------------------- Elasticsearch Output ----------------------------##这个是默认开启的,我们要把采集的日志送到logstash中,所以要关闭这个,当前配置只允许开启一个output设置,不能双开#output.elasticsearch:##这个也注释上#hosts: ["localhost:9200"]# ------------------------------ Logstash Output -------------------------------##默认关闭的,我们使用logstash进行配置,所以去掉注释打开output.logstash:##地址要填写logstash得到主机IP地址,端口号默认是5044,但其实它是在logstash主机下的 /etc/logstash/conf.d/logstash.conf 中设置的hosts: ["127.0.0.1:5044"]

之后将output 的输出索引名称进行更新

output {elasticsearch {hosts => ["http://localhost:9200"]##格式这里,[fields] 和 [index] 分别对应 filebeat 中对日志文件设置的“标签”index => "%{[fields][index]}-%{[@metadata][beat]}-%{+YYYY.MM.dd}"user => "elastic"password => "elastic"}}

在主目录启动 filebeat

./filebeat -e -c filebeat.yml

然后可以手动修改error.log 文件 去kibana的索引管理以及 Analytics --> Discover 中查看日志数据:

发现索引已经创建成功,然后可以创建该索引的索引默认进行面板查看了

八:🧩安装 Metricbeat

ES的性能监控指标,可以在kibana面板查看ES节点的资源使用情况, ES资源不足时候性能回下降比较严重。

8.1 下载并安装 Metricbeat

从下载页面下载Metricbeat Windows zip 文件。将该 zip 文件的内容解压缩到 C:\Program Files.将 metricbeat-7.17.5-windows 目录重命名为 Metricbeat。以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择以管理员身份运行)。如果运行的是 Windows XP,则可能需要下载并安装 PowerShell。从 PowerShell 提示符处,运行以下命令以将 Metricbeat 安装为 Windows 服务。

如果系统上禁用了脚本执行,则需要为当前会话设置执行策略,以允许脚本运行,例如: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1

cd "C:\Program Files\Metricbeat".\install-service-metricbeat.ps1

8.2 编辑配置

修改 C:\Program Files\Metricbeat\metricbeat.yml 以设置连接信息:

# ES 地址output.elasticsearch:hosts: ["<es_url>"]username: "elastic"password: "<password>"# kibana 地址setup.kibana:host: "<kibana_url>"# 加载默认模板setup.dashboards.enabled: true

8.3 启用和配置 elasticsearch 模块

.\metricbeat.exe modules enable elasticsearch# system 这个模块.\metricbeat.exe modules enable system

在 modules.d/elasticsearch.yml 文件中修改设置。

8.4 启动 Metricbeat

setup 命令加载 Kibana 仪表板。如果仪表板已设置,请省略此命令。\

.\metricbeat.exe setupStart-Service metricbeat# 开启面板命令.\metricbeat.exe setup --dashboards

执行完成后,可以在计算机-管理-服务中看到metricbeat服务是启动状态,在kibana可视化中可以看到Windows主机信息了。

8.5 模块状态

确认从 Metricbeat elasticsearch 模块收到索引数据

8.6 堆栈检测添加监控

恭喜完成安装!!!

参考资料 & 致谢

[1] warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME

[2] kibana中文支持不生效

[3] ELK7.11.2版本安装部署及ElastAlert告警相关配置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。