使用プロメテウス[メモ]

プロメテウスの使用

環境

コマンド・ライン・エントリの例

  • CPU使用率の計算

    T2はCPUの総使用時間=にT1に( user2+ nice2+ system2+ idle2+ iowait2+ irq2+ softirq2) - ( user1+ nice1+ system1+ idle1+ iowait1+ irq1+ softirq1)
    T2 =アイドル期間t1におけるCPU使用時間(idle2 - idle1)

    T2 =利用にCPUの時刻t1の 1 - CPU空闲使用时间 / CPU总的使用时间

    increase() 機能:時間増分のカウンタタイプを解決するために

    マルチコアCPUの計算

    sum()結果が加算され、

    • CPU時間を取得します。
    • 自由な時間を取得しますidle

総取得時間

  • 単一マシン上のCPU使用率の合計

    1-(sum(increase(node_cpu_seconds_total{instance="192.168.9.232:9100",mode="idle"}[1m]))/sum(increase(node_cpu_seconds_total{instance="192.168.9.232:9100"}[1m])))
    
  • (インスタンス)によって:のインスタンスを区別

  • (1-( sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance) )) * 100
    
  • 他のCPUの状態は、時間を使用して計算されます

    • iowaitのIOの待ち時間

      sum(increase(node_cpu_seconds_total{mode="iowait"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • IRQハードウェア割り込み

      sum(increase(node_cpu_seconds_total{mode="irq"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • ソフトIRQソフト割り込み

      sum(increase(node_cpu_seconds_total{mode="softirq"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • タイムスライス仮想マシンが盗みます

      sum(increase(node_cpu_seconds_total{mode="steal"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • 時間配分プロセスの素敵な素敵な値

      sum(increase(node_cpu_seconds_total{mode="nice"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • アイドルアイドル

      sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • ユーザーモードユーザー

      sum(increase(node_cpu_seconds_total{mode="user"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

    • sytemカーネルモード

      sum(increase(node_cpu_seconds_total{mode="system"}[1m])) by(instance) / sum(increase(node_cpu_seconds_total{}[1m]) ) by(instance)

コマンドラインの拡張を使用

  • 濾過

    • ラベルフィルタリング key{label=""}
      • ファジーマッチング key{label=~"web.*"}
    • 値フィルタ
      • 算術 key{.} > 400
  • 機能

    • rate(.[5m])データ型カウンタと、設定された時間に応じて、撮影counter期間ごとに増分の平均を

      v a l u e = S / t 値=ΔS/Δtを

      • 取得された番組データ収集間隔考慮すべき期間の値
    • increase(.[5m])ではcounter、データ型、増分は一定の時間を要します
      v a l u e = S 値=ΔS

    • sum()加和

      • コンバイン by()
    • topk(x,key) Xの前に最も高い位置を取ります

      • 適していませんgraph;適しのためのconsole鑑賞
      • 瞬時警報に適し
    • count()

      • ファジィ監視裁判官

データ収集

サーバーを開始 - 生産のために

  • Peometheus負荷設定ファイル

    • プロメテウスへのシグナリングのための
      • -HUP PIDを殺します
    • プロメテウスにHTTPリクエストを送信します
      • カール-XPOST http://prometheus.chenlei.com/-/reload
  • 背景

    • 使用するscreenツール

    • 使用 daemonize

      > yum install -y kernel-devel 
      > yum groupinstall -y Development tools
      > git clone https://github.com/bmc/daemonize.git
      > cd daemonize
      > ./configure && make && make install 
      
  • 起動しprometheus、追加のパラメータを

    • -web.listenアドレス:アドレスを聞きます 0.0.0.0:9090
    • -web.readタイムアウト:最大待機時間要求リンク 2m
    • -web.max-接続:接続の最大数 10
    • -storage.tsdb.retention:データの保持 90d
    • -storage.tsdb.path:データパスを保存しました /data/prometheus/server/data
    • -query.max-同時実行:同時の最大数 20
    • -query.timeout:クエリのタイムアウト 2m
  • ストレージ構造

    server/
    └── data
        ├── 01DM9HP1PHHK2BD1MGC7J1C0YC
        │   ├── chunks
        │   │   └── 000001
        │   ├── index
        │   ├── meta.json
        │   └── tombstones
        ├── 01DM9ZDG8QKWTPYZ86K7XW6FKZ
        │   ├── chunks
        │   │   └── 000001
        │   ├── index
        │   ├── meta.json
        │   └── tombstones
        ├── 01DMAM0NM51YSQ4EVRRV46X2E1
        │   ├── chunks
        │   │   └── 000001
        │   ├── index
        │   ├── meta.json
        │   └── tombstones
        ├── 01DMAM0P4CGJWSSA15QPWJGZXF
        │   ├── chunks
        │   │   └── 000001
        │   ├── index
        │   ├── meta.json
        │   └── tombstones
        ├── lock
        ├── queries.active
        └── wal
            ├── 00000011
            ├── 00000012
            ├── 00000013
            ├── 00000014
            ├── 00000015
            ├── 00000016
            ├── 00000017
            ├── 00000018
            └── checkpoint.000010
                └── 00000000
    
  • 保存された最近のデータwal/突然の停電や再起動を防ぐために、ディレクトリは、メモリ内のデータを回復するために使用されます

書かれたサーバの設定ファイル

global:
  scrape_interval:     5s #抓取频率
  evaluation_interval: 1s 



alerting:
  alertmanagers:
  - static_configs:
    - targets:



rule_files:

scrape_configs:	

  - job_name: 'prometheus'

    static_configs:
    - targets: ['localhost:9090']

  - job_name: '233-node-exporter'

    static_configs:
    - targets: ['192.168.9.233:9100']

  - job_name: '232-node-exporter'

    static_configs:
    - targets: ['192.168.9.232:9100']

  - job_name: '239-node-exporter'

    static_configs:
    - targets: ['192.168.9.239:9200']

node_exporter

githubのアドレス

  • 指標の収集サーバ
  • 十分なデフォルトのコレクションアイテムがあります。
  • あなたは、オープンまたは無効に一定の指標を開始することができます

pushgateway

  • 導入
    データをプッシュするためのイニシアチブをprometheus server

    異なるノード上で個別に実行することができ、ノードの監視が必要とされていません

  • インストール

  • コレクトpushgatewayに送信されたカスタムスクリプト

    • インストールpushgeteway

    • プロメテウスの設定ジョブ関連pushgateway

    • スクリプトデータの収集対象ホスト

    • 送信pushgatewayを実行するタイミングメトリックデータ

      #!/bin/bash
      instance_name=instance_name
      
      label=label
      value=123
      
      echo "$label $value" | curl --data-binary @- http://192.168.9.233:9091/metrics/job/test/instance/$instance_name
      
  • 短所

    • ボトルネックのシングルポイント
    • データなしフィルタリングません

カスタム輸出国

インターフェイスの可視化

grafana

  • はじめに
    オープンソースのデータマッピングツールの

  • インストール

  • コンフィギュレーション

    • 追加prometheusのデータソースを

    • 加えますdashboard
      image-20190910175959926

    • ダッシュボードの確立

      • データ・ソース構成
        image-20190910175917439
  • グラフィカルな設定

    • 可視化
      image-20190910175754722

    • image-20190910175814132
    • 伝説
      image-20190910175830342
    • しきい値と時刻の地域
      image-20190910175852153
    • データリンク
  • 通用配置
    image-20190910180031703

  • アラームの設定
    image-20190910180042705

  • バックアップ

    • 輸出JSON
    • 保存
  • 削減

    • 輸入JSON / JSONを貼り付け
  • アラーム
    アラームは、grafana 4.0新機能

    • ネイルアラーム
    • pageduty

練習

  • メモリ使用量

    • ソース
      node_exporter

    • v a l u e = a v a i l a b l e / S u m 値=利用可能/合計
      実際に利用可能なメモリを自由= +バッファ+キャッシュされ
    • フォーミュラ達成
      ((node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes)/node_memory_MemTotal_bytes)*100
  • ハードディスクIOを監視

    • ソース
      node_exporter

    • v a l u e = + +書き込み速度の速さを値=読み
    • 公式实现
      函数: predict_linear(), 预测趋势
      (rate(node_disk_read_bytes_total[1m])+rate(node_disk_written_bytes_total[1m]))
  • 网络监控

    • 数据来源
      bash脚本+pushgateway

    • 脚本编写
      采集内网流量ping延迟和丢包率

      instance=`hostname -f`
      #外网联通
      lostpk=`timeout 5 ping -q -A -s 500 -W 1000 -c 100 baidu.com | grep transmitted | awk '{print $6}'`
      #时间
      rrt=`timeout 5 ping -q -A -s 500 -W 1000 -c 100 baidu.com | grep transmitted | awk '{print $10}'`
      
      # value只允许数值型
      value_lostpk=${lostpk%%\%}
      value_rrt=${rrt%%ms}
      
      # 通过 pushgateway 发送给prometheus
      echo "lostpk_$instance : $value_lostpk"
      echo "lostpk_$instance $value_lostpk" | curl --data-binary @- http://192.168.9.233:9091/metrics/job/network-traffic/instance/$instance
      
      echo "rrt_$instance : $value_rrt"
      echo "rrt_$instance $value_rrt" | curl --data-binary @- http://192.168.9.233:9091/metrics/job/network-traffic/instance/$instance
      
      
    • 定时执行
      资料
      定时执行步骤:

      • 安装crontab
      • /etc/crontab配置cron运行对应可执行脚本
    • 查看结果

      • 在prometheus查看targets有没有在线,如果没有需要到prometheus配置,记得刷新配置
        image-20190912115039938
      • 查看配置

      image-20190912115136770

      • 看指标,在命令行输入刚刚自定的key应该会有提示出现lostpk rrt
        image-20190912124023780
发布了161 篇原创文章 · 获赞 140 · 访问量 47万+

おすすめ

転載: blog.csdn.net/qq_37933685/article/details/100767261