Web服务搭建笔记

只要不科研,干什么事情都有意思(

Confluence

  • 使用下述Dockerfile制作定制的Confluence镜像

    1
    2
    3
    4
    5
    6
    7
    FROM atlassian/confluence-server:7.10.0

    USER root

    COPY "atlassian-agent.jar" /opt/atlassian/confluence/

    RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/confluence/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/confluence/bin/setenv.sh
  • 使用docker-compose up -d以及下述配置文件启动服务

    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
    version: '1.0'
    services:
    confluence:
    image: confluence:latest
    container_name: confluence
    volumes:
    - /opt/confluence-home:/var/atlassian/application-data/confluence
    networks:
    - confluence-net
    ports:
    - "8090:8090"
    - "8091:8091"

    db:
    image: postgres:13.1
    container_name: postgres
    environment:
    - POSTGRES_PASSWORD=password
    volumes:
    - /opt/confluence-db:/var/lib/postgresql/data
    networks:
    - confluence-net

    networks:
    confluence-net:
  • 配置postgres对应容器内的数据库

  • 使用浏览器完成剩余部分的配置

Prometheus + Grafana

在GPU节点:

  • 使用官网下载的deb包完成datacenter-gpu-manager的安装

  • 从官方github仓库下载预编译的node_exporter

  • 从NVIDIA/gpu-monitoring-tools仓库clone源码并按照readme编译安装

  • node_exporter以及dcgm-exporter拷贝到一固定位置,此次实践过程放在/usr/local/bin/

  • 配置服务,添加如下内容到/lib/systemd/system/

    • dcgm-exporter.service

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      [Unit]
      Description=dcgm-exporter service

      [Service]
      User=root
      ExecStart=/usr/local/bin/dcgm-exporter

      TimeoutStopSec=10
      Restart=on-failure
      RestartSec=5

      [Install]
      WantedBy=multi-user.target
    • node-exporter.service

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      [Unit]
      Description=node-exporter service

      [Service]
      User=root
      ExecStart=/usr/local/bin/node_exporter

      TimeoutStopSec=10
      Restart=on-failure
      RestartSec=5

      [Install]
      WantedBy=multi-user.target
    • cloud-prometheus.service(由于实验室的云服务器只有22端口,因此在云服务器上安装prometheus,并使用ssh进行端口映射)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      [Unit]
      Description=port fowarding for cloud prometheus
      After=network.target

      [Service]
      ExecStart=/usr/bin/autossh -v -N -L 9091:localhost:9090 domin.of.server.com
      User=root
      TimeoutStopSec=30
      Restart=on-failure
      RestartSec=300

      [Install]
      WantedBy=multi-user.target
  • 启动服务

    1
    2
    3
    4
    5
    6
    7
    systemctl daemon-reload
    systemctl enable dcgm-exporter.service
    systemctl start dcgm-exporter.service
    systemctl enable node-exporter.service
    systemctl start node-exporter.service
    systemctl enable cloud-prometheus.service
    systemctl start cloud-prometheus.service

在服务端:

  • 使用apt完成Prometheus的安装

  • 从官网下载deb包完成Grafana的安装

  • 编辑/etc/prometheus/prometheus.yml,添加被监控的服务器相关信息。其中,node_exporter的端口号为9100;dcgm-exporter的端口号为9400。

  • Grafana的Web服务在3000端口,登陆并进行配置

  • 前往 https://grafana.com/grafana/dashboards 寻找合适的daskboard。

  • 使用nginx进行反向代理