ELK 安装部署

news/2024/5/26 20:35:10/文章来源:https://blog.csdn.net/iiothub/article/details/136641370

文章目录

      • 1.日志收集规划
      • 2.Elasticsearch部署
        • 2.1.Elasticsearch安装
        • 2.2.Elasticsearch-head安装
        • 2.3.Elasticsearch设置分片数
        • 2.4.elasticsearch健康检查
      • 3.Kibana部署
      • 4.Logstash部署
      • 5.Filebeat部署

  • 开源中间件
# Elastic Stackhttps://iothub.org.cn/docs/middleware/
https://iothub.org.cn/docs/middleware/elk/elk-deploy/

1.日志收集规划

日志管理使用Elastic Stack框架,系统的重要日志进行聚合,统一管理。
涉及的组件包括:Elasticsearch、Filebeat、Logstash、Kibana、RabbitMQ、Nginx。

  • 微服务日志采集

微服务日志通过Logback写到MQ(kafka或rabbitmq,目前选择rabbitmq),logstash读取MQ把日志写到Elasticsearch,通过Kibana查询。
在这里插入图片描述

  • 中间件、数据库日志采集

中间件、数据库日志通过Filebeat写到Elasticsearch,通过Kibana查询。

生产环境日志架构
在这里插入图片描述

2.Elasticsearch部署

2.1.Elasticsearch安装
  • 准备工作
### 准备工作
# 启动简单版,然后 copy 文件到 宿主机,最后删除该容器# 创建目录
mkdir -p /elk/cluster/es# 运行docker
docker run -tid \
--name=elasticsearch \
-p 19200:9200 \
-p 19300:9300 \
-v /etc/localtime:/etc/localtime \
-e ES_JAVA_OPTS="-Xms4g -Xmx4g" \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
elasticsearch:7.1.1# 复制配置文件
docker cp elasticsearch:/usr/share/elasticsearch/config/   /elk/cluster/es/
docker cp elasticsearch:/usr/share/elasticsearch/data/   /elk/cluster/es/
docker cp elasticsearch:/usr/share/elasticsearch/logs/   /elk/cluster/es/
docker cp elasticsearch:/usr/share/elasticsearch/plugins/   /elk/cluster/es/# 删除镜像
docker stop elasticsearch
docker rm elasticsearch
  • 配置es
### es-node-01配置(172.17.88.22)
# 修改配置文件
/elk/cluster/es/config/elasticsearch.yml# elasticsearch.yml:
cluster.name: es-iids-cluster
node.name: es-node-01
node.master: true
node.data: true
network.host: 172.17.88.22
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["172.17.88.22", "172.17.88.19", "172.17.88.18"]
cluster.initial_master_nodes: ["es-node-01", "es-node-02", "es-node-03"]
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"# jvm.options
-Xms1g
-Xmx1g

其他三个节点配置相同。

  • 运行Docker
# 运行dockerdocker run -d --name es-node-01 --net host --restart=always \
-v /elk/cluster/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elk/cluster/es/config/jvm.options:/usr/share/elasticsearch/config/jvm.options \
-v /elk/cluster/es/data/:/usr/share/elasticsearch/data/ \
-v /elk/cluster/es/logs/:/usr/share/elasticsearch/logs/ \
-v /elk/cluster/es/plugins/:/usr/share/elasticsearch/plugins/ \
elasticsearch:7.1.1
### 访问地址# es-node-01(172.17.88.22)
http://47.95.238.119:19200/
curl '172.17.88.22:9200'
2.2.Elasticsearch-head安装
  • 运行Docker
# 运行Docker,三个节点分别安装docker run -d --name es-head --restart=always -p 19100:9100 mobz/elasticsearch-head:5
### 安装遇到问题# 连不上elasticsearch
docker exec -it elasticsearch /bin/bash
vi ES配置文件elasticsearch.yml加入2个参数,并重启http.cors.enabled: true
http.cors.allow-origin: "*"# 重启容器
docker restart elasticsearch
# 访问地址http://47.95.238.119:19100/
curl '172.17.88.22:19100'
2.3.Elasticsearch设置分片数

elasticsearch7.x 设置默认副本 和默认分片

# 设置elasticsearch默认模板(之后创建索引副本为)
curl -X PUT 47.95.238.119:19200/_template/log  -H 'Content-Type: application/json' -d '{"template": "*","settings": {"number_of_shards": 5,"number_of_replicas": "1"}
}'"template": "*" 代表所有 索引
"template": "apple*" 代表生成apple*的索引都会按照这个模板来了
# 设置默认分片5,副本1curl -X PUT 47.95.238.119:19200/_template/log  -H 'Content-Type: application/json' -d '{"template": "*","settings": {"number_of_shards": 5,"number_of_replicas": 1}
}'
2.4.elasticsearch健康检查
# 常用查询命令# 查看集群进程状态:
curl -u elastic:{password} -X GET "172.18.54.20:9200/_nodes/stats/process?pretty"
http://47.95.238.119:19200/_nodes/stats/process?pretty#检查集群状态:
curl -u elastic:{password} -X GET "172.18.54.20:9200/_nodes/stats?pretty"
http://47.95.238.119:19200/_nodes/stats?pretty# 查看ES集群健康状态
curl -u elastic:{password} -X GET "172.18.54.20:9200/_cluster/health?pretty"
http://47.95.238.119:19200/_cluster/health?prettycurl -u elastic:{password} -X GET "172.18.54.20:9200/_cluster/health?level=indices"
http://47.95.238.119:19200/_cluster/health?level=indices# 查看指定索引库的健康状态
curl -u elastic:{password} -X GET "172.18.54.20:9200/_cluster/health/{indexName}?pretty"
http://47.95.238.119:19200/_cluster/health/{indexName}?pretty

3.Kibana部署

  • 准备工作
### 准备工作
# 启动简单版,然后 copy 文件到 宿主机,最后删除该容器# 创建目录
mkdir -p /elk/cluster/kibana# 运行docker
docker run -tid \
--name=kibana \
-p 15601:5601 \
-v /etc/localtime:/etc/localtime \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
kibana:7.1.1# 复制配置文件
docker cp kibana:/usr/share/kibana/config/ /elk/cluster/kibana/
docker cp kibana:/usr/share/kibana/data/ /elk/cluster/kibana/
docker cp kibana:/usr/share/kibana/plugins/ /elk/cluster/kibana/# 删除镜像
docker stop kibana
docker rm kibanachmod 777 /elk/cluster/kibana/data
  • 修改配置文件
# 修改配置文件
/elk/cluster/kibana/config/kibana.yml# kibana.yml
server.port: 15601
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://172.17.88.22:9200", "http://172.17.88.19:9200", "http://172.17.88.18:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true# 没有配置以下内容
elasticsearch.username: kibana
elasticsearch.password: keda123456
xpack.security.encryptionKey: "something_at_least_32_characters"
xpack.reporting.encryptionKey: "something_at_least_32_characters"
xpack.security.sessionTimeout: 600000
  • 运行Docker
# 运行docker docker run -d --name kibana --net host --restart=always \
-v /elk/cluster/kibana/config/:/usr/share/kibana/config/ \
-v /elk/cluster/kibana/data/:/usr/share/kibana/data/ \
-v /elk/cluster/kibana/plugins/:/usr/share/kibana/plugins/ \
kibana:7.1.1
### 访问地址
http://47.95.238.119:15601
http://47.95.228.247:15601
http://123.56.18.37:15601

4.Logstash部署

  • 准备工作
### 准备工作
# 启动简单版,然后 copy 文件到 宿主机,最后删除该容器# 创建目录
mkdir -p /elk/cluster/logstash# 运行docker
docker run -tid \
--name=logstash \
-p 15044:5044 \
-p 19600:9600 \
-v /etc/localtime:/etc/localtime \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
logstash:7.1.1# 复制配置文件
docker cp logstash:/usr/share/logstash/config/   /elk/cluster/logstash/
docker cp logstash:/usr/share/logstash/pipeline/   /elk/cluster/logstash/# 先不用
docker cp logstash:/usr/share/logstash/data/   /elk/cluster/logstash/
docker cp logstash:/usr/share/logstash/vendor/   /elk/cluster/logstash/# 删除镜像
docker stop logstash
docker rm logstash
  • 修改配置文件
# 修改配置文件
/elk/cluster/logstash/config/logstash.yml (可不配置)
http.host: "0.0.0.0"
xpack.monitoring.enabled: false# /elk/cluster/logstash/pipeline/logstash.conf
# logstash.conf:#  采集rabbitmq
input {rabbitmq {type =>"msa"durable => trueexchange => "iids-elk-msa-exchange"exchange_type => "direct"key => "log"host => "172.17.88.22"port => 5672user => "guest"password => "guest"queue => "iids-elk-msa-queue"auto_delete => false}}output {elasticsearch {hosts => ["172.17.88.22:9200", "172.17.88.19:9200", "172.17.88.18:9200"]index => "%{appname}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}}#  采集filebeat
input {beats {port => 5044}
}output {elasticsearch {hosts => ["172.17.88.22:19200", "172.17.88.19:19200", "172.17.88.18:19200"]index => "%{appname}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}}
  • 运行Docker
# 运行docker docker run -d --name logstash --net host --restart=always \
-v /elk/cluster/logstash/config:/usr/share/logstash/config \
-v /elk/cluster/logstash/pipeline:/usr/share/logstash/pipeline \
logstash:7.1.1

5.Filebeat部署

### rpm安装 
rpm -vih filebeat-7.1.1-x86_64.rpm# 启动filebeat服务
systemctl start filebeat# 停止filebeat服务
systemctl stop  filebeat# 设置开机自启动 
systemctl enable filebeat # 常用命令
systemctl start filebeat               #启动服务
systemctl stop  filebeat               #停止服务
systemctl enable filebeat              #设置开机自启动
systemctl disable filebeat             #停止开机自启动
systemctl status filebeat              #查看服务当前状态
systemctl restart filebeat            #重新启动服务
systemctl list-units --type=service    #查看所有已启动的服务
  • 开源中间件
# Elastic Stackhttps://iothub.org.cn/docs/middleware/
https://iothub.org.cn/docs/middleware/elk/elk-deploy/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1006090.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何把网站的http改成https?

想把网站从不安全的HTTP换成安全的HTTPS?来瞧瞧下面几步操作: 1.挑个SSL证书: - 根据你的网站情况(比如就一个域名、多个域名还是啥域名都得管),找一款适合的SSL证书,有免费的DV(验…

Ypay源支付6.9无授权聚合免签系统可运营源码

YPay是一款专为个人站长设计的聚合免签系统,YPay基于高性能的ThinkPHP 6.1.2 Layui PearAdmin架构,提供了实时监控和管理的功能,让您随时随地掌握系统运营情况。 说明 Ypay源支付6.9无授权聚合免签系统可运营源码 已搭建测试无加密版本…

STM32平替GD32有多方便

众所周知, GD32一直模仿STM32,从未被超越。 我最近公司使用的GD32E230C6T6 这款芯片有48个引脚。 属于小容量的芯片。 我有一个用STM32写的代码,之前是用的 STM32F103CB 这款芯片是中容量的。 不过在keil中,只需要这两步,就能使用原来的逻辑,几乎不用修改代码。 1. …

【典】dp背包问题(树求方案)

回顾在acw上做过的题 有依赖的背包问题 这一题是与树相关的dp问题,根据父节点与子节点的相连关系,我们用dfs来处理根节点与子树的迭代更新,把每一颗最小单位子树看成一个物品,然后就有点像多重背包(因为有体积限制&…

大宗电子盘商品撮合制交易软件PHP后台

大宗电子盘商品撮合制交易软件是一种用于大宗商品电子交易的系统,其中撮合制是交易机制的核心部分,它负责将买卖双方的订单进行匹配并完成交易。在开发这类软件的PHP后台时,需要考虑以下几个关键方面: 系统架构设计: …

3、设计模式之工厂模式2(Factory)

一、什么是工厂模式 工厂模式属于创建型设计模式,它用于解耦对象的创建和使用。通常情况下,我们创建对象时需要使用new操作符,但是使用new操作符创建对象会使代码具有耦合性。工厂模式通过提供一个公共的接口,使得我们可以在不暴露…

植物病害识别:YOLO水稻病害识别数据集(3000多张,3个类别,yolo标注)

YOLO水稻病害识别数据集,包含细菌性枯萎病,水稻瘟疫,褐斑病3个常见病害类别,共3000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研,实验等 需要此数据集或…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:DataPanel)

数据面板组件,用于将多个数据占比情况使用占比图进行展示。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 DataPanel(options: DataPanelOptions) 从API version …

Redis到底是单线程还是多线程!,【工作感悟】

无论你是做 Python,PHP,JAVA,Go 还是 C#,Ruby 开发的,都离不开使用 Redis。 大部分程序员同学工作中都有用到 Redis,但是只限于会简单的使用,对Redis缺乏整体的认知。 无论是在大厂还是在中小…

开发指南009-从list导出excel文件

从数据库返回一般是对象的列表,平台底层提供了从list转为excel文件的方法。平台的设计思想就是为一些典型的场景设计对应的解决方法,通过模式化的方法来简化编程和提高维护性(通过标准化来减少学习成本和维护成本,张三做的东西和李…

代码随想录算法训练营Day45 ||leetCode 70. 爬楼梯 (进阶)|| 322. 零钱兑换 || 279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 本质上和leetcode377一样 #include <iostream> #include <vector> using namespace std; int main() {int n, m;while (cin >> n >> m) {vector<int> dp(n 1, 0);dp[0] 1;for (int i 1; i < n; i…

机器学习笔记 - 用于3D物体检测的KITTI数据集的使用及说明

一、什么是 KITTI 数据集&#xff1f; KITTI 是由卡尔斯鲁厄理工学院和芝加哥丰田理工学院开发的自动驾驶数据集&#xff08;目前分2012和2015版本&#xff09;。它是计算机视觉研究中使用的图像和 LIDAR 数据的集合&#xff0c;例如立体视觉、光流、视觉里程计、3D 对象检测和…

Android基础开发-通讯录的添加和查询

案例&#xff1a;往手机通讯录添加信息&#xff0c;输入姓名和手机号。 保存的手机的表&#xff1a;一共有两个&#xff0c;一个是主表&#xff0c;提供一个联系人id&#xff0c;另外是辅表&#xff0c;提供id对应的手机号和姓名。 普通操作&#xff1a;一个表一个表的添加 …

Docker拉取镜像存储不足

在使用Docker时&#xff0c;我们经常遇到一个问题&#xff0c;就是拉取镜像时提示存储空间不足。这是因为Docker在拉取镜像时需要将镜像文件下载到本地存储中&#xff0c;而有时本地存储空间不足以容纳完整的镜像文件。 本文将介绍一些解决这个问题的方法&#xff0c;并提供相…

[LeetCode][LCR169]招式拆解 II——巧妙利用字母的固定顺序实现查找复杂度为O(1)的哈希表

题目 LCR 169. 招式拆解 II 某套连招动作记作仅由小写字母组成的序列 arr&#xff0c;其中 arr[i] 第 i 个招式的名字。请返回第一个只出现一次的招式名称&#xff0c;如不存在请返回空格。 示例 1&#xff1a; 输入&#xff1a;arr "abbccdeff" 输出&#xff1a;a…

php 对接Bigo海外广告平台收益接口Reporting API

今天对接的是Bigo广告reporting api接口&#xff0c;拉取广告收益回来自己做统计。记录分享给大家 首先是文档地址,进入到BIGO后台就能看到文档地址以及参数&#xff1a; 文档地址&#xff1a;https://www.bigossp.com/guide/sdk/reportingApi/doc?type1 接入这些第三方广告…

模拟电子技术实验(三)

单选题 1.本实验的实验目的中&#xff0c;输出电阻测量是第几个目的&#xff1f; A. 1个。 B. 2个。 C. 3个。 D. 4个。 答案&#xff1a;C 评语&#xff1a;10分 单选题 2. 有一定输出功率的放大器的 “功率”下面理解正确的是&#xff1f; A. 能…

程序员的三重境界:码农,高级码农、程序员!

见字如面&#xff0c;我是军哥&#xff01; 掐指一算&#xff0c;我在 IT 行业摸爬滚打 19 年了&#xff0c;见过的程序员至少大好几千&#xff0c;然后真正能称上程序员不到 10% &#xff0c;绝大部分都是高级码农而已。 今天和你聊聊程序员的三个境界的差异&#xff0c;文章不…

CSS中position的属性有哪些,区别是什么

position有以下属性值&#xff1a; 属性值概述absolute生成绝对定位的元素&#xff0c;相对于static定位以外的一个父元素进行定位。元素的位置通过left、top、right、bottom属性进行规定。relative生成相对定位的元素&#xff0c;相对于其原来的位置进行定位。元素的位置通过…

江科大stm32学习笔记——【6-1】TIM定时中断

一.定时器 1.类型 STM32F103C8T6定时器资源&#xff1a;TIM1,TIM2,TIM3,TIM4 我们这次用通用定时器 2.基本定时器 预分频器对来自RCC_TIMxCLK的72MHz进行预分频&#xff0c;比如写0就是不分频或1分频&#xff0c;输出频率输入频率72MHz。写1就是2分频&#xff0c;输出频率输…