设置和配置监控主机
监控代理从 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 软件包。
-
将所有操作系统软件包更新到最新版本。 如有必要,请重启主机。
sudo zypper update
-
安装以下 Prometheus 软件包。
sudo zypper install prometheus-sap_host_exporter
sudo zypper install prometheus-hanadb_exporter
sudo zypper install golang-github-prometheus-prometheus
-
创建 Prometheus 数据存储目录。
sudo mkdir /opt/prometheus
-
将 Prometheus 数据存储目录的用户和组ID更改为 Prometheus 用户。
sudo chown -R prometheus:prometheus /opt/prometheus
sudo chmod u+rwx /opt/prometheus
-
将公制文件
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
。
-
使用 SAP S用户认证访问 SAP 下载中心。
-
下载官方 SAP HANA 客户端,找回 SAP HANA Python 驱动程序。 如需了解更多信息,请参阅 安装 SAP HANA 客户端。
-
按照安装 Python 驱动程序中的说明,安装 SAP Python 驱动程序
hdbcli
。 -
选择以下 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
-
请从 SAP 下载中心下载
SAPCAR_*.EXE
软件包。 -
将两个文件
SAPCAR_*.EXE
和IMDB_CLIENTXXX.SAR
复制到监控主机上的任意目录中。 -
作为根用户,运行以下命令。
chmod 755 SAPCAR_*.EXE
-
使用SAPCAR从SAR文件中提取 SAP HANA 客户端。
./SAPCAR_*.EXE -xvf IMDB_CLIENT20*.SAR
文件名
SAPCAR_*.EXE
是一个 Linux 二进制文件。 -
使用
hdbinst
安装 SAP HANA 客户端。cd SAP_HANA_CLIENT
./hdbinst
-
输入安装路径:
[/usr/sap/hdbclient]: /usr/sap/hdbclient
。 -
为 Python 3.x 安装所需的pip软件包。
sudo zypper install python3-pip
-
安装 SAP HANA Python 驱动程序。
pip install /usr/sap/hdbclient/hdbcli-*.tar.gz
创建hdbuserstore密钥
请按照以下步骤创建 hdbuserstore
密钥。
-
使用运行 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"
。 -
通过列出所有密钥来验证您的密钥是否创建成功。
/usr/sap/hdbclient/hdbuserstore list
-
要仅列出您的密钥,请使用以下命令。
/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用户。 通过替换占位符 <…>
,可将特定参数添加到配置文件中。
-
使用以下命令以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 } }
-
请使用之前创建的
hdbuserkey
名称来设置userkey
参数的值。
您可以使用以下命令列出按键。
/usr/sap/hdbclient/hdbuserstore list
-
更改配置文件的权限,使其仅允许根用户读取。
chmod 600 /etc/hanadb_exporter/config*
-
在您为
systemd service
定义sap_host_exporters
的配置之前,请使用以下命令手动测试导出程序。hanadb_exporter -c /etc/hanadb_exporter/config-${sap_monitoring_nr}-SQL.json -m /etc/hanadb_exporter/metrics.json
-
该过程会阻塞一个终端,因此请打开第二个终端,并确认导出程序是否正确收集了度量。 运行以下 cURL 命令。
curl http://localhost:5${sap_monitoring_nr}02/metrics
如果您看到指标,也应该看到状态信息。 如果指标列示正确,请停止导出程序。
为 hanadb_exporter
配置systemd应用程序。
安装包中包含 hanadb_exporter
的 systemd
配置文件。 无需更改此配置文件。 systemd服务可以启动任何配置名称(文件名不带JSON扩展名)的进程。
-
hanadb_exporter
要启用系统服务,请使用以下命令。sudo systemctl start prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
sudo systemctl enable prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
-
要查看
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 实例命名配置文件。
请使用以下配置文件模板。
-
作为根用户,创建 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>"
-
作为根用户,创建 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>"
-
作为根用户,创建第一个名为
/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>"
-
作为根用户,创建第二个 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 应用服务器创建多个配置文件。 请确保每个配置文件的编号递增。
-
测试每个
sap_host_exporter
配置。sap_host_exporter -c /etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-HANA.yaml
-
该进程正在阻塞终端,请打开第二个终端并运行以下命令。
curl http://localhost:5<sap_monitoring_nr>03/metrics
-
确认度量数据是否显示。 如果没有显示任何指标,您应该会看到一些错误信息。
-
用其他出口商配置重复相同的测试:
/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扩展名)启动任何进程。
-
以用户root的身份在系统目录中创建一个文件
sap_host_exporter@.service
。/etc/systemd/system/sap_host_exporter@.service
-
添加以下内容,无需修改。
[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
-
以root用户身份运行以下命令,重新加载systemd配置。
systemctl daemon-reload
-
以用户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
-
以用户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
-
启用
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 服务器指标转发的配置。