IBM Cloud Docs
设置和配置监控主机

设置和配置监控主机

监控代理从 SAP 系统收集指标,并将其转发到监控实例的仪表板。

为监控代理部署VPC虚拟服务器实例主机

使用 Prometheus 导出器收集指标。 “收集指标”部分详细介绍了指标、标签和监控代理。

Prometheus 导出器基于 GitHub 开源项目 SAP HANA DB导出器

在开始之前,请查看 IBM Cloud® 文档,了解如何使用 IBM Cloud® 用户界面 创建虚拟服务器实例来创建监控主机。

监控主机考虑

请考虑监控主机的以下设置。

  • 监控主机必须部署在被监控 SAP 系统的同一区域和分区。
  • 请确保您选择了与可部署架构(DA)相对应的正确资源组。
  • 您必须部署 ibm-sles-15-5-amd64-sap-applications-<version> 图像—— SUSE Linux Enterprise Server 15 SP5 用于 SAP 应用程序( AMD64 )——可用尺寸最小为2核。
  • 按照 管理 SSH 密钥中的说明添加相应的 SSH 密钥。

验证访问控制列表和安全组

创建监控代理主机后,请前往访问控制列表和安全组,确认设置正确无误。

如果您使用的摄取端点不是监控主机的国家位置,则必须为相应的私有REST API端点调整 IBM Cloud® 网络访问控制列表(ACL)设置。 更多信息,请参阅 使用 Prometheus 远程写入收集指标

将 SAP 变量导出为bash变量

使用以下命令将 SAP 变量导出为Bash变量。

export sap_monitoring_nr=<sap_monitoring_nr>
export sap_hana_ip=<sap_hana_ip>
export sap_ascs_ip=<sap_ascs_ip>
export sap_app_server_ip_01=<sap_app_server_ip_01>
export sap_app_server_port_01=<sap_app_server_port_01>
export sap_ascs_http_port=<sap_ascs_http_port>
export sap_hana_http_port=<sap_hana_http_port>
export sap_hana_sql_systemdb_port=<sap_hana_sql_systemdb_port>
export sap_hana_sql_systemdb_user=<sap_hana_sql_systemdb_user>
export sap_hana_sql_systemdb_password=<sap_hana_sql_systemdb_password>
export ibmcloud_monitoring_instance_url=<ibmcloud_monitoring_instance_url>
export ibmcloud_monitoring_authorization_credentials=<ibmcloud_monitoring_authorization_credentials>

检查数据库端口和 SAP 实例端口的连接性

使用以下命令安装netcat工具。

sudo zypper install netcat

使用netcat检查监控主机上数据库端口和 SAP 实例端口的连接情况。

nc –vz ${sap_hana_ip} ${sap_hana_sql_systemdb_port}

检查 SAP HANA 数据库服务器与 HTTP 端口之间的连接,后者位于 SAP HANA 服务器上的sapstartsrv Web服务中。

nc –vz ${sap_hana_ip} ${sap_hana_http_port}

检查 SAP ASCS服务器与 SAP ASCS服务器上sapstartsrv web服务的 HTTP 端口之间的连接。

nc –vz ${sap_ascs_ip} ${sap_ascs_http_port}

检查第一个 SAP (主)应用服务器的IP地址与第一个应用服务器上sapstartsrv Web服务的 HTTP 端口之间的连接。

nc –vz ${sap_app_server_ip_01} ${sap_app_server_port_01}

检查SLES操作系统存储库的状态

请使用以下命令启用相应的 SLES OS 存储库。

SLE-Module-SAP-Applications15-SP5-Updates
SLE-Module-Packagehub-Subpackages15-SP5-Pool

如果存储库未启用,请使用以下命令启用。

sudo SUSEConnect -p sle-module-sap-applications/15.5/x86_64
sudo SUSEConnect -p PackageHub/15.5/x86_64

如果您无法激活这些存储库,那么您安装的SLES操作系统镜像版本不对。

安装SLES Prometheus 软件包

请按照以下步骤安装 SLES Prometheus 软件包。

  1. 将所有操作系统软件包更新到最新版本。 如有必要,请重启主机。

    sudo zypper update
    
  2. 安装以下 Prometheus 软件包。

    sudo zypper install prometheus-sap_host_exporter
    
    sudo zypper install prometheus-hanadb_exporter
    
    sudo zypper install golang-github-prometheus-prometheus
    
  3. 创建 Prometheus 数据存储目录。

    sudo mkdir /opt/prometheus
    
  4. 将 Prometheus 数据存储目录的用户和组ID更改为 Prometheus 用户。

    sudo chown -R prometheus:prometheus /opt/prometheus
    
    sudo chmod u+rwx /opt/prometheus
    
  5. 将公制文件 metrics.json 复制到配置目录 /etc/hanadb_exporter

    sudo cp /usr/share/doc/packages/prometheus-hanadb_exporter/metrics.json  /etc/hanadb_exporter/metrics.json
    

安装 SAP Python 驱动程序hdbcli

请按照以下步骤安装 SAP Python 驱动程序 hdbcli

  1. 使用 SAP S用户认证访问 SAP 下载中心。

  2. 下载官方 SAP HANA 客户端,找回 SAP HANA Python 驱动程序。 如需了解更多信息,请参阅 安装 SAP HANA 客户端

  3. 按照安装 Python 驱动程序中的说明,安装 SAP Python 驱动程序 hdbcli

  4. 选择以下 SAP HANA 客户套餐,当前 <version><patch>

    SUPPORT PACKAGES & PATCHES - SAP HANA PLATFORM EDITION/ - SAP HANA PLATFORM EDITION 2.0/ - SAP HANA CLIENT 2.0 - LINUX ON X86_64 64BIT - IMDB_CLIENT20_<version>_<patch>-80002082.SAR
    
  5. 请从 SAP 下载中心下载 SAPCAR_*.EXE 软件包。

  6. 将两个文件 SAPCAR_*.EXEIMDB_CLIENTXXX.SAR 复制到监控主机上的任意目录中。

  7. 作为根用户,运行以下命令。

    chmod 755 SAPCAR_*.EXE
    
  8. 使用SAPCAR从SAR文件中提取 SAP HANA 客户端。

    ./SAPCAR_*.EXE -xvf IMDB_CLIENT20*.SAR
    

    文件名 SAPCAR_*.EXE 是一个 Linux 二进制文件。

  9. 使用 hdbinst 安装 SAP HANA 客户端。

    cd SAP_HANA_CLIENT
    
    ./hdbinst
    
  10. 输入安装路径:[/usr/sap/hdbclient]: /usr/sap/hdbclient

  11. 为 Python 3.x 安装所需的pip软件包。

    sudo zypper install python3-pip
    
  12. 安装 SAP HANA Python 驱动程序。

    pip install /usr/sap/hdbclient/hdbcli-*.tar.gz
    

创建hdbuserstore密钥

请按照以下步骤创建 hdbuserstore 密钥。

  1. 使用运行 hanadb_exporter 的同一 Python 用户创建存储的用户密钥。 将 ReadOnly SQL用户设为 <sap_hana_sql_systemdb_user>

    /usr/sap/hdbclient/hdbuserstore SET MONITORING-${sap_monitoring_nr}-KEY \
    "${sap_hana_ip}:${sap_hana_sql_systemdb_port}@SYSTEMDB" \
    ${sap_hana_sql_systemdb_user} ${sap_hana_sql_systemdb_password}
    

    更多信息,请参阅 SAP HANA 用户商店(hdbuserstore)hdbuserstore命令

    在接下来的步骤中,userkey 被添加到hanadb_exporter的配置文件中,作为 "userkey": "MONITORING-<sap_monitoring_nr>-KEY"

  2. 通过列出所有密钥来验证您的密钥是否创建成功。

    /usr/sap/hdbclient/hdbuserstore list
    
  3. 要仅列出您的密钥,请使用以下命令。

    /usr/sap/hdbclient/hdbuserstore list MONITORING-${sap_monitoring_nr}-KEY
    

配置 hanadb_exporter 并激活守护进程

请按照以下步骤配置 hanadb_exporter 并激活守护进程。

hanadb_exporter 从 SAP HANA 数据库中收集指标。 数据库租户SYSTEMDB中的所有指标都通过 Prometheus 转发到监控摄取端点。

GitHub 资料库和原始文档可在以下网站找到。

该配置由两个配置文件组成:

  • metrics.json- 包含查询 SAP HANA 数据库的所有SQL语句
  • config.json 包含、和 sap_hana_ip sap_hana_sql_systemdb_port hdbuserkey

为了避免需要数据库管理员权限,请使用hdbuserstore中的 ReadOnly SQL用户。 通过替换占位符 <…>,可将特定参数添加到配置文件中。

  1. 使用以下命令以root用户创建配置文件,文件名为 /etc/hanadb_exporter/config-<sap_monitoring_nr>-SQL.json

    {
       "listen_address": "0.0.0.0",
       "exposition_port": 5<sap_monitoring_nr>02,
       "multi_tenant": false,
       "_comment_multi_tenant": "true, if you want another 1000 metrics",
       "timeout": 30,
       "hana": {
         "host": "<sap_hana_ip>",
         "port": <sap_hana_sql_systemdb_port>,
         "userkey": "MONITORING-<sap_monitoring_nr>-KEY",
         "ssl": true,
         "ssl_validate_cert": false
         }
    }
    
  2. 请使用之前创建的 hdbuserkey 名称来设置 userkey 参数的值。

您可以使用以下命令列出按键。

/usr/sap/hdbclient/hdbuserstore list
  1. 更改配置文件的权限,使其仅允许根用户读取。

    chmod 600 /etc/hanadb_exporter/config*
    
  2. 在您为 systemd service 定义 sap_host_exporters 的配置之前,请使用以下命令手动测试导出程序。

    hanadb_exporter -c /etc/hanadb_exporter/config-${sap_monitoring_nr}-SQL.json -m /etc/hanadb_exporter/metrics.json
    
  3. 该过程会阻塞一个终端,因此请打开第二个终端,并确认导出程序是否正确收集了度量。 运行以下 cURL 命令。

    curl http://localhost:5${sap_monitoring_nr}02/metrics
    

如果您看到指标,也应该看到状态信息。 如果指标列示正确,请停止导出程序。

hanadb_exporter 配置systemd应用程序。

安装包中包含 hanadb_exportersystemd 配置文件。 无需更改此配置文件。 systemd服务可以启动任何配置名称(文件名不带JSON扩展名)的进程。

  1. hanadb_exporter 要启用系统服务,请使用以下命令。

    sudo systemctl start prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
    
    sudo systemctl enable prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
    
  2. 要查看 hanadb_exporter 的状态,请运行以下命令。

    sudo systemctl status prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
    

配置sap_host_exporter并激活守护进程

使用以下信息配置sap_host_exporter并激活守护进程。

Prometheus sap_host_exporter 使用无状态 HTTP 协议从 SAP 系统实例收集指标。 更多信息,请访问 官方 GitHub 资料库

SAP 导出配置包含连接和 HTTP 端口的所有参数。 请注意,您需要为每个连接创建单独的配置文件。

/etc/sap_host_exporter/ 目录下创建配置文件。 使用以下命令根据 SAP 实例命名配置文件。

请使用以下配置文件模板。

  1. 作为根用户,创建 SAP HANA 配置文件,文件名为 /etc/sap_host_exporter/sap_host_exporter-${sap_monitoring_nr}-HANA.yaml

    # The listening TCP/IP address and port.
    address: "0.0.0.0"
    port: "5<sap_monitoring_nr>03"
    log-level: "info"
    sap-control-url: "http://<sap_hana_ip>:<sap_hana_http_port>"
    
  2. 作为根用户,创建 SAP ASCS配置文件,文件名为 /etc/sap_host_exporter/sap_host_exporter-${sap_monitoring_nr}-ASCS.yaml

    # The listening TCP/IP address and port.
    address: "0.0.0.0"
    port: "5${sap_monitoring_nr}04"
    log-level: "info"
    # ASCS instance
    sap-control-url: "http://<sap_ascs_ip>:<sap_ascs_http_port>"
    
  3. 作为根用户,创建第一个名为 /etc/sap_host_exporter/sap_host_exporter-${sap_monitoring_nr}-DI-01.yaml 的 SAP 应用服务器(PAS)配置文件。

    # The listening TCP/IP address and port.
    address: "0.0.0.0"
    port: "5<sap_monitoring_nr>05"
    log-level: "info"
    # DI instance (metrics dispatcher server + resources)
    sap-control-url: "http://<sap_app_server_ip_01>:<sap_app_server_port_01>"
    
  4. 作为根用户,创建第二个 SAP 应用服务器(AAS)配置文件,名称为 /etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-DI-02.yaml

    # The listening TCP/IP address and port.
    address: "0.0.0.0"
    port: "5<sap_monitoring_nr>06"
    log-level: "info"
    # DI instance (metrics dispatcher server + resources)
    sap-control-url: "http://<sap_app_server_ip_02>:<sap_app_server_port_02>"
    

    如果有多个应用服务器,则应为每个 SAP 应用服务器创建多个配置文件。 请确保每个配置文件的编号递增。

  5. 测试每个 sap_host_exporter 配置。

    sap_host_exporter -c /etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-HANA.yaml
    
  6. 该进程正在阻塞终端,请打开第二个终端并运行以下命令。

    curl http://localhost:5<sap_monitoring_nr>03/metrics
    
  7. 确认度量数据是否显示。 如果没有显示任何指标,您应该会看到一些错误信息。

  8. 用其他出口商配置重复相同的测试:

    /etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-ASCS.yaml
    
    /etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-DI-01.yaml
    

如果所有导出程序都运行正常,请继续进行 systemd 配置。

sap_host_exporter 配置 systemd服务器

所有 sap_host_exporters 只需要一个额外的 systemd 配置文件。 systemd 服务可以通过配置名称(文件名不带JSON扩展名)启动任何进程。

  1. 以用户root的身份在系统目录中创建一个文件 sap_host_exporter@.service

    /etc/systemd/system/sap_host_exporter@.service
    
  2. 添加以下内容,无需修改。

    [Unit]
    Description=Prometheus sap_host_exporter for Netweaver clusters metrics
    After=network.target
    Documentation=https://github.com/SUSE/sap_host_exporter
    [Service]
    Type=simple
    Restart=always
    ExecStart=/usr/bin/sap_host_exporter --config /etc/sap_host_exporter/%i.yaml
    ExecReload=/bin/kill -HUP $MAINPID
    [Install]
    WantedBy=multi-user.target
    DefaultInstance=default
    
  3. 以root用户身份运行以下命令,重新加载systemd配置。

    systemctl daemon-reload
    
  4. 以用户root身份启动并启用所有已配置的 sap_host_exporters 服务。

    systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-HANA
    
    systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-ASCS
    
    systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-01
    
    systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-02
    
  5. 以用户root身份,检查 systemd processes 的状态。

    systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-ASCS
    
    systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-HANA
    
    systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-01
    
    systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-02
    
  6. 启用 systemd autostart

    sudo systemctl enable sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-ASCS
    
    sudo systemctl enable sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-HANA
    
    sudo systemctl enable sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-01
    

后续步骤

如果监控主机的设置和配置成功,请继续 进行 Prometheus 服务器指标转发的配置