Prometheus 最新版本是 v2.x . 官方最新开源版本不支持集群,如果是单机部署则考虑最新的开源版本。

安装 Alertmanager

1、下载 Alertmanager 二进制文件。

下载地址:

官方地址:https://prometheus.io/download/

GitHub:https://github.com/prometheus/alertmanager/releases

从浏览器下载 Alertmanager 二进制文件。
如果需要,将下载的存档展开 C:\Program Files\Prometheus\ 并重命名文件。
  • Windows Binaries (64-bit) - using PowerShell
> Expand-Archive .\alertmanager-0.25.0.windows-arm64.zip -DestinationPath 'C:\Program Files\Prometheus\'
> mv 'C:\Program Files\Prometheus\alertmanager-0.25.0.windows-arm64' 'C:\Program Files\Prometheus\alertmanager'
启动 Alertmanager

在Powershell中,通过运行守护进程导航 C:\Program Files\Prometheus\alertmanager 并启动 Prometheus

> cd -Path 'C:\Program Files\Prometheus\alertmanager'
# 查询使用帮助
> ./prometheus -h

帮助说明内容:

usage: prometheus.exe [<flags>]

The Prometheus monitoring server

Flags:
  -h, --help                     Show context-sensitive help (also try
                                 --help-long and --help-man).
      --version                  Show application version.
      --config.file="prometheus.yml"
                                 Prometheus configuration file path.
      --web.listen-address="0.0.0.0:9090"
                                 Address to listen on for UI, API, and
                                 telemetry.
      --web.config.file=""       [EXPERIMENTAL] Path to configuration file that
                                 can enable TLS or authentication.
      --web.read-timeout=5m      Maximum duration before timing out read of the
                                 request, and closing idle connections.
      --web.max-connections=512  Maximum number of simultaneous connections.
      --web.external-url=<URL>   The URL under which Prometheus is externally
                                 reachable (for example, if Prometheus is served
                                 via a reverse proxy). Used for generating
                                 relative and absolute links back to Prometheus
                                 itself. If the URL has a path portion, it will
                                 be used to prefix all HTTP endpoints served by
                                 Prometheus. If omitted, relevant URL components
                                 will be derived automatically.
      --web.route-prefix=<path>  Prefix for the internal routes of
                                 web endpoints. Defaults to path of
                                 --web.external-url.
      --web.user-assets=<path>   Path to static asset directory, available at
                                 /user.
      --web.enable-lifecycle     Enable shutdown and reload via HTTP request.
      --web.enable-admin-api     Enable API endpoints for admin control actions.
      --web.enable-remote-write-receiver
                                 Enable API endpoint accepting remote write
                                 requests.
      --web.console.templates="consoles"
                                 Path to the console template directory,
                                 available at /consoles.
      --web.console.libraries="console_libraries"
                                 Path to the console library directory.
      --web.page-title="Prometheus Time Series Collection and Processing Server"
                                 Document title of Prometheus instance.
      --web.cors.origin=".*"     Regex for CORS origin. It is fully anchored.
                                 Example: 'https?://(domain1|domain2)\.com'
      --storage.tsdb.path="data/"
                                 Base path for metrics storage. Use with server
                                 mode only.
      --storage.tsdb.retention=STORAGE.TSDB.RETENTION
                                 [DEPRECATED] How long to retain samples in
                                 storage. This flag has been deprecated,
                                 use "storage.tsdb.retention.time" instead.
                                 Use with server mode only.
      --storage.tsdb.retention.time=STORAGE.TSDB.RETENTION.TIME
                                 How long to retain samples in storage.
                                 When this flag is set it overrides
                                 "storage.tsdb.retention". If neither this
                                 flag nor "storage.tsdb.retention" nor
                                 "storage.tsdb.retention.size" is set,
                                 the retention time defaults to 15d. Units
                                 Supported: y, w, d, h, m, s, ms. Use with
                                 server mode only.
      --storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE
                                 Maximum number of bytes that can be stored for
                                 blocks. A unit is required, supported units: B,
                                 KB, MB, GB, TB, PB, EB. Ex: "512MB". Based on
                                 powers-of-2, so 1KB is 1024B. Use with server
                                 mode only.
      --storage.tsdb.no-lockfile
                                 Do not create lockfile in data directory.
                                 Use with server mode only.
      --storage.tsdb.head-chunks-write-queue-size=0
                                 Size of the queue through which head chunks
                                 are written to the disk to be m-mapped,
                                 0 disables the queue completely. Experimental.
                                 Use with server mode only.
      --storage.agent.path="data-agent/"
                                 Base path for metrics storage. Use with agent
                                 mode only.
      --storage.agent.wal-compression
                                 Compress the agent WAL. Use with agent mode
                                 only.
      --storage.agent.retention.min-time=STORAGE.AGENT.RETENTION.MIN-TIME
                                 Minimum age samples may be before being
                                 considered for deletion when the WAL is
                                 truncated Use with agent mode only.
      --storage.agent.retention.max-time=STORAGE.AGENT.RETENTION.MAX-TIME
                                 Maximum age samples may be before being
                                 forcibly deleted when the WAL is truncated Use
                                 with agent mode only.
      --storage.agent.no-lockfile
                                 Do not create lockfile in data directory.
                                 Use with agent mode only.
      --storage.remote.flush-deadline=<duration>
                                 How long to wait flushing sample on shutdown or
                                 config reload.
      --storage.remote.read-sample-limit=5e7
                                 Maximum overall number of samples to return via
                                 the remote read interface, in a single query.
                                 0 means no limit. This limit is ignored for
                                 streamed response types. Use with server mode
                                 only.
      --storage.remote.read-concurrent-limit=10
                                 Maximum number of concurrent remote read calls.
                                 0 means no limit. Use with server mode only.
      --storage.remote.read-max-bytes-in-frame=1048576
                                 Maximum number of bytes in a single frame for
                                 streaming remote read response types before
                                 marshalling. Note that client might have limit
                                 on frame size as well. 1MB as recommended by
                                 protobuf by default. Use with server mode only.
      --rules.alert.for-outage-tolerance=1h
                                 Max time to tolerate prometheus outage for
                                 restoring "for" state of alert. Use with server
                                 mode only.
      --rules.alert.for-grace-period=10m
                                 Minimum duration between alert and restored
                                 "for" state. This is maintained only for alerts
                                 with configured "for" time greater than grace
                                 period. Use with server mode only.
      --rules.alert.resend-delay=1m
                                 Minimum amount of time to wait before resending
                                 an alert to Alertmanager. Use with server mode
                                 only.
      --alertmanager.notification-queue-capacity=10000
                                 The capacity of the queue for pending
                                 Alertmanager notifications. Use with server
                                 mode only.
      --query.lookback-delta=5m  The maximum lookback duration for retrieving
                                 metrics during expression evaluations and
                                 federation. Use with server mode only.
      --query.timeout=2m         Maximum time a query may take before being
                                 aborted. Use with server mode only.
      --query.max-concurrency=20
                                 Maximum number of queries executed
                                 concurrently. Use with server mode only.
      --query.max-samples=50000000
                                 Maximum number of samples a single query can
                                 load into memory. Note that queries will fail
                                 if they try to load more samples than this
                                 into memory, so this also limits the number
                                 of samples a query can return. Use with server
                                 mode only.
      --enable-feature= ...      Comma separated feature names
                                 to enable. Valid options: agent,
                                 exemplar-storage, expand-external-labels,
                                 memory-snapshot-on-shutdown,
                                 promql-at-modifier, promql-negative-offset,
                                 promql-per-step-stats, remote-write-receiver
                                 (DEPRECATED), extra-scrape-metrics,
                                 new-service-discovery-manager, auto-gomaxprocs,
                                 no-default-scrape-port, native-histograms. See
                                 https://prometheus.io/docs/prometheus/latest/feature_flags/
                                 for more details.
      --log.level=info           Only log messages with the given severity or
                                 above. One of: [debug, info, warn, error]
      --log.format=logfmt        Output format of log messages. One of: [logfmt,
                                 json]

带参数启动

# 带参数启动
> ./prometheus --config.file="C:\Program Files\Prometheus\prometheus\prometheus.yml"

浏览器访问 Prometheus:

http://localhost:9090/

将 Prometheus 注册为本地服务

从网上下载的Windows下的Prometheus是控制台程序,打开窗口后,很容易被别人给关掉,因此考虑做成Windows服务,nssm正是解决该问题的利器。

1、下载nssm:

下载地址:http://www.nssm.cc/download

查看官网提示,如果是win10,并且更新到了“Creators Update”,应该下载 “nssm 2.24-101-g897c7ad” 版本,否则启动时会报错

2、解压下载的nssm,找到里面的64位版本(我的电脑也是64位的),放到和Prometheus同级的目录

在Powershell中,通过运行守护nssm注册服务

> cd -Path 'C:\Program Files\Prometheus\prometheus'
> ./nssm.exe install PrometheusService

在弹出框中选择Prometheus的运行程序:

--config.file="C:\Program Files\Prometheus\prometheus\prometheus.yml"

你也可以设置一些其他的服务信息(可选)

点击确定,则成功注册windows服务,如下所示:

到windows服务中,启动 PrometheusService 即可:

如需卸载服务

在Powershell中,通过运行守护nssm注册服务

> cd -Path 'C:\Program Files\Prometheus\prometheus'
> ./nssm.exe remove PrometheusService

更多使用方式参考官方说明:http://www.nssm.cc/usage

作者:Jeebiz  创建时间:2023-02-21 22:22
最后编辑:Jeebiz  更新时间:2024-01-24 21:48