分布式日志系统收集平台ELK+EFK,从部署到实战(上)!

系统运维2025-11-03 23:56:3044653

  ELK是分布一组开源软件的简称,其包括ElasticSearch(数据库)、式日Logstash(收集数据)和 Kibana(展示、志系战上过滤、统收台出图)。集平ELK最近几年发展迅速,部署已经成为目前最流行的到实集中式日志解决方案。

  而EFK可以替代ELK来使用,分布logstash跑在jvm上,式日资源消耗比较大,志系战上filebeat更轻量,统收台占用资源更少。集平

  其包括ElasticSearch(数据库)、部署Filebeat(收集数据性能好)、到实Logstash(收集数据)、分布Kibana(展示、过滤、出图)、Kafka(缓存消息队列)。源码库

  ElasticStack部分

  ElasticStack用于存放ElasticStack数据,可以单独实现搜索功能。

  极速部署指南:

  jdk环境(oracle jdk rpm)(7.0之后已经内置);

  es软件包(elasticsearch-7.9.3-x86_64.rpm);

安装es rpm -ivh elasticsearch-7.9.3-x86_64.rpm warning: elasticsearch-7.9.3-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY Preparing... ################################# [100%] Creating elasticsearch group... OK Creating elasticsearch user... OK Updating / installing... 1:elasticsearch-0:7.9.3-1 ################################# [100%] ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore systemctl daemon-reload systemctl enable elasticsearch.service systemctl start elasticsearch.service

  对于Elasticsearch7.0之后的版本不需要再独立的安装JDK了,软件包里已经自带了最新的JDK,所以直接启动即可。

10.0.0.90 es01.oldboylinux.cn 10.0.0.91 es02.oldboylinux.cn 10.0.0.92 es03.oldboylinux.cn 10.0.0.93 kafka.oldboylinux.cn

  测试访问

[root@oldboy-elastic-stack-es01 ~]# curl 127.0.0.1:9200 { "name" : "oldboy-elastic-stack-es01", "cluster_name" : "elasticsearch", "cluster_uuid" : "_zvKGMEkQX-e8eR_Qohi6w", "version" : { "number" : "7.9.3", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868", "build_date" : "2020-10-16T10:36:16.141335Z", "build_snapshot" : false, "lucene_version" : "8.6.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }

  目录结构

  配置文件

  elasticsearch.yml

node.name: es01.oldboylinux.cn #节点名称 path.data: /var/lib/elasticsearch #数据目录 path.logs: /var/log/elasticsearch #日志目录 bootstrap.memory_lock: true #锁定内存,防止别人占用属于es的内存。 network.host: 10.0.0.90,127.0.0.1 #监听地址,本地网卡ip http.port: 9200 #es端口(api接口端口) discovery.seed_hosts: ["10.0.0.90"] #发现节点,这里可以使用域名 cluster.initial_master_nodes: ["10.0.0.90"] #集群初始化节点,这里可以使用域名

  补充["ip1或域名","ip2"]可以写为-"ip1或域名"-"ip2"

cp /etc/elasticsearch/elasticsearch.yml{,.bak} cat >/etc/elasticsearch/elasticsearch.yml<<EOF node.name: es01.oldboylinux.cn path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch bootstrap.memory_lock: true network.host: 10.0.0.90,127.0.0.1 http.port: 9200 discovery.seed_hosts: ["10.0.0.90"] cluster.initial_master_nodes: ["10.0.0.90"] EOF 备份

  重启故障:提示内存锁定失败

  重启后查看日志发现提示内存锁定失败

[2021-08-10T12:22:58,184][ERROR][o.e.b.Bootstrap ] [es01.oldboylinux.com] node validation exception [1] bootstrap checks failed [1]: memory locking requested for elasticsearch process but memory is not locked

  官网解决方案:

https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#systemd

  解决命令:

systemctl edit elasticsearch [Service] LimitMEMLOCK=infinity systemctl daemon-reload systemctl restart elasticsearch.service

  检查结果

[root@oldboy-elastic-stack-es01 ~]# ss -lntup |grep java tcp LISTEN 0 128 [::ffff:10.0.0.90]:9200 [::]:* users:(("java",pid=43888,fd=261)) tcp LISTEN 0 128 [::ffff:127.0.0.1]:9200 [::]:* users:(("java",pid=43888,fd=260)) tcp LISTEN 0 128 [::ffff:10.0.0.90]:9300 [::]:* users:(("java",pid=43888,fd=258)) tcp LISTEN 0 128 [::ffff:127.0.0.1]:9300 [::]:* users:(("java",pid=43888,fd=257)) [root@oldboy-elastic-stack-es01 ~]# curl es01.oldboylinux.cn:9200 { "name" : "es01.oldboylinux.cn", "cluster_name" : "elasticsearch", "cluster_uuid" : "zcU_mdHVSYaGzpBC1Q2T8w", "version" : { "number" : "7.9.3", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868", "build_date" : "2020-10-16T10:36:16.141335Z", "build_snapshot" : false, "lucene_version" : "8.6.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }

  部署es-head插件

  es通过程序代码调用es 各种api接口,es-head查看与显示es状态信息,数据量,具体数据

  elasticsearch-head介绍

官方地址: https://github.com/mobz/elasticsearch-head elasticsearch-head是一款用来管理Elasticsearch集群的第三方插件工具。 elasticsearch-Head插件在5.0版本之前可以直接以插件的亿华云形式直接安装,但是5.0以后安装方式发生了改变,需要nodejs环境支持,或者直接使用别人封装好的docker镜像,更推荐的是谷歌浏览器的插件。

  elasticsearch-head的三种安装方式

1.npm安装方式 #下载源码,编译,nodejs运行 部分公司使用 2.docker安装 #方便 根据已经制作好的es-head插件的容器,下载,运行 3.google浏览器插件(推荐) #安装谷歌浏览器插件,直接访问es

  docker安装elasticsearch-head

docker run -p 9100:9100 mobz/elasticsearch-head:7

  npm安装elasticsearch-head

yum/apt pip install #python软件包 npm install #nodejs 软件包 cd /opt/ wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz tar xf node-v12.13.0-linux-x64.tar.xz mv node-v12.13.0-linux-x64 node echo export PATH=$PATH:/opt/node/bin >> /etc/profile source /etc/profile npm -v node -v git clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm install cnpm run start

  修改Elasticsearch配置文件,添加如下参数并重启:

#准许es 被跨域访问 http.cors.enabled: true http.cors.allow-origin: "*"

  es-head谷歌浏览器插件安装

  谷歌浏览器:更多工具-->拓展程序-->开发者模式-->选择解压缩后的插件目录

  edge浏览器:扩展--->管理扩展-->开发者模式-->选择解压缩后的插件目录

  ES数据类型

MySQL术语 Elasticsearch术语 库 索引 index 表 类型 _doc 字段(列) json数据的key 值 json数据的value 记录(行) 文档 doc

  eg数据库中存放

  es存放(json格式数据)

{ "project": "基本信息", "name": "公网ip", "finish": true, "detail": "", "pub": true, "cmd":"curl ifconfig.io" }

  使用ES

  访问ES方式:

  通过代码访问;

  通过api调试工具访问;

  通过kibana访问es;

  GET请求

/_cat #显示所有接口

/_cat/health 集群健康状态

  POST/PUT请求

  指定id方法PUT

curl -XPUT http://es01.oldboylinux.cn:9200/linux/_doc/1 -H Content-Type: application/json -d { "name": "lidao996", "age": "18" }

  查看数据

  查询

指定id方法POST 随机id POST /linux/_doc/ { "name": "li", "age": "18" }

#term查询 一般根据 数据文档中 某一个键值的内容进行查询 GET linux/_search { "query": { "term": { "name": { "value": "li" } } } }

本文地址:http://www.bzve.cn/news/10e3599954.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

热门文章

全站热门

保护电脑文件安全(以电脑文件加密码错误为中心的保护策略探讨)

使用VirtualBox时遇到一个问题,我复制一个原来安装好OS的VDI文件,并用它来当作新虚拟机的系统磁盘。  但当我通过Virtual Disk Manager添加新虚拟磁盘时,VirtualBox提示了这样的错误信息: VirtualBox命令详细可见:http://www.virtualbox.org/manual/UserManual.html 2、要想复制一个VDI再次使用,必须通过VboxManager命令实现,语法是: 3、将 vdi 转成 vmdk 4、VBoxManage命令有不少增强功能,可以参考UserGuide。 VirtualBox 复制vdi文件和修改vdi的uuid 1、复制vdi文件:VBoxManage clonehd复制代码代码如下:复制代码代码如下:复制代码代码如下:D:Program FilesOracleVirtualBox>VBoxManage internalcommands sethduuid E:VirtualBoxUbuntu 12.04.vdi结果如下:UUID changed to: 04094fb4-0a42-413a-a25d-9d02d804bd2a注:使用VBoxManage命令时,需要先在命令行中切换到VirtualBox的安装目录下。

iPhone照片导入电脑显示错误的解决方法(解决iPhone照片导入电脑时出现的错误及其原因分析)

电脑裁剪衣服皮革教程大全(利用电脑技术提高裁剪效率的关键方法)

如何利用电脑表格进行打印?(一步步教你掌握新手电脑表格打印技巧)

电脑主板安装讲解教程(详细指导如何安装电脑主板)

PPPOECONF 是 Linux 平台上连接有线宽带的命令行工具软件,它的历史已经很久远了(我从 07 年开始接触 Linux 的时候就有了)。后来,Linux 的 Gnome 桌面环境中出现了一个叫 Network Manager 的组件,提供了图形化连接有线宽带的方法,PPPOECONF 就再也没有用过。但是今年升级 Ubuntu 15.04 之后,再使用 Network Manager,却一直无法通过虚拟拨号连接有线宽带。没办法,只有再次请出 PPPOECONF 这个老朋友。本经验就介绍一下如何使用 PPPOECONF 连接宽带。1、升级 Ubuntu 15.04 之后,使用 Network Manager 连接有线宽带的虚拟拨号,会出现以下错误,错误信息是:连接启用失败:(1)Creating object for path /org/freedesktop/NetworkManager/ActiveConnection/18 failed in libnm-glib.2、搜索国外论坛,有大神提出了重装 Network Manager 的办法。我试过了,然并卵。3、那就再请 PPPOECONF 这一员老将出山吧。按 Ctrl + Alt + t 组合快捷键,启动终端。4、在命令提示符 $ 后面,键入命令:$ sudo pppoeconf启动 PPPOECONF 的配置向导。在后面的步骤中,假如不明白各个步骤内容是啥意思(我就是不明白的一员嘿嘿),只要选“是”就行了。5、感谢我们的网络服务提供商,我们在这一步骤中选“是”,启用所谓的“经典模式”。6、到了输入宽带拨号用户账号的步骤了,我们按键盘上的 Backspace 删除键,删除图中文本框中预置的 username,然后输入我们自己的账号。7、当然,接下来输入密码:在空白的文本框里直接输入就行了。8、这一步骤的意思是自动获取我们的网络服务提供商分配给我们的 DNS 域名,我们还是选“是”。9、看到这一步骤中的大片文字,我能做的也只能选“是”。10、在这里,假如你只有有线连接而且要一直使用,那就选”是“,让 PPPOECONF 在开机时自动启动;假如只是像我一样偶尔用用有线,那就选”否“,在需要的时候键入命令,去启动 pppoe 虚拟拨号。11、终于接近尾声了。在这里,选“是”会立即启动虚拟拨号并建立连接。我选“否”,等会打命令启动,老长时间没打命令了,过过瘾、受受虐。12、在上一步骤中选否,PPPOECONF 向导结束,回到终端的命令提示符,我输入:$ sudo pon dsl-provider则宽带连接建立;断开有线宽带、回到 WLAN 无线网络环境,则键入:$ sudo poff可以看到,在原来的 NetworkManager 不被删除、不停止运行的前提下,可以随时启动、关闭 PPPOE;也就是说,两者和平共处、互不影响。

这是一篇对完全是新手的一篇技巧,我将向你展示如何在Ubuntu文件管理器中添加书签。现在假如你想知道为什么要这么做,答案很简单。它可以让你可以快速地在左边栏中访问。比如,我在Ubuntu中安装了Copy 云服务。它创建在/Home/Copy。先进入Home目录再进入Copy目录并不是很麻烦,但是我想要更快地访问它。因此我添加了一个书签这样我就可以直接从侧边栏访问了。在Ubuntu中添加书签当你在Files(Ubuntu中的文件管理器)中时,查看顶部菜单。你会看到书签按钮。点击它你会看到将当前路径保存为书签的选项。你可以直接按下Ctrl+D就可以将当前位置保存为书签。如你所见,这里左边栏就有一个新添加的Copy目录:这就是在Ubuntu中管理书签需要做的。我知道这对于大多数用户而言很简单,但是这也许多Ubuntu的新手而言或许还有用。

热门文章

友情链接

滇ICP备2023006006号-39