分布式日志系统收集平台ELK+EFK,从部署到实战(上)!
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);

对于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浏览器插件(推荐) #安装谷歌浏览器插件,直接访问esdocker安装elasticsearch-head
docker run -p 9100:9100 mobz/elasticsearch-head:7npm安装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数据类型

eg数据库中存放

es存放(json格式数据)
{ "project": "基本信息", "name": "公网ip", "finish": true, "detail": "", "pub": true, "cmd":"curl ifconfig.io" }使用ES
访问ES方式:
通过代码访问;
通过api调试工具访问;
通过kibana访问es;
GET请求
/_cat #显示所有接口

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" }



本文地址:http://www.bzve.cn/news/10e3599954.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。