Jorgen's blog Jorgen's blog
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
收藏
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

jorgen

Love it, make mistakes, learn, keep grinding.
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
收藏
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 平台架构
  • 技术选型
  • 开发脚手架
  • UI规范
  • 开发规范
  • 代码分支管理模型
  • 需求分析与管理
  • 权限设计
  • 树形组织设计
  • 协议设计
  • 指令交互
  • OTA
  • 规则引擎
  • 数据流转
  • 报告生成与导出
  • 监控设备接入
  • 时序数据库
  • 平台监控
    • 搭建
    • 镜像版本
      • Mongo
      • Elasticsearch
      • Graylog
      • 生成密码指令
    • 项目使用
      • 添加日志切面
      • logback日志文件夹添加记录
      • graylog 配置
    • 查询高亮
    • 完整docker-compose.yml文件
    • 应用
  • 云⛈
  • 接口设计
  • 安全传输
  • CI&CD
  • 缓存
  • 消息处理引擎
  • 性能调优🔥
  • 线上事故🔥
  • 混合式开发记录
  • 推送服务
  • 机器人通信协议
  • 数据分析
  • flink模板工程
  • 实时调度
  • 机器人模块化设计
  • STM32入门
  • 开发日志
Jorgen
2023-02-05
目录

平台监控

# 搭建

前提:服务器上已经搭建好docker docker-compose环境。graylog以及配套的组件搭建与启动使用docker-compose来完成。

# 镜像版本

mongo:4.2
docker.elastic.co/elasticsearch/elasticsearch-oss:7.9.3
graylog/graylog:4.3.1
1
2
3

# Mongo

compose.yml说明

mongo:
  container_name: mongo # 指定容器名称
  image: mongo:4.2
  networks:  # 自定义一个graylog组件的网络
    - graylog
  restart: always # 开启自启动
  volumes:  # 指定数据挂载到宿主机的指定目录
    - /home/docker_data/mongo:/data/db
1
2
3
4
5
6
7
8

# Elasticsearch

compose.yml说明

elasticsearch:
  container_name: es
  image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.9.3
  environment: # 指定启动参数
    - http.host=0.0.0.0 
    - transport.host=localhost
    - network.host=0.0.0.0
    - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx512m"
    - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
  ulimits:
    memlock:
      soft: -1
      hard: -1
  deploy:
    resources:
      limits:
        memory: 1g
  networks:
    - graylog
  restart: always
  ports:  # 映射容器的端口与宿主机的端口,并默认在防火墙中开启端口
    - 9200:9200
    - 9300:9300
  volumes:
    - /home/docker_data/es:/var/lib/elasticsearch/data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

注意 如果想搭建es的可视化工具,但又不想使用kibana,推荐使用es-head插件。此插件仅做数据呈现,真正关于搜索相关,还是推荐使用kibana。

# Graylog

graylog:
  container_name: graylog
  image: graylog/graylog:4.3.1
  environment:
    - GRAYLOG_PASSWORD_SECRET=somepasswordpepper   # 密码加密的盐
    - GRAYLOG_ROOT_PASSWORD_SHA2=39ecc40ee2c3928abbaeb2fe832646b2c548d8ca86ef40ecf89f0afb6a7dc059 # 密码
    - GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.1.196:9009/ # 这里注意要改ip
    - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  # 设置时区
  entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.sh
  networks:
    - graylog
  restart: always
  depends_on:
    - mongo
    - elasticsearch
  ports:
    - 9009:9000
    - 1514:1514
    - 1514:1514/udp
    - 12201:12201
    - 12201:12201/udp
  volumes:
    - /home/docker_data/graylog:/usr/share/graylog/data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 生成密码指令

echo -n bEi*Dou9#8326 | shasum -a 256
1

# 项目使用

# 添加日志切面

springboot项目默认使用graylog方式进行日志统一记录

# springboot项目的pom添加依赖
<dependency>
    <groupId>de.siegmar</groupId>
    <artifactId>logback-gelf</artifactId>
    <version>3.0.0</version>
</dependency>
1
2
3
4
5
6

# logback日志文件夹添加记录

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
    <!-- Graylog服务的地址 -->
    <graylogHost>ip</graylogHost>
    <!-- UDP Input端口 -->
    <graylogPort>port</graylogPort>
    <!-- 最大GELF数据块大小(单位:字节),508为建议最小值,最大值为65467 -->
    <maxChunkSize>508</maxChunkSize>
    <!-- 是否使用压缩 -->
    <useCompression>true</useCompression>
    <encoder class="de.siegmar.logbackgelf.GelfEncoder">
        <!-- 是否发送原生的日志信息 -->
        <includeRawMessage>false</includeRawMessage>
        <includeMarker>true</includeMarker>
        <includeMdcData>true</includeMdcData>
        <includeCallerData>false</includeCallerData>
        <includeRootCauseData>false</includeRootCauseData>
        <!-- 是否发送日志级别的名称,否则默认以数字代表日志级别 -->
        <includeLevelName>true</includeLevelName>
        <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%m%nopex</pattern>
        </shortPatternLayout>
        <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d - [%thread] %-5level %logger{35} - %msg%n</pattern>
        </fullPatternLayout>

        <!-- 配置应用名称(服务名称),通过staticField标签可以自定义一些固定的日志字段 -->
        <staticField>app_name:xxxx</staticField>
    </encoder>
</appender>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# graylog 配置

登录graylog管理页面后,增加入口配置

  1. 配置默认日志入口 config

  2. 填写title 与 端口(与logback日志配置文件端口相同) config

  3. 配置成功后,如下图所示,则代表配置完成。 config

# 查询高亮

容器启动之后,在容器的 /usr/share/graylog/data/config 下的配置文件。graylog容器本身并不具有常用的Linux指令直接编辑。可将配置文件复制到宿主机上进行修改。

# docker复制容器文件指令
docker cp 容器名称/容器id:源文件夹 目标文件夹
# 将容器中的文件复制到宿主机上
docker cp graylog:/usr/share/graylog/data/config /usr/local/
# 将宿主机上的文件复制回容器中
docker cp /usr/local/config graylog:/usr/share/graylog/data/config
1
2
3
4
5
6

# 完整docker-compose.yml文件

version: '3'
services:
  mongo:
    container_name: mongo
    image: mongo:4.2
    networks:
      - graylog
    restart: always
    volumes:
      - /home/docker_data/mongo:/data/db
  elasticsearch:
    container_name: es
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.9.3
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx512m"
      - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
    ulimits:
      memlock:
        soft: -1
        hard: -1
    deploy:
      resources:
        limits:
          memory: 1g
    networks:
      - graylog
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - /home/docker_data/es:/var/lib/elasticsearch/data
  graylog:
    container_name: graylog
    image: graylog/graylog:4.3.1
    environment:
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper   # 密码加密的盐
      - GRAYLOG_ROOT_PASSWORD_SHA2=39ecc40ee2c3928abbaeb2fe832646b2c548d8ca86ef40ecf89f0afb6a7dc059 # 密码
      - GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.1.196:9009/ # 这里注意要改ip
      - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  # 设置时区
    entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.sh
    networks:
      - graylog
    restart: always
    depends_on:
      - mongo
      - elasticsearch
    ports:
      - 9009:9000
      - 1514:1514
      - 1514:1514/udp
      - 12201:12201
      - 12201:12201/udp
    volumes:
      - /home/docker_data/graylog:/usr/share/graylog/data
networks:
  graylog:
    driver: bridge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

# 应用

  1. 点击Search进入搜索页面 config
  2. 根据时间搜索日志
  • 根据相对时间搜索日志 config
  • 根据绝对时间搜索日志 config
  1. 根据全量关键字搜索 搜索语法为:full_message:关键字
  • 根据全量设备号搜索 config
  • 根据页面名称搜索 config
  • 根据用户名搜索 config
  1. 根据关键字模糊搜索
  • 搜索包含30306的内容,如果有字母,把字母全部转为小写 搜索语法为:full_message:/@30306@/ config
  • 搜索以30306结尾的内容,如果有字母,把字母全部转为小写 搜索语法为:full_message:/@+30306/ config
上次更新: 2023/02/19, 11:42:06
时序数据库
云⛈

← 时序数据库 云⛈→

最近更新
01
STM32入门
03-09
02
ADB调试
03-09
03
微信小程序学习记录
02-09
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jorgen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式