首頁>技術>

簡介

Prometheus是Golang寫的,編譯後就是一個二進位制檔案,不依賴於第三方執行庫。這樣子就可以讓我們很方便的部署。

下載安裝

Golang的交叉編譯,可以很容易實現跨平臺。

如果是測試實驗可以在下載windows版本的就可以了。

我這邊都是Linux環境,直接下載Linux版本

wget -c https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gztar zxvf prometheus-2.23.0.linux-amd64.tar.gz
執行

解壓後,就可以執行二進位制檔案prometheus

./prometheus

預設配置檔案是當前目錄下的prometheus.yml

預設配置檔案裡面只有拉取prometheus自己的指標。

幫助
./prometheus --help 

prometheus 提供了很多引數可以進行配置,根據實際情況進行設定即可。

usage: prometheus [<flags>]The Prometheus monitoring serverFlags:  -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.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.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.      --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.      --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.      --storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE                                   [EXPERIMENTAL] 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". This flag is experimental and                                 can be changed in future releases.      --storage.tsdb.no-lockfile                                   Do not create lockfile in data directory.      --storage.tsdb.allow-overlapping-blocks                                   [EXPERIMENTAL] Allow overlapping blocks, which in turn enables vertical compaction and vertical query merge.      --storage.tsdb.wal-compression                                   Compress the tsdb WAL.      --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.      --storage.remote.read-concurrent-limit=10                                   Maximum number of concurrent remote read calls. 0 means no limit.      --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.      --rules.alert.for-outage-tolerance=1h                                   Max time to tolerate prometheus outage for restoring "for" state of alert.      --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.      --rules.alert.resend-delay=1m                                   Minimum amount of time to wait before resending an alert to Alertmanager.      --alertmanager.notification-queue-capacity=10000                                   The capacity of the queue for pending Alertmanager notifications.      --alertmanager.timeout=10s                                   Timeout for sending alerts to Alertmanager.      --query.lookback-delta=5m  The maximum lookback duration for retrieving metrics during expression evaluations and federation.      --query.timeout=2m         Maximum time a query may take before being aborted.      --query.max-concurrency=20                                   Maximum number of queries executed concurrently.      --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.      --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]
註冊成服務

目前linux大部分的發行版本都是使用systemd管理系統服務了,我們可以直接編輯一個systemd的service檔案,來部署prometheus服務。

vim /etc/systemd/system/prometheus.service

如果沒有設定--storage.tsdb.path,記得設定好工作目錄WorkingDirectory,不然所有資料都會儲存到家目錄裡面。

[Unit]Description=prometheusAfter=network.target[Service]Type=simpleWorkingDirectory=/opt/prometheus/prometheusExecStart=/opt/prometheus/prometheus/prometheus --config.file="/opt/prometheus/prometheus/prometheus.yml"LimitNOFILE=65536PrivateTmp=trueRestartSec=2StartLimitInterval=0Restart=always[Install]WantedBy=multi-user.target

使用systemctl載入檔案、控制服務

systemctl daemon-reload systemctl enable prometheussystemctl start prometheus
WebUI

啟動之後,預設監聽是9090埠,瀏覽器直接訪問即可

http://[ip]:9090

18
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 適用於Python的實時Web應用程式和儀表板——Wave