feat:更新Docker博客

This commit is contained in:
2025-12-16 10:41:54 +08:00
parent 2bb60d00e8
commit b4db9aae81
4 changed files with 270 additions and 36 deletions

View File

@@ -1,11 +1,19 @@
<template> <template>
<div v-if="!page.filePath.includes('index.md')" class="blog-stats"> <div v-if="!page.filePath.includes('index.md')" class="blog-stats">
<p class="content"> <div v-if="page.frontmatter.isGreat" class="item">
<svg t="1765851905856" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11930" width="16" height="16"><path d="M0 0h1024v1024H0V0z" fill="#202425" opacity=".01" p-id="11931"></path><path d="M136.533333 307.2a34.133333 34.133333 0 0 1 34.133334-34.133333h682.666666a34.133333 34.133333 0 0 1 34.133334 34.133333v437.3504a68.266667 68.266667 0 0 1-35.566934 59.938133l-274.5344 149.7088a136.533333 136.533333 0 0 1-130.730666 0L172.100267 804.522667A68.266667 68.266667 0 0 1 136.533333 744.5504V307.2z" fill="#bd34fe" p-id="11932"></path><path d="M68.266667 136.533333a68.266667 68.266667 0 0 1 68.266666-68.266666h750.933334a68.266667 68.266667 0 0 1 68.266666 68.266666v117.4528a34.133333 34.133333 0 0 1-16.247466 29.0816l-373.828267 230.058667a102.4 102.4 0 0 1-107.3152 0L84.514133 283.0336A34.133333 34.133333 0 0 1 68.266667 253.952V136.533333z" fill="#bd34fe" p-id="11933"></path><path d="M496.605867 339.490133a17.066667 17.066667 0 0 1 30.788266 0L576.853333 443.050667a17.066667 17.066667 0 0 0 13.175467 9.557333l113.800533 15.018667a17.066667 17.066667 0 0 1 9.5232 29.2864l-83.2512 79.018666a17.066667 17.066667 0 0 0-5.051733 15.496534l20.923733 112.8448a17.066667 17.066667 0 0 1-24.917333 18.090666l-100.864-54.715733a17.066667 17.066667 0 0 0-16.315733 0l-100.864 54.715733a17.066667 17.066667 0 0 1-24.917334-18.090666l20.8896-112.8448a17.066667 17.066667 0 0 0-5.0176-15.496534l-83.217066-79.018666a17.066667 17.066667 0 0 1 9.489066-29.2864l113.800534-15.018667a17.066667 17.066667 0 0 0 13.175466-9.557333l49.425067-103.560534z" fill="#FFFFFF" p-id="11934"></path></svg>
精品
</div>
<div class="item">
<svg t="1724571760788" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6125" width="16" height="16"><path d="M204.8 0h477.866667l273.066666 273.066667v614.4c0 75.093333-61.44 136.533333-136.533333 136.533333H204.8c-75.093333 0-136.533333-61.44-136.533333-136.533333V136.533333C68.266667 61.44 129.706667 0 204.8 0z m307.2 607.573333l68.266667 191.146667c13.653333 27.306667 54.613333 27.306667 61.44 0l102.4-273.066667c6.826667-20.48 0-34.133333-20.48-40.96s-34.133333 0-40.96 13.653334l-68.266667 191.146666-68.266667-191.146666c-13.653333-27.306667-54.613333-27.306667-68.266666 0l-68.266667 191.146666-68.266667-191.146666c-6.826667-13.653333-27.306667-27.306667-47.786666-20.48s-27.306667 27.306667-20.48 47.786666l102.4 273.066667c13.653333 27.306667 54.613333 27.306667 61.44 0l75.093333-191.146667z" fill="#1890FF" p-id="6126"></path><path d="M682.666667 0l273.066666 273.066667h-204.8c-40.96 0-68.266667-27.306667-68.266666-68.266667V0z" fill="#52C41A" p-id="6127"></path></svg> <svg t="1724571760788" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6125" width="16" height="16"><path d="M204.8 0h477.866667l273.066666 273.066667v614.4c0 75.093333-61.44 136.533333-136.533333 136.533333H204.8c-75.093333 0-136.533333-61.44-136.533333-136.533333V136.533333C68.266667 61.44 129.706667 0 204.8 0z m307.2 607.573333l68.266667 191.146667c13.653333 27.306667 54.613333 27.306667 61.44 0l102.4-273.066667c6.826667-20.48 0-34.133333-20.48-40.96s-34.133333 0-40.96 13.653334l-68.266667 191.146666-68.266667-191.146666c-13.653333-27.306667-54.613333-27.306667-68.266666 0l-68.266667 191.146666-68.266667-191.146666c-6.826667-13.653333-27.306667-27.306667-47.786666-20.48s-27.306667 27.306667-20.48 47.786666l102.4 273.066667c13.653333 27.306667 54.613333 27.306667 61.44 0l75.093333-191.146667z" fill="#1890FF" p-id="6126"></path><path d="M682.666667 0l273.066666 273.066667h-204.8c-40.96 0-68.266667-27.306667-68.266666-68.266667V0z" fill="#52C41A" p-id="6127"></path></svg>
字数: {{ wordCount }} 字数: {{ wordCount }}
</div>
<div>
<svg t="1724572797268" class="icon" viewBox="0 0 1060 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15031" width="16" height="16"><path d="M556.726857 0.256A493.933714 493.933714 0 0 0 121.929143 258.998857L0 135.021714v350.390857h344.649143L196.205714 334.482286a406.820571 406.820571 0 1 1-15.908571 312.649143H68.937143A505.819429 505.819429 0 1 0 556.726857 0.256z m-79.542857 269.531429v274.907428l249.197714 150.966857 42.422857-70.070857-212.114285-129.389714V269.787429h-79.542857z" fill="#FA8C16" p-id="15032"></path></svg> <svg t="1724572797268" class="icon" viewBox="0 0 1060 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15031" width="16" height="16"><path d="M556.726857 0.256A493.933714 493.933714 0 0 0 121.929143 258.998857L0 135.021714v350.390857h344.649143L196.205714 334.482286a406.820571 406.820571 0 1 1-15.908571 312.649143H68.937143A505.819429 505.819429 0 1 0 556.726857 0.256z m-79.542857 269.531429v274.907428l249.197714 150.966857 42.422857-70.070857-212.114285-129.389714V269.787429h-79.542857z" fill="#FA8C16" p-id="15032"></path></svg>
时长: {{ readTime }} 分钟 时长: {{ readTime }} 分钟
</p> </div>
</div> </div>
</template> </template>
@@ -61,12 +69,10 @@ onMounted(() => {
<style scoped> <style scoped>
.blog-stats { .blog-stats {
color: var(--vp-c-text-2); margin-bottom: 10px;
font-size: 15px;
}
.content { display: flex;
margin-bottom: 5px; gap: 5px;
} }
.icon { .icon {

View File

@@ -1,3 +1,7 @@
---
isGreat: true
---
# 一、Docker简介 # 一、Docker简介
## 1.1 基础概念 ## 1.1 基础概念
### 1.1.1 Docker概念 ### 1.1.1 Docker概念
@@ -31,10 +35,6 @@
&emsp;&emsp;最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry。 &emsp;&emsp;最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry。
# 二、Docker安装 # 二、Docker安装
## 2.1 环境
&emsp;&emsp;Ubuntu20.04
## 2.2 安装
1. 安装依赖 1. 安装依赖
```bash ```bash
@@ -71,6 +71,11 @@ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/li
sudo apt-get install docker-ce sudo apt-get install docker-ce
``` ```
::: tip
也可以通过sudo apt install docker.io安装Ubuntu指定版本的docker
docker-ce是官方仓库docker.io是Ubuntu仓库
:::
5. 配置Docker镜像服务 5. 配置Docker镜像服务
&emsp;&emsp;1⃣登录阿里云账号在**容器镜像服务->镜像工具->镜像加速器**中找到**加速器地址**。 &emsp;&emsp;1⃣登录阿里云账号在**容器镜像服务->镜像工具->镜像加速器**中找到**加速器地址**。
@@ -82,6 +87,10 @@ sudo apt-get install docker-ce
} }
``` ```
::: tip
或者使用1ms.docker作为Docker镜像源 "https://docker.1ms.run"
:::
&emsp;&emsp;3⃣执行命令 &emsp;&emsp;3⃣执行命令
```bash ```bash
@@ -135,10 +144,229 @@ sudo systemctl restart docker
| | 查看容器详情 | `docker inspect mynginx` | | | 查看容器详情 | `docker inspect mynginx` |
# 五、Docker Compose # 五、Docker Compose
## 5.1 安装
1. 从Github官网下载[Docker Compose](https://github.com/docker/compose)相应版本
2. 将文件保存至/usr/local/bin/docker-compose可执行目录
3. 赋予执行权限:
```bash
sudo chmod +x /usr/local/bin/docker-compose
```
# 六、Docker实战 4. 验证安装:
&emsp;&emsp;[Docker-完整项目的部署(保姆级教学)_docker部署-CSDN博客](https://blog.csdn.net/qq_71654538/article/details/136520075) ```bash
docker compose version
```
# 七、参考资料 ::: tip
也可以通过sudo apt-get install docker-compose-plugin安装Ubuntu指定版本
:::
## 5.2 YAML文件
```yaml
version: '3.8'
services:
# Spring Boot 后端服务
backend:
container_name: springboot-backend
image: springboot-app:latest
restart: unless-stopped
# 添加 host.docker.internal 映射
extra_hosts:
- "host.docker.internal:host-gateway"
# 环境变量配置
environment:
- SERVER_PORT=8080
# 端口映射(前面为宿主机端口,后面为容器端口)
ports:
- "8080:8080"
# 数据卷挂载(前面为宿主机目录,后面为容器目录)
volumes:
- ./backend/logs:/app/logs
# 健康检查
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
# 网络配置
networks:
- app-network
# 资源限制
deploy:
resources:
limits:
memory: 1G
cpus: '1.0'
reservations:
memory: 512M
cpus: '0.5'
# Vue3 Vite 前端服务
frontend:
container_name: vue-frontend
image: vue-app:latest
restart: unless-stopped
# 添加 host.docker.internal 映射
extra_hosts:
- "host.docker.internal:host-gateway"
# 端口映射
ports:
- "80:80"
# 依赖后端
depends_on:
backend:
condition: service_healthy
# 网络
networks:
- app-network
# 资源限制
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.25'
# 网络定义
networks:
app-network:
driver: bridge
```
## 5.3 命令
```bash
# 1. 启动服务
docker compose up -d
# 2. 查看服务状态
docker compose ps
# 3. 查看日志
docker compose logs -f
# 4. 进入容器
docker compose exec backend bash
# 5. 停止服务
docker compose down
# 6. 重启服务
docker compose restart
# 7. 查看配置
docker compose config
# 8. 构建镜像
docker compose build
# 9. 执行命令
docker compose exec backend ls -la
# 10. 清理资源
docker compose down -v
docker system prune -f
```
# 六、Dockerfile
&emsp;&emsp;Dockerfile 是用来构建 Docker 镜像的文本文件,包含了一系列构建指令,可以自动化地创建包含应用及其运行环境的镜像。
&emsp;&emsp;基本结构:
```
# 基础镜像
FROM 镜像名:标签
# 维护者信息
LABEL maintainer="name@email.com"
# 设置工作目录
WORKDIR /app
# 复制文件
COPY 源路径 目标路径
# 执行命令
RUN 命令
# 暴露端口
EXPOSE 端口
# 容器启动命令
CMD ["可执行文件", "参数1", "参数2"]
```
&emsp;&emsp;典型示例
::: code-group
```dockerfile [nginx]
FROM nginx:1.27.0
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
```
```dockerfile [SpringBoot]
FROM openjdk:11-jdk
ARG JAR_FILE=target/*.jar
COPY $JAR_FILE app.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
ENTRYPOINT java $JAVA_TOOL_OPTIONS -jar /app.jar $0 $@
```
```dockerfile [FastApi]
FROM python:3.12-slim
WORKDIR /app
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
COPY ./packages /app/packages
COPY requirements.txt /app/
RUN pip install --no-cache-dir --no-index --find-links=/app/packages -r requirements.txt
COPY . /app/
EXPOSE 8082
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8082"]
```
```dockerfile [dotnet]
FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-alpine
WORKDIR /app
COPY publish/ .
RUN chmod +x EMMessageHubServer
EXPOSE 5000
EXPOSE 14040
ENTRYPOINT ["./EMMessageHubServer"]
```
:::
# 七、Docker开发流程
1. 编写业务代码
2. 编译打包项目工程
3. 编写Dockerfile文件
4. 根据Dockerfile文件和项目打包代码创建Docker镜像标注镜像名称和版本
5. 编写Docker Compose文件
6. 执行Docker Compose启动命令
7. 查看Docker Container状态
# 八、参考资料
1. [Docker — 从入门到实践](https://github.com/yeasy/docker_practice?tab=readme-ov-file) 1. [Docker — 从入门到实践](https://github.com/yeasy/docker_practice?tab=readme-ov-file)
2. [Docker完整项目的部署](https://blog.csdn.net/qq_71654538/article/details/136520075)

View File

@@ -1,6 +1,7 @@
## 一、基础概念 # 一、基础概念
&emsp;&emsp;Elasticsearch简称 ES是一款开源的分布式全文搜索引擎基于 Lucene 核心构建,提供了 RESTful API 接口、高可用、高扩展的分布式数据存储与检索能力,广泛应用于日志分析、全文检索、监控告警、数据可视化等场景。
## 二、Docker部署 # 二、Docker部署
```yml ```yml
services: services:
elasticsearch: elasticsearch:
@@ -54,28 +55,27 @@ volumes:
&emsp;&emsp;ELASTIC_PASSWORD和KIBANA_PASSWORD可以通过.env配置文件设置。 &emsp;&emsp;ELASTIC_PASSWORD和KIBANA_PASSWORD可以通过.env配置文件设置。
&emsp;&emsp;启动时elasticsearch可能会提示elasticsearch-data文件夹权限问题目前解决方案为将其权限设置为777。 &emsp;&emsp;启动时elasticsearch可能会提示elasticsearch-data文件夹权限问题目前解决方案为将其权限设置为777。
## 三、简单使用 # 三、简单使用
### 3.1 安装插件 ## 3.1 安装插件
&emsp;&emsp;启动成功后需要安装elasticsearch的分词插件analysis-ik。 &emsp;&emsp;启动成功后需要安装elasticsearch的分词插件analysis-ik。
&emsp;&emsp;进入Docker容器输入指令 &emsp;&emsp;进入Docker容器输入指令
```cmd ```bash
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.12.0 bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.12.0
``` ```
&emsp;&emsp;注意版本要匹配。https://github.com/infinilabs/analysis-ik/releases/tag/Latest &emsp;&emsp;注意版本要匹配。https://github.com/infinilabs/analysis-ik/releases/tag/Latest
&emsp;&emsp;安装完成后,重启容器。 &emsp;&emsp;安装完成后,重启容器。
## 3.2 更改密码
### 3.2 更改密码
&emsp;&emsp;启动成功后需要更改elasticsearch的账号密码不知道为啥docker-compose文件设置的密码不行可能是容器初始化后又重置了 &emsp;&emsp;启动成功后需要更改elasticsearch的账号密码不知道为啥docker-compose文件设置的密码不行可能是容器初始化后又重置了
&emsp;&emsp;进入Docker容器输入指令 &emsp;&emsp;进入Docker容器输入指令
```cmd ```bash
bin/elasticsearch-setup-passwords interactive bin/elasticsearch-setup-passwords interactive
``` ```
&emsp;&emsp;根据提示输入相应的账号密码。 &emsp;&emsp;根据提示输入相应的账号密码。
### 3.3 新建索引 ## 3.3 新建索引
1. 打开Elastic控制台选择Management->Dev Tools输入语句新建索引。 1. 打开Elastic控制台选择Management->Dev Tools输入语句新建索引。
2. 选择Management->Stack Management->Data Views选择Create data view新建数据视图。 2. 选择Management->Stack Management->Data Views选择Create data view新建数据视图。
3. 输入name、index pattern刚才新建的索引和Timestamp信息保存数据视图。 3. 输入name、index pattern刚才新建的索引和Timestamp信息保存数据视图。

View File

@@ -1,8 +1,8 @@
## 一、基础概念 # 一、基础概念
### 1.1 Fluent Bit ## 1.1 Fluent Bit
&emsp;&emsp;[Fluent Bit](https://fluentbit.io/) 是一个开源的、轻量级、高性能的日志处理器和转发器。Fluent Bit 的核心任务是:​​**从各种来源收集日志、指标和追踪数据,进行处理和过滤,然后将其发送到一个或多个目的地。​** &emsp;&emsp;[Fluent Bit](https://fluentbit.io/) 是一个开源的、轻量级、高性能的日志处理器和转发器。Fluent Bit 的核心任务是:​​**从各种来源收集日志、指标和追踪数据,进行处理和过滤,然后将其发送到一个或多个目的地。​**
#### 1.1.1 特点 ### 1.1.1 特点
1. 极致的轻量级​ 1. 极致的轻量级​
Fluent Bit 是用 C 语言编写的,运行时内存占用极低(通常只有几百 KBCPU 使用率也非常低。这使得它成为在资源受限环境如边缘计算、IoT 设备、容器侧车)中运行的理想选择。 Fluent Bit 是用 C 语言编写的,运行时内存占用极低(通常只有几百 KBCPU 使用率也非常低。这使得它成为在资源受限环境如边缘计算、IoT 设备、容器侧车)中运行的理想选择。
2. 高性能​ 2. 高性能​
@@ -10,7 +10,7 @@ Fluent Bit 是用 C 语言编写的,运行时内存占用极低(通常只有
3. 可插拔架构​ 3. 可插拔架构​
Fluent Bit 的功能通过“插件”来扩展。 Fluent Bit 的功能通过“插件”来扩展。
#### 1.1.2 插件类型 ### 1.1.2 插件类型
1. Input输入 1. Input输入
定义数据来源例如从文件、标准输入、TCP/UDP、系统指标CPU/内存、Docker 容器、Windows 事件日志等收集数据。 定义数据来源例如从文件、标准输入、TCP/UDP、系统指标CPU/内存、Docker 容器、Windows 事件日志等收集数据。
2. Filter过滤器 2. Filter过滤器
@@ -18,7 +18,7 @@ Fluent Bit 的功能通过“插件”来扩展。
3. Output输出 3. Output输出
定义数据目的地,例如 Elasticsearch、Splunk、Kafka、Datadog、Loki、S3、另一个 Fluentd/Fluent Bit 实例等。 定义数据目的地,例如 Elasticsearch、Splunk、Kafka、Datadog、Loki、S3、另一个 Fluentd/Fluent Bit 实例等。
#### 1.1.3 核心架构与数据流 ### 1.1.3 核心架构与数据流
1. Input输入 1. Input输入
一个或多个输入插件持续地从数据源收集数据。每条数据被读入后,会带上时间戳和标签等信息,被包装成一个内部的事件记录。 一个或多个输入插件持续地从数据源收集数据。每条数据被读入后,会带上时间戳和标签等信息,被包装成一个内部的事件记录。
2. Parser解析器 2. Parser解析器
@@ -32,11 +32,11 @@ Fluent Bit 的功能通过“插件”来扩展。
6. Output输出 6. Output输出
最终,输出插件将处理好的数据发送到配置的目的地。 最终,输出插件将处理好的数据发送到配置的目的地。
### 1.2 OpenObserve ## 1.2 OpenObserve
&emsp;&emsp;[OpenObserve](https://openobserve.ai/) 是一个开源的、云原生的可观测性数据平台,旨在处理日志、指标、追踪和性能数据。它的目标是成为 Elasticsearch/Logstash/Kibana (ELK)Grafana LokiDatadog 等流行解决方案的​​更简单、更经济高效、更高性能​​的替代品。 &emsp;&emsp;[OpenObserve](https://openobserve.ai/) 是一个开源的、云原生的可观测性数据平台,旨在处理日志、指标、追踪和性能数据。它的目标是成为 Elasticsearch/Logstash/Kibana (ELK)Grafana LokiDatadog 等流行解决方案的​​更简单、更经济高效、更高性能​​的替代品。
&emsp;&emsp;OpenObserve 是一个“一体化”的平台,你可以将所有的可观测性数据(日志、指标、追踪)都发送到它这里,然后通过统一的界面进行搜索、分析和可视化。 &emsp;&emsp;OpenObserve 是一个“一体化”的平台,你可以将所有的可观测性数据(日志、指标、追踪)都发送到它这里,然后通过统一的界面进行搜索、分析和可视化。
## 二、Docker部署 # 二、Docker部署
```yml ```yml
services: services:
fluent-bit: fluent-bit:
@@ -106,14 +106,14 @@ volumes:
&emsp;&emsp;INPUT为日志输入源监听24422端口。 &emsp;&emsp;INPUT为日志输入源监听24422端口。
&emsp;&emsp;OUTPUT为日志输出源将日志发送到openobserve中这里使用的是容器名称URI表示openobserve接收数据的api路径default/default表示组织名称/流名称可以更改为其他的名称。_json表示以json的格式。 &emsp;&emsp;OUTPUT为日志输出源将日志发送到openobserve中这里使用的是容器名称URI表示openobserve接收数据的api路径default/default表示组织名称/流名称可以更改为其他的名称。_json表示以json的格式。
## 三、简单使用 # 三、简单使用
### 3.1 配置数据流 ## 3.1 配置数据流
&emsp;&emsp;打开控制台,选择数据流->添加数据流输入fluent bit配置文件中的流名称选择数据流类型为Logs。 &emsp;&emsp;打开控制台,选择数据流->添加数据流输入fluent bit配置文件中的流名称选择数据流类型为Logs。
&emsp;&emsp;在新添加的数据流中,点击查看,跳转到日志页面即可看到上次的日志信息。 &emsp;&emsp;在新添加的数据流中,点击查看,跳转到日志页面即可看到上次的日志信息。
&emsp;&emsp;如果没有日志请检查FluentBit容器日志是否有错误正确的应该会有上传成功的提示。 &emsp;&emsp;如果没有日志请检查FluentBit容器日志是否有错误正确的应该会有上传成功的提示。
![暂无图片](https://cxx0822.iepose.cn/rustfs/blog/a2cfe735a9245758daf6ea36a4c82f04.png '配置数据流.png') ![暂无图片](https://cxx0822.iepose.cn/rustfs/blog/a2cfe735a9245758daf6ea36a4c82f04.png '配置数据流.png')
### 3.2 配置邮件告警 ## 3.2 配置邮件告警
&emsp;&emsp;首先需要配置模板和邮箱地址。 &emsp;&emsp;首先需要配置模板和邮箱地址。
&emsp;&emsp;修改docker-compose.yml文件添加邮件服务器 &emsp;&emsp;修改docker-compose.yml文件添加邮件服务器
```yml ```yml
@@ -177,7 +177,7 @@ openobserve:
&emsp;&emsp;通知后静默:触发告警并发送通知后,系统暂时停止重复通知的时间。 &emsp;&emsp;通知后静默:触发告警并发送通知后,系统暂时停止重复通知的时间。
&emsp;&emsp;也可以设置为实时告警,即当告警发生时就立即触发,不会有周期和频率参数设置。 &emsp;&emsp;也可以设置为实时告警,即当告警发生时就立即触发,不会有周期和频率参数设置。
### 3.3 配置WebHook ## 3.3 配置WebHook
&emsp;&emsp;首先配置模板和WebHook地址。 &emsp;&emsp;首先配置模板和WebHook地址。
&emsp;&emsp;打开控制台,选择右上角的设置按钮,选择模板->添加模板->Web Hook填写Body: &emsp;&emsp;打开控制台,选择右上角的设置按钮,选择模板->添加模板->Web Hook填写Body:
```json ```json
@@ -194,7 +194,7 @@ openobserve:
&emsp;&emsp;这里可以使用企业微信的群消息推送功能添加成功后会提供一个WebHook地址。也可以自定义一个WebHook接收地址。 &emsp;&emsp;这里可以使用企业微信的群消息推送功能添加成功后会提供一个WebHook地址。也可以自定义一个WebHook接收地址。
&emsp;&emsp;配置完模板和地址后,选择告警->添加告警选择通知到刚才的WebHook地址即可。 &emsp;&emsp;配置完模板和地址后,选择告警->添加告警选择通知到刚才的WebHook地址即可。
### 3.4 通过API获取日志信息 ## 3.4 通过API获取日志信息
&emsp;&emsp;通过http://ip:5080/swagger/index.html#/ 即可访问OpenobserveAPI接口。 &emsp;&emsp;通过http://ip:5080/swagger/index.html#/ 即可访问OpenobserveAPI接口。
&emsp;&emsp;例如要获取日志,可以使用/api/{origin_id}/_search的接口 &emsp;&emsp;例如要获取日志,可以使用/api/{origin_id}/_search的接口
```cmd ```cmd
@@ -216,7 +216,7 @@ curl -X 'POST' \
&emsp;&emsp;注意这里要加上Basic auth认证并提供username和password。 &emsp;&emsp;注意这里要加上Basic auth认证并提供username和password。
![暂无图片](https://cxx0822.iepose.cn/rustfs/blog/d29ddbd369e32cb7c2770464e8d0a142.png 'API查看日志.png') ![暂无图片](https://cxx0822.iepose.cn/rustfs/blog/d29ddbd369e32cb7c2770464e8d0a142.png 'API查看日志.png')
## 四、自定义日志告警服务 # 四、自定义日志告警服务
![暂无图片](https://cxx0822.iepose.cn/rustfs/blog/74d5efdb80f506395b81988258433d9d.png '日志框架.png') ![暂无图片](https://cxx0822.iepose.cn/rustfs/blog/74d5efdb80f506395b81988258433d9d.png '日志框架.png')
&emsp;&emsp;基本原理为通过提供一个HTTP的API接口当Openobserver触发告警时调用该接口并传入当前的alert_name和timestamp然后根据timestamp和Openobserver提供的API接口去查询最近一段时间内的所有日志信息并存储到SqLite数据库中。同时也可以选择是否同步推送到企业微信和邮箱。 &emsp;&emsp;基本原理为通过提供一个HTTP的API接口当Openobserver触发告警时调用该接口并传入当前的alert_name和timestamp然后根据timestamp和Openobserver提供的API接口去查询最近一段时间内的所有日志信息并存储到SqLite数据库中。同时也可以选择是否同步推送到企业微信和邮箱。
&emsp;&emsp;最后也需要提供一个查询历史日志告警信息的接口,并可视化显示,方便运维和开发查看。 &emsp;&emsp;最后也需要提供一个查询历史日志告警信息的接口,并可视化显示,方便运维和开发查看。