監視ツールであるプロムナードは、プロセスと輸出者の監視サービスプロセスに基づいています

背景紹介

  • 一般的に使用されているnode_exporterはすべての監視項目を網羅しているわけではないため、本番環境で特定のプログラムのプロセスを監視して、ビジネスが正常かどうかを判断する必要があります。そのため、Process-exporterが誕生しました。
  • プロセスエクスポータは、プロメテウスのプロセスを監視するために使用されます。process_exporterを使用すると、アプリケーションの実行ステータスをマクロの観点から監視できます(redis、mysqlなどのプロセスリソースの監視など)。

デプロイ

1.監視プラグインをダウンロードします

wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.5/process-exporter-0.7.5.linux-amd64.tar.gz

2.解凍して構成します

解凍する

cd /usr/local/src
tar -xf process-exporter-0.7.5.linux-amd64.tar.gz
mv process-exporter-0.7.5.linux-amd64 process-exporter
chown -R root:root /usr/local/src/process-exporter

構成ファイルを編集します(README.mdファイルの80行目を参照)。process_exporterの方法は、
ここに画像の説明を挿入
監視するプロセスの名前を構成することです。プロセスを検索して、必要な監視情報を取得します。実際には、これは、対応するプロセスを表示するために「ps -efl」| grepxxx」コマンドを頻繁に実行するものです。構成ファイルは最初は存在しません。作成する必要があり、名前をカスタマイズできます。

  • 注:プロセスが複数の一致と一致した場合、それだけで最初に一致したグループ名に属する
    これらのうち、4名のオプションがあります(公式翻訳https://github.com/ncabatoff/process-exporter):
    { 。{}コム}には、元の実行可能ファイルのベース名が含まれます。つまり、2番目のフィールド/ proc // stat
    { {.ExeBase}}には、実行可能ファイルのベース名が含まれます
    { {.ExeFull}}には、実行可能ファイルの完全修飾パスが含まれます。
    { {.Username}}には、有効なユーザーのユーザー名が含まれます
    { {.Matches}}マップには、cmdlineregexpsによって生成されたすべての一致が含まれます

  • 追加の説明:名前オプションは実際にはキーに影響します:メトリックのグループ名。例として監視zookeeperとkafkaを取り上げます。

touch process-name.yaml
vim process-name.yaml
process_names:
 - name: "{
    
    {.Matches}}"
    cmdline: 
    - '/u01/isi/application/component/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar'

 - name: "{
    
    {.Matches}}"
    cmdline: 
    - '/u01/isi/application/component/kafka_2.11-0.10.0.1/bin/../libs/kafka_2.11-0.10.0.1.jar'

3.スタートストップサービス

注:起動パラメーター

-config.path    #process-name.yaml的配置文件路径
-web.listen-address   #blackbox_exporter监听的服务端口,默认为9256
cd /usr/local/src/process-exporter      #进入blackbox_exporter的目录
mkdir logs   							#创建日志目录
nohup ./process-exporter  -config.path="process-name.yaml"  -web.listen-address=":9256">> logs/process-exporter.log 2>&1 &   #启动服务
netstat -tanlp | grep 9256   									 #查看监听端口
ps -ef |grep process-exporter |grep -v grep |awk '{print $2}' | xargs kill -9  #停止服务

4.Prometheusに構成を追加します

1)fd_configファイルを書き込む
touch zk_kafka.json
vim zk_kafka.json
[
        {
    
    
                "labels": {
    
    
                        "desc": "zk node",
                        "group": "zk_process",
                        "host_ip": "192.168.16.113",
                        "hostname": "isi-16-113"
                },
                "targets": [
                        "192.168.16.113:9256"
                ]
},
        {
    
    
                "labels": {
    
    
                        "desc": "kafka node",
                        "group": "kafka_process",
                        "host_ip": "192.168.16.113",
                        "hostname": "isi-16-113"
                },
                "targets": [
                        "192.168.16.113:9256"
                ]
}
]
2)Prometheus.ymlに構成を追加します
...
...
  - job_name: 'zk_kafka-process'
    scrape_interval: 2m
    scrape_timeout: 120s
    static_configs:
    file_sd_configs:
      - files:
        - /home/monitor/prometheus/conf.d/zk_kafka.json

5.構成を確認してサービスをリロードします

cd /usr/local/src/prometheus/
./promtool check config prometheus.yml                  #检查配置文件是否正确
 curl -XPOST http://192.168.16.115:9090/-/reload        #重载服务

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44729138/article/details/114438177