zoukankan      html  css  js  c++  java
  • prometheus简单监控Linux,mysql,nginx

    prometheus安装

    下载安装

    #官网下载 解压即可使用
    https://prometheus.io/download/
    #docker 方式安装
    sudo docker run -n prometheus -d -p 9090:9090 prom/prometheus
    
    

    配置文件

     /etc/prometheus/prometheus.yml 或 可执行文件当前目录下/prometheus.yml
    

    完整配置文件

      scheme: http
      static_configs:
      - targets:
        - localhost:9090
    - job_name: node1_self
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /metrics
      scheme: http
      static_configs:
      - targets:
        - 192.168.3.103:9100
    - job_name: mysql
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /metrics
      scheme: http
      static_configs:
      - targets:
        - 192.168.3.103:9104
        labels:
          instance: db1
    - job_name: nginx
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /status/format/prometheus
      scheme: http
      static_configs:
      - targets:
        - 192.168.3.139:80
        labels:
          instance: web1
      basic_auth:
        username: UserName
        password: PassWord
    

    重启服务

    重启服务或发信号重新加载配置
    killall -HUP prometheus

    官方exports 大全

    https://prometheus.io/docs/instrumenting/exporters/

    Linux服务器配置

    下载安装node_exporter (下载解压即可使用)

    https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
    ./node_exporter
    测试node_exporter
    curl http://localhost:9100/metrics

    mysql的exporter下载和配置

    可以在mysql机器上安装也可以在别的机器上安装
    `. 老样子下载解压
    https://github.com/prometheus/mysqld_exporter/releases
    2. 要配置一下被监控的mysql账户信息
    最好单独配置权限
    为 mysqld_exporter 创建一个单独的用户
    并赋予它受限的权限(PROCESS、REPLICATION CLIENT、SELECT)
    最好还限制它的最大连接数(MAX_USER_CONNECTIONS)

    CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'password' WITH MAX_USER_CONNECTIONS 3;
    GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
    

    $ cat .my.cnf

    [client]
    host=localhost
    port=3306
    user=root
    password=123456
    
    1. 运行mysqld_exporter
      `./mysqld_exporter --config.my-cnf=".my.cnf"

    2. 在 prometheus服务端的配置文件prometheus.yml中找到 scrape_config子项 添加一个 job
      如:

      - job_name: mysql
        static_configs:
          - targets: ['192.168.1.7:9104']
            labels:
              instance: db1
    
    1. 发送 重载配置文件信号
      killall -SIGHUP prometheus
    2. 到prometheus 网页中 导航栏->status->target 查看刚才添加的是否成功!

    nginx exporter 安装和配置

    好多方式都可以.lua脚本,openresty 等
    我们选择 编译nginx的nginx-module-vts 这就意味着我们要自己手动编译了.

    1. 下载nginx源码后解压.
      wget https://github.com/nginx/nginx/releases/tag/release-1.17.1
      tar -xvf nginx-release-1.17.1.tar.gz
      cd nginx-release-1.17.1
    2. 下载或克隆nginx-module-vts 模块 https://github.com/vozlt/nginx-module-vts
    3. 编译安装nginx
      安装依赖(centos)
    • openssl-devel
    • pcre-devel
    • gcc

    ./auto/configure --add-module=/home/pi/nginx-module-vts --with-http_ssl_module --with-debug
    干掉nginx
    make -j4 使用4个线程编译.树莓派有四个线程
    make install 安装nginx默认
    4.配置nginx的配置文件
    vim /usr/local/nginx/conf/nginx.conf

    user root;
    #user  nobody;
    worker_processes  2;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        vhost_traffic_status_zone;
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    	charset utf-8;
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
    	    auth_basic "needAuth";
    	    auth_basic_user_file /usr/local/nginx/conf/passwd.db;
            }
    	location /status {
    		vhost_traffic_status_display;
    		vhost_traffic_status_display_format html;
     	}
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
       
        }
    
    }
    
    

    配置http密码
    apt install apache2-utils -y
    htpasswd -c /usr/local/nginx/conf/passwd.db UserName
    启动nginx
    先看下模块有没编译进来

    cd /usr/local/nginx/
    /usr/local/nginx/sbin/nginx -V |grep nginx-module-vts
    

    能看到信息就代表模块编译成功.
    4. 运行nginx
    /usr/local/nginx/sbin/nginx
    4.1 查看nginx机器的ip
    ip a
    5. 在prometheus中增加一个监控nginx的任务
    添加配置内容在配置文件 prometheus.yml 注意因为我们nginx配置了验证,所以在prometheus中也要添加验证.要不没有办法支持访问

    - job_name: nginx
      honor_timestamps: true
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /status/format/prometheus
      scheme: http
      static_configs:
      - targets:
        - 192.168.3.139:80
        labels:
          instance: web1
      basic_auth:
        username: UserName
        password: PassWord
    
    1. 发送 重载配置文件信号
      killall -SIGHUP prometheus
    2. 到prometheus 网页中 导航栏->status->target 查看刚才添加的是否成功!

    之后可以使用配合Grafana可以愉快玩耍了.

  • 相关阅读:
    AngularJS 拦截器
    android的Log日志打印管理工具类(一)
    android的Home键的监听封装工具类(一)
    android开发SDcard 响应的文件相关处理(一)
    android开发时间和日期的代码实现工具类(一)
    android文件和图片的处理工具类(一)
    android的二进制和十六进制的相互转换工具类(一):
    android的color整理(一)
    android经典Demo(转载)
    Android 根据EditText搜索框ListView动态显示数据
  • 原文地址:https://www.cnblogs.com/lovesKey/p/11239341.html
Copyright © 2011-2022 走看看