<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          監(jiān)控利器:普羅米修斯監(jiān)控中間件(Nginx、Redis、MySql 等)

          共 5672字,需瀏覽 12分鐘

           ·

          2023-11-09 14:07

          我們的產(chǎn)品目前使用到的中間件有 Nginx、Redis、RabbitMQ、MySql 等,本文介紹怎樣使用 Promtheus 來監(jiān)控這些中間件。

          在《監(jiān)控利器:普羅米修斯介紹和安裝》中有一張圖,表明了 Prometheus 的數(shù)據(jù)走向,如下:

          從圖中可以看出,監(jiān)控中間件的第一步就是安裝中間件的 exporter,安裝有兩種方式:下載安裝文件進(jìn)行安裝和使用 Docker 進(jìn)行安裝,下面示例中使用的是后者。

          Nginx

          1、我們產(chǎn)品的前端 Web 部署在 nginx 容器中,需要在容器的配置文件中進(jìn)行 nginx_status 模塊的設(shè)置,才能被 exporter 識(shí)別。nginx 配置文件添加下面代碼:

           location /nginx_status {
                  stub_status on;
                  access_log off;
                  allow all;
                 # deny all;
           }
          • 為了測試方便直接設(shè)置為 allow all 了,實(shí)際可以根據(jù)需要進(jìn)行開放和禁用。

          2、修改配置后,重啟 Web 容器,訪問 http://ip:port/nginx_status  ,出現(xiàn)下圖界面,說明配置生效:

          3、執(zhí)行下面的命令進(jìn)行 nginx-exporter 容器的安裝:

          docker pull nginx/nginx-prometheus-exporter
          docker run -p 9113:9113 -d  --restart=always --name nginx-exporter nginx/nginx-prometheus-exporter -nginx.scrape-uri http://10.211.55.3:90/nginx_status
          • http://192.168.3.78/nginx_status 為被監(jiān)控的 nginx 服務(wù)器的地址。

          容器運(yùn)行后,訪問 9113 端口,如下圖:

          4、在 prometheus 的配置文件中進(jìn)行綁定,執(zhí)行vi /usr/local/prometheus/prometheus.yml,在文件的最下面添加  job 配置:

            - job_name: 'nginx'
              static_configs:
                - targets: ['10.211.55.3:9113']

          5、執(zhí)行命令 systemctl restart prometheus 重啟生效,可以訪問 http://10.211.55.3:9090/targets 查看狀態(tài),如果為 UP 說明 job 設(shè)置成功:

          6、在 Grafana 中導(dǎo)入 12078 模板:

          7、最終展示效果如下:

          Redis

          1、首先需要安裝 redis_exporter ,執(zhí)行下面命令進(jìn)行鏡像的下載和安裝:

          docker pull oliver006/redis_exporter 
          # 如果 redis 沒有密碼執(zhí)行下面命令
          docker run -d --name redis_exporter -p 9121:9121   --network s2v9_test_s2_net  oliver006/redis_exporter --redis.addr redis://172.66.9.9:6379 
          # 如果 redis 有密碼執(zhí)行下面命令
          docker run -d --name redis_exporter -p 9121:9121   --network s2v9_test_s2_net  oliver006/redis_exporter --redis.addr redis://172.66.9.9:6379 --redis.password '000000'
          • 上面命令中 --network s2v9_test_s2_net 為 redis 容器所在的網(wǎng)絡(luò),因?yàn)槲业?exporter 容器和 redis 容器在一臺(tái)服務(wù)器,設(shè)置為同一網(wǎng)絡(luò)后,--redis.addr 就可以使用容器的內(nèi)部 IP 和端口。
          • 如果是分開部署,不需要設(shè)置 --network ,使用服務(wù)器 IP 和端口即可。

          2、容器運(yùn)行成功后,瀏覽器訪問界面如下:

          3、在 prometheus 的配置文件中進(jìn)行綁定,執(zhí)行vi /usr/local/prometheus/prometheus.yml,在文件的最下面添加 job 配置:

            - job_name: 'reids'
              static_configs:
                - targets: ['10.211.55.3:9121']

          4、執(zhí)行命令 systemctl restart prometheus 重啟生效,可以訪問 http://10.211.55.3:9090/targets 查看狀態(tài),如果為 UP 說明 job 設(shè)置成功:

          5、在 Grafana 中導(dǎo)入 763 編號(hào)的模板:

          6、最終展示效果如下:

          RabbitMQ

          1、首先需要安裝 redis_exporter ,執(zhí)行下面命令進(jìn)行鏡像的下載和安裝:

          docker pull kbudde/rabbitmq-exporter:latest

          docker run -d -p 9419:9419 --name rabbitmq-exporter --network s2v9_test_s2_net -e RABBIT_URL=http://172.66.9.8:15672 -e RABBIT_USER=Ican -e RABBIT_PASSWORD=000000 kbudde/rabbitmq-exporter

          • -e RABBIT_URL=http://172.66.9.8:15672 ,這里設(shè)置的是 RabbitMQ 容器的內(nèi)部 IP,所以必須設(shè)置在同一個(gè)網(wǎng)絡(luò)中,否則需要將 15672 映射出去。
          • -e RABBIT_USER、-e RABBIT_PASSWORD 為 RabbitMQ 的用戶名和密碼,默認(rèn)為 guest,也可以自行設(shè)置。

          2、容器運(yùn)行成功后,瀏覽器訪問界面如下:

          3、在 prometheus 的配置文件中進(jìn)行綁定,執(zhí)行vi /usr/local/prometheus/prometheus.yml,在文件的最下面添加 job 配置:

            - job_name: 'rabbitmq'
              static_configs:
                - targets: ['10.211.55.3:9419']

          4、執(zhí)行命令 systemctl restart prometheus 重啟生效,可以訪問 http://10.211.55.3:9090/targets 查看狀態(tài),如果為 UP 說明 job 設(shè)置成功:

          5、在 Grafana 中導(dǎo)入 2121 編號(hào)的模板:

          6、最終展示效果如下:

          MySql

          1、在 mysql 數(shù)據(jù)庫中創(chuàng)建 exporter 賬戶,并設(shè)置權(quán)限:

          CREATE USER 'exporter'@'%' IDENTIFIED BY 'Aa123456';
          GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'%';
          GRANT SELECT ON performance_schema.* TO 'exporter'@'%';

          2、在目錄 /root/exporter/config/mysql 中創(chuàng)建 .my.cnf 文件,文件內(nèi)容如下:

          [client]
          host=172.66.9.2
          port=3306
          user=exporter
          password=Aa123456
          • host 配置為 mysql 數(shù)據(jù)庫的容器 IP
          • user 和 password 配置為新創(chuàng)建的賬號(hào)和密碼

          3、執(zhí)行下面命令安裝 mysqld-exporter :

          docker pull prom/mysqld-exporter
          docker run -d -p 9104:9104 --network s2v9_test_s2_net --restart="always" -v /root/exporter/config/mysql/.my.cnf:/.my.cnf prom/mysqld-exporter

          如果沒有 .my.cnf 文件的映射,會(huì)出現(xiàn)下面錯(cuò)誤:

          4、容器運(yùn)行成功后,瀏覽器訪問界面如下:

          5、在 prometheus 的配置文件中進(jìn)行綁定,執(zhí)行vi /usr/local/prometheus/prometheus.yml,在文件的最下面添加 job 配置:

            - job_name: 'mysql'
              static_configs:
                - targets: ['10.211.55.3:9104']

          6、執(zhí)行命令 systemctl restart prometheus 重啟生效,可以訪問 http://10.211.55.3:9090/targets 查看狀態(tài),如果為 UP 說明 job 設(shè)置成功:

          7、在 Grafana 中導(dǎo)入 7362 編號(hào)的模板:

          8、最終展示效果如下:




          瀏覽 321
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉精品伊人 | 91大神免费视频在线观看 | wwwjizz国产 | 九九天堂 | 欧美黄片网站入口 |