在 Linux 计算机上安装 Log Analytics 代理

注意

本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑您的使用方式和计划。 有关详细信息,请参阅 CentOS 生命周期结束指南

本文详细介绍如何在托管在其他云或本地的 Linux 计算机上安装 Log Analytics 代理。

重要

2024 年 8 月 31 日起,旧版 Log Analytics 代理已弃用。 Microsoft将不再为 Log Analytics 代理提供任何支持。 如果使用 Log Analytics 代理将数据引入 Azure Monitor,请立即迁移到 Azure Monitor 代理

本文中所述的安装方法包括:

  • 使用 GitHub 上托管的包装脚本安装适用于 Linux 的代理。 当计算机与 Internet 建立直接或通过代理服务器建立连接时,建议使用此方法安装和升级代理。
  • 手动下载并安装代理。 如果 Linux 计算机无法访问 Internet,并且将通过 Log Analytics 网关与 Azure Monitor 或 Azure 自动化通信,则需要此步骤。

有关可用于 Azure 虚拟机的更高效选项,请参阅 安装选项

要求

以下部分概述了安装要求。

受支持的操作系统

有关 Log Analytics 代理支持的 Linux 分发版列表,请参阅 Azure Monitor 代理概述

openSSL 1.1.0 仅在x86_x64平台(64 位)上受支持。 任何平台上都不支持早于 1.x 的 OpenSSL。

注释

Log Analytics Linux 代理不会在容器中运行。 若要监视容器,请使用适用于 Docker 主机的 容器监视解决方案 或 Kubernetes 的容器见解

从 2018 年 8 月之后发布的版本开始,我们将对支持模型进行以下更改:

  • 仅支持服务器版本,不支持客户端版本。
  • 重点支持任何 Azure Linux 认可的发行版。 新发行版/版本在 Azure Linux 认可和 Log Analytics Linux 代理支持之间可能存在一些延迟。
  • 列出的每个主要版本都支持所有次要版本。
  • 不支持已经过了制造商支持终止日期的软件版本。
  • 仅支持 VM 映像。 容器不受支持,即使是从官方发行版发布者的镜像派生的容器。
  • 不支持新版本的 AMI。
  • 默认情况下仅支持运行 OpenSSL 1.x 的版本。

注释

如果你使用的是目前不支持的发行版或版本,并且与我们的支持模型不一致,我们建议你分叉该代码库。 请注意,微软的支持服务不会为分叉代理版本提供帮助。

Python 要求

从代理版本 1.13.27 开始,Linux 代理将同时支持 Python 2 和 3。 我们始终建议使用最新的代理。

如果使用的是旧版代理,则默认情况下必须让虚拟机使用 Python 2。 如果虚拟机使用默认情况下不包含 Python 2 的发行版,则必须安装它。 以下示例命令将在不同的发行版上安装 Python 2:

  • Red Hat、CentOS、Oracle

    sudo yum install -y python2
    
  • Ubuntu,Debian

    sudo apt-get update
    sudo apt-get install -y python2
    
  • SUSE

    sudo zypper install -y python2
    

同样,仅当使用较旧版本的代理时,python2 可执行文件必须别名为 python。 使用以下方法设置此别名:

  1. 运行以下命令以删除任何现有别名:

    sudo update-alternatives --remove-all python
    
  2. 运行以下命令以创建别名:

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2
    

支持的 Linux 强化

OMS 代理对 Linux 的自定义和强化支持有限。

目前支持以下工具:

  • SELinux(用于 CentOS 和 RHEL 的市场镜像及其默认设置)
  • FIPS (CentOS 和 RHEL 6/7 的市场映像及其默认设置)

不支持以下工具:

  • CIS
  • SELinux (自定义强化(如 MLS)

Azure Monitor 代理会计划支持 CIS、FIPS 和 SELinux 加固功能。 OMS 代理不支持或计划进一步强化和自定义方法。 例如,像 GitHub Enterprise Server 这样的操作系统映像(包含用户帐户特权限制等自定义项)是不被支持的。

代理先决条件

下表突出显示了将安装代理 的受支持 Linux 发行版 所需的包。

所需安装包 Description 最低版本
Glibc GNU C 库 2.5-12
Openssl OpenSSL 库 1.0.x 或 1.1.x
Curl cURL Web 客户端 7.15.5
Python 2.7 或 3.6-3.11
Python-ctypes
PAM 可插入身份验证模块

注释

收集 syslog 消息需要使用 rsyslog 或 syslog-ng。 在 Red Hat Enterprise Linux、CentOS 和 Oracle Linux 版本 5 中,默认的 syslog 守护程序(sysklog)不支持 syslog 事件收集。 若要从这些分发版收集 syslog 数据,应安装 rsyslog 守护程序并将其配置为替换 sysklog。

网络要求

有关 Linux 代理的网络要求,请参阅 Log Analytics 代理概述

工作区 ID 和密钥

无论使用的安装方法如何,都需要代理连接到的 Log Analytics 工作区的工作区 ID 和密钥。 从 Azure 门户中的 Log Analytics 工作区菜单中选择工作区 。 在 “设置” 部分下,选择 “代理”。

显示工作区详细信息的屏幕截图。

注释

虽然可以重新生成 Log Analytics 工作区共享密钥,但这样做的目的是 不要 立即限制对当前使用这些密钥的任何代理的访问。 代理使用该密钥生成在三个月后过期的证书。 重新生成共享密钥只会阻止代理续订其证书,在证书过期之前不会继续使用这些证书。

代理安装包

适用于 Linux 的 Log Analytics 代理由多个软件包组成。 发布文件包含以下包,这些包可通过运行 --extract 带参数的 shell 捆绑包获得:

Package 版本 Description
omsagent 1.16.0 适用于 Linux 的 Log Analytics 代理。
omsconfig 1.2.0 用于日志分析代理的配置代理。
omi 1.7.1 开放式管理基础结构 (OMI),一个轻型 CIM 服务器。 OMI 需要根访问权限才能运行服务正常运行所需的 cron 作业
scx 1.7.1 用于操作系统性能指标的 OMI CIM 提供程序。
apache-cimprov 1.0.1 适用于 OMI 的 Apache HTTP Server 性能监视提供程序。 仅当检测到 Apache HTTP 服务器时安装。
mysql-cimprov 1.0.1 适用于 OMI 的 MySQL 服务器性能监视提供程序。 仅当检测到 MySQL/MariaDB 服务器时安装。
docker-cimprov 1.0.0 适用于 OMI 的 Docker 提供程序。 仅当检测到 Docker 时安装。

代理安装详细信息

重要

2024 年 8 月 31 日起,旧版 Log Analytics 代理已弃用。 Microsoft将不再为 Log Analytics 代理提供任何支持。 如果使用 Log Analytics 代理将数据引入 Azure Monitor,请立即迁移到 Azure Monitor 代理

安装适用于 Linux 包的 Log Analytics 代理也会应用以下系统范围的配置更改。 卸载 omsagent 包会删除这些项目。

  • 将创建一个名为 omsagent 非特权的用户。 守护程序在此凭据下运行。
  • /etc/sudoers.d/omsagent 中创建。 此文件授权 omsagent 重启 syslog 和 omsagent 守护程序。 如果所安装的 sudo 版本不支持 sudo include 指令,则会将这些条目写入 /etc/sudoers
  • 修改 syslog 配置以将事件子集转发到代理。 有关详细信息,请参阅 配置 Syslog 数据收集

在受监视的 Linux 计算机上,代理将列为 omsagentomsconfig 是用于 Linux 配置代理的 Log Analytics 代理,每 5 分钟检查一次新的门户侧配置。 新的和更新的配置将应用于位于的 /etc/opt/microsoft/omsagent/conf/omsagent.conf代理配置文件。

安装代理

重要

2024 年 8 月 31 日起,旧版 Log Analytics 代理已弃用。 Microsoft将不再为 Log Analytics 代理提供任何支持。 如果使用 Log Analytics 代理将数据引入 Azure Monitor,请立即迁移到 Azure Monitor 代理

以下步骤用于在 Azure 和 Azure 政府云中配置代理以进行日志分析。 包装器脚本用于 Linux 计算机,这些计算机可以直接或通过代理服务器进行通信,以下载托管在 GitHub 上的代理并安装代理。

如果 Linux 计算机需要通过代理服务器与 Log Analytics 通信,可以通过包括 -p [protocol://][user:password@]proxyhost[:port]此配置在命令行上指定。 该 protocol 属性接受 httphttps。 该 proxyhost 属性接受代理服务器的完全限定域名或 IP 地址。

例如:https://proxy01.contoso.com:30443

如果任一情况下都需要身份验证,请指定用户名和密码。 例如:https://user01:password@proxy01.contoso.com:30443

  1. 若要将 Linux 计算机配置为连接到 Log Analytics 工作区,请运行以下命令,提供工作区 ID 和主密钥。 以下命令下载代理程序,验证其校验码,并进行安装。

    wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh -w <YOUR WORKSPACE ID> -s <YOUR WORKSPACE PRIMARY KEY>
    

    以下命令包括 -p 代理服务器需要身份验证时的代理参数和示例语法:

    wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh -p [protocol://]<proxy user>:<proxy password>@<proxyhost>[:port] -w <YOUR WORKSPACE ID> -s <YOUR WORKSPACE PRIMARY KEY>
    
  2. 若要将 Linux 计算机配置为连接到 Azure 政府云中的 Log Analytics 工作区,请运行以下命令,提供前面复制的工作区 ID 和主密钥。 以下命令将下载代理并验证其校验和,然后安装。

    wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh -w <YOUR WORKSPACE ID> -s <YOUR WORKSPACE PRIMARY KEY> -d opinsights.azure.us
    

    以下命令包括 -p 代理服务器需要身份验证时的代理参数和示例语法:

    wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh -p [protocol://]<proxy user>:<proxy password>@<proxyhost>[:port] -w <YOUR WORKSPACE ID> -s <YOUR WORKSPACE PRIMARY KEY> -d opinsights.azure.us
    
  3. 通过运行以下命令重启代理:

    sudo /opt/microsoft/omsagent/bin/service_control restart [<workspace id>]
    

从以前的版本升级

从版本 1.0.0-47开始,可以在每个发行版中进行升级。 使用 --upgrade 参数执行安装,将代理的所有组件升级到最新版本。

注释

升级期间会显示警告消息“已跳过 docker 提供者包安装”,因为 --skip-docker-provider-install 标志已设置。 如果要通过现有 omsagent 安装进行安装并想要删除 docker 提供程序,请先清除现有安装。 然后使用 --skip-docker-provider-install 标志进行安装。

缓存信息

Log Analytics Agent for Linux 中的数据缓存在本地计算机上 %STATE_DIR_WS%/out_oms_common.buffer* ,然后再发送到 Azure Monitor。 自定义日志数据在 /%STATE_DIR_WS%/out_oms_blob.buffer* 中缓冲。 对于某些 解决方案和数据类型,路径可能有所不同。

代理尝试每隔 20 秒上传一次。 如果失败,它将等待时间的长度以指数级别增加,直到成功。 例如,它在第二次尝试前等待 30 秒,第三次尝试前 60 秒,120 秒等,最多在重试之间等待 16 分钟,直到它再次成功连接。 代理在放弃并移动到下一个数据块之前,对每个指定的数据块最多重试 6 次。 此过程将继续执行,直到代理可以再次成功上传。 因此,数据可能在丢弃前大约 30 分钟进行缓冲。

默认缓存大小为 10 MB,但可以在 omsagent.conf 文件中修改。

后续步骤