zoukankan      html  css  js  c++  java
  • Prometheus监控MySQL和Linux主机结合Grafana出图

    监控的命令

    top
    df
    free
    htop
    uptime
    cat /proc/meminfo 
    iftop         流量监控工具
    nethogs       查看进程占用的网络带宽
    iotop
    

    Prometheus

    容器的名称和IP是在不断的变化,传统的监控软件无一例外的是基于IP的。Prometheus是一款专门为容器监控而生的软件,同时其内部使用了TSDB时间序列数据库

    时序数据库:是利用时间标签来存储数据,其在处理大数据场景下,比关系型数据库的性能要强悍很多。

    官网:https://prometheus.io/

    对比(插件的监控软件):

    • Zabbix(PHP + MySQL)
      • Zabbix在监控大规模机器的情况下,怎样优化其性能
    • Prometheus(Golang + TSDB)
      • TSDB比传统的数据性能要好
      • Prometheus是原生支持容器化监控
    • Open-falcon(Golang + MySQL )
    • 阿里云云监控

    Prometheus的架构图

    Prometheus architecture

    采集数据

    • 使用exporter
    • PushGateway

    保存数据

    • 保存在TSDB之上

    展示数据

    • 展示数据
      • Grafana是一款专业的数据量化软件
    • 报警
      • AlterManager
        • 企业微信报警
        • 钉钉报警
        • 邮件报警
        • 短信报警

    部署prometheus

    1.server

    #下载
    [root@prometheus ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
    
    #安装
    [root@prometheus ~]# tar xf prometheus-2.31.1.linux-amd64.tar.gz -C /usr/local/
    [root@prometheus ~]# ln -s /usr/local/prometheus-2.31.1.linux-amd64 /usr/local/prometheus
    
    #配置环境变量
    [root@prometheus ~]# vim /etc/profile.d/prometheus.sh
    export PATH=/usr/local/prometheus:$PATH
    [root@prometheus ~]# source /etc/profile
    
    # 启动(测试)
    [root@promethues /usr/local/prometheus]# prometheus --config.file="/usr/local/prometheus/prometheus.yml"
    
    #注册systemd服务
    [root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
    [Unit]
    Description=Prometheus
    
    [Service]
    EnvironmentFile=/usr/local/prometheus/prometheus.yml
    ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle  
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    [root@prometheus ~]# systemctl daemon-reload
    [root@prometheus ~]# systemctl enable --now prometheus
    
    #目录说明
    [root@promethus /usr/local/prometheus]# ls 
    console_libraries       --->控制台函数库
    consoles                --->控制台
    data                    --->数据存放目录
     
    LICENSE                 --->许可证
    NOTICE                  --->通知
    prometheus              --->启动脚本
    prometheus.yml          --->主配置文件
    promtool                --->系统工具
    
    #主配置文件说明
    [root@promethus /usr/local/prometheus]# cat prometheus.yml
     
    global:                 --->全局变量
      scrape_interval:     15s # 抓取时间间隔,每隔15秒去抓取一次
      evaluation_interval: 15s # 监控数据评估间隔
     
    scrape_configs:
      - job_name: 'prometheus'           --->定义job名字
     
        static_configs:
        - targets: ['localhost:9090','web01:9100','10.0.0.8:9100']    --->定义监控节点
    
    #检测
    [root@prometheus ~]# netstat -lntp | grep prometheus
    tcp6       0      0 :::9090                 :::*                    LISTEN      8280/prometheus 
    
    #浏览器访问10.0.0.61:9090
    

    2.安装主机监控Agent

    [root@prometheus ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz
    
    [root@prometheus ~]# tar xf node_exporter-1.3.0.linux-amd64.tar.gz -C /usr/local/
    
    [root@prometheus ~]# ln -s /usr/local/node_exporter-1.3.0.linux-amd64 /usr/local/node_exporter
    
    [root@prometheus ~]# cat > /etc/profile.d/node_exporter.sh <<EOF
    export PATH=/usr/local/node_exporter:$PATH
    EOF
    [root@prometheus ~]# source /etc/profile
    
    #注册systemd服务
    [root@prometheus ~]# cat > /usr/lib/systemd/system/node_exporterd.service << EOF
    
    [Unit]
    Description=This is prometheus node exporter
    After=node_exporter.service
    
    [Service]
    Type=simple
    ExecStart=/usr/local/node_exporter/node_exporter 
    ExecReload=/bin/kill -HUP
    KillMode=process
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    [root@prometheus ~]# systemctl daemon-reload
    [root@prometheus ~]# systemctl enable --now node_exporterd.service
    
    #检验
    [root@prometheus ~]# netstat -lntp | grep node_exporter
    tcp6       0      0 :::9100                 :::*                    LISTEN      8384/nod_exporter
    
    
    #将node_exporter加载到Prometheus中
    #在配置文件中末尾添加如下
    [root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
      - job_name: "node"
        static_configs:
        #添加IP两种写法
          - targets:["172.16.1.61:9100","172.16.1.7:9100","172.16.1.8:9100"]
    	# or
          - targets:
          	  - 172.16.1.61:9100
          	  - 172.16.1.7:9100
          	  - 172.16.1.8:9100
     
     [root@prometheus ~]# systemctl restart prometheusd.service      	  
    

    3.监控MySQL

    [root@db01 ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
    
    [root@db01 ~]# tar xf mysqld_exporter-0.13.0.linux-amd64.tar.gz -C /usr/local/                  
    [root@db01 ~]# ln -s /usr/local/mysqld_exporter-0.13.0.linux-amd64 /usr/local/mysqld_exporter
    
    #授权用户
    [root@db01 ~]# mysql
    mysql> grant select,replication client,process ON *.* to 'mysql_exporter'@'172.16.1.51' identifieed  by '123';
    mysql> FLUSH PRIVILEGES;
    
    
    ## 创建⼀个mysql配置⽂件,写上连接的⽤户名与密码(和上⾯的授权的⽤户名 和密码要对应)
    [root@db01 ~]# vim /usr/local/mysqld_exporter/.my.cnf
    [client]
    host=172.16.1.51
    user=mysql_exporter
    password=123
    
    
    4、启动(测试)
    [root@db01 ~]# /usr/local/mysqld_exporter/mysqld_exporter  --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
    
    #加入systemd
    [root@db01 ~]# vim /usr/lib/systemd/system/mysql_exporter.service
    [Unit]
    Description=Prometheus
    [Service]
    ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf --web.listen-address=:9104
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    
    
    [root@db01 ~]# systemctl daemon-reload
    [root@db01 ~]# systemctl enable --now mysql_exporter
    [root@db01 ~]# netstat -lntp | grep mysql
    tcp6       0      0 :::3306                 :::*                    LISTEN      1593/mysqld         
    tcp6       0      0 :::9104                 :::*                    LISTEN      1942/mysqld_exporte 
    
    # 回到prometheus服务器的配置⽂件⾥添加被监控的mysql的配置段
    [root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 
      - job_name: "mysqldb"
        static_configs:
          - targets: ["172.16.1.51:9104"]
    
    [root@prometheus /usr/local]# systemctl restart prometheus
    

    微信截图_20211125154212

    微信截图_20211125171030

    安装监控大屏(grafana)

    Grafana是一款数字量化的软件,配合Prometheus展示服务器监控大屏。

    官网:https://grafana.com/

    [root@prometheus ~]# cat > /etc/yum.repos.d/grafana.repo << EOF
    [grafana]
    name=grafana
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm
    repo_gpgcheck=0
    enabled=1
    gpgcheck=0
    EOF
    [root@prometheus ~]# yum makecache 
    [root@prometheus ~]# yum install -y grafana
    [root@prometheus ~]# systemctl enable --now grafana-server.service
    
    #浏览器访问 10.0.0.61:3000
    #默认用户名密码:admin/admin
    

    图形化监控

    微信截图_20211124193835

    微信截图_20211124193942

    微信截图_20211124194557

    微信截图_20211124195202

    微信截图_20211124195559

    微信截图_20211124195637

    微信截图_20211124195752

    微信截图_20211124195849

    中文监控模板

    泽野- 博客园 (cnblogs.com)

  • 相关阅读:
    FTP文件传输应用分析
    A*寻路算法
    Asp.net页面事件引发后台程序处理原理
    开发人员的基本原则(转)
    定位new表达式
    常量对象的动态分配和释放
    PostThreadMessage使用
    最美丽的数学公式
    仿函数
    CF1598EStaircases【计数】
  • 原文地址:https://www.cnblogs.com/backz/p/15320297.html
Copyright © 2011-2022 走看看