# 开源监控-hertzbeat

> 开源版本，监控时间，最低30S每次， 对于要求性比较高的，可以忽略这个监控

### 全局变量 .env <a href="#e5-85-a8-e5-b1-80-e5-8f-98-e9-87-8f-.env" id="e5-85-a8-e5-b1-80-e5-8f-98-e9-87-8f-.env"></a>

```
root@monitor-1:/data/monitor/hertzbeat# more .env 
DOCKER_BRIDGE_SUBNET=172.28.0.0/16
DOCKER_BRIDGE_GATEWAY=172.28.0.1

INFLUXDB_NETWORK_ADDRESS=172.28.0.2
MYSQL_NETWORK_ADDRESS=172.28.0.3
HERTZBEAT_NETWORK_ADDRESS=172.28.0.4
HERTZBEAT_COLLECTOR_NETWORK_ADDRESS=172.28.0.5
```

### application.yaml 使用部分 <a href="#application.yaml-e4-bd-bf-e7-94-a8-e9-83-a8-e5-88-86" id="application.yaml-e4-bd-bf-e7-94-a8-e9-83-a8-e5-88-86"></a>

> 这个配置文件，可以单独启动一个容器,从容器中复制出来，修改下 mysql (存储)和 influxb (时序)

```
---
spring:
  config:
    activate:
      on-profile: prod

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://hertzbeat-mysql:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false
    hikari:
      max-lifetime: 120000

warehouse:
  store:
    influxdb:
      enabled: true
      server-url: http://hertzbeat-influxdb:8086
      username: root
      password: root
      expire-time: '30d'
      replication: 1
```

### docker-compose.yaml <a href="#docker-compose.yaml" id="docker-compose.yaml"></a>

```yaml
root@monitor-1:/data/monitor/hertzbeat# cat docker-compose.yml 
version: '3.3'

networks:
  server:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: '${DOCKER_BRIDGE_SUBNET:-172.28.0.0/16}'
          #gateway: '${DOCKER_BRIDGE_GATEWAY:-172.28.0.1}'

services:
  hertzbeat-influxdb:
    image: 'influxdb:1.8'
    container_name: hertzbeat-influxdb
    restart: always
    #environment:
    #  - INFLUXDB_DB=mydb
    #  - INFLUXDB_ADMIN_USER=admin
    #  - INFLUXDB_ADMIN_PASSWORD=admin_password
    #  - INFLUXDB_USER=root
    #  - INFLUXDB_USER_PASSWORD=root
    volumes:
      - '${PWD}/data/influxdb-data:/var/lib/influxdb'
    expose:
       - 8086
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8086/ping"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      server:
        ipv4_address: ${INFLUXDB_NETWORK_ADDRESS:-172.28.0.2}
          
  hertzbeat-mysql:
    image: 'mysql:5.7'
    container_name: hertzbeat-mysql
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=hertzbeat
      - MYSQL_USER=hertzbeat
      - MYSQL_PASSWORD=123456
      - MYSQL_ROOT_HOST=%
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
      - '${PWD}/data/mysql-data:/var/lib/mysql'
    expose:
      - 3306
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p123456",]
      interval: 30s
      timeout: 10s
    networks:
      server:
        ipv4_address: ${MYSQL_NETWORK_ADDRESS:-172.28.0.3}

  hertzbeat:
    image: tancloud/hertzbeat
    container_name: hertzbeat
    restart: always
    volumes:
      #- '${PWD}/sureness.yml:/opt/hertzbeat/config/sureness.yml'
      - '${PWD}/application.yml:/opt/hertzbeat/config/application.yml'
      - '${PWD}/data/hertzbeat-logs:/opt/hertzbeat/logs'
      - '${PWD}/data/hertzbeat-data:/opt/hertzbeat/data'
    environment:
      - TZ=Asia/Shanghai
      - LANG=zh_CN.UTF-8
    ports:
      - '1158:1158'
      - '1157:1157'
    depends_on:
      - hertzbeat-mysql
      - hertzbeat-influxdb
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"
    networks:
      server:
        ipv4_address: ${HERTZBEAT_NETWORK_ADDRESS:-172.28.0.4}

  hertzbeat-collector:
    image: tancloud/hertzbeat-collector
    container_name: hertzbeat-collector
    restart: always
    environment:
      - MANAGER_PORT=1158
      - MANAGER_HOST=hertzbeat
      - MODE=public
      - IDENTITY=localhost-collector
    depends_on:
      - hertzbeat
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"
    networks:
      server:
        ipv4_address: ${HERTZBEAT_COLLECTOR_NETWORK_ADDRESS:-172.28.0.5}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://close.gitbook.io/yun-wei-bi-ji/centos/docker/docker-compose/kai-yuan-jian-kong-hertzbeat.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
