【运维】普罗米修斯监控平台

 

视频参考:

https://www.bilibili.com/video/BV16J411z7SQ

 

一、平台安装

Prometheus 官网下载地址:

https://prometheus.io/download/

 

安装Prometheus

cd /opt
tar -zxvf prometheus-2.5.0.linux-amd64.tar.gz

直接启动

nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" &

 

访问平台主页:

http://localhost:9090/

 

二、监控其他机器:

在被监控的机器上安装Node_exporter节点导出器组件

tar -zxvf node_exporter-0.16.0.linux-amd64.tar.gz

直接启动即可

nohup /root/node_exporter-0.16.0.linux-amd64/node_exporter &

查看端口是否为监听状态

[root@centos6-3 node_exporter-0.16.0.linux-amd64]# lsof -i:9100
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node_expo 3050 root    3u  IPv6  16461      0t0  TCP *:jetdirect (LISTEN)


# 如果是这样. 执行命令安装 yum install -y lsof 
[root@centos6-3 node_exporter-0.16.0.linux-amd64]# lsof -i:9100
-bash: lsof: command not found

 

通过此被监控机的地址访问被收集的信息:

http://centos6-3:9100/metrics

 

回到监控平台所在机器,增加配置项

vim /opt/prometheus-2.5.0.linux-amd64/prometheus.yml

下面高亮标识的是增加项,其余是平台默认设置

注意配置参数要和默认的对齐,否则yml解析异常,平台无法启动

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

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


  - job_name: 'agent1' # 取一个job名称来代 表被监控的机器 
   static_configs: 
    - targets: ['centos6-3:9100'] # 这里改成被监控机器 的IP,后面端口接9100

 

中止正在执行的平台进程

pkill prometheus

检查是否成功中止

lsof -i:9090

然后重启,并再次检查

nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" & 

检查是否成功运行

[root@centos6-2 prometheus-2.5.0.linux-amd64]# lsof -i:9090
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
prometheu 3822 root    6u  IPv6  18775      0t0  TCP *:websm (LISTEN)
prometheu 3822 root    7u  IPv4  18777      0t0  TCP localhost:33806->localhost:websm (ESTABLISHED)
prometheu 3822 root    9u  IPv6  18778      0t0  TCP localhost:websm->localhost:33806 (ESTABLISHED)
prometheu 3822 root   10u  IPv6  18793      0t0  TCP localhost:39398->localhost:websm (ESTABLISHED)
prometheu 3822 root   11u  IPv6  18794      0t0  TCP localhost:websm->localhost:39398 (ESTABLISHED)
[root@centos6-2 prometheus-2.5.0.linux-amd64]# 

 

平台访问后会多出被监控机器的信息:

http://centos6-2:9090/targets

 

三、监控MYSQL

在被监控的机器上安装 mysqld_exporter

[root@centos6-1 ~]# tar -zxvf mysqld_exporter-0.11.0.linux-amd64.tar.gz
mysqld_exporter-0.11.0.linux-amd64/
mysqld_exporter-0.11.0.linux-amd64/NOTICE
mysqld_exporter-0.11.0.linux-amd64/LICENSE
mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter

 

在MYSQL数据库中创建一个授权用户

GRANT SELECT,REPLICATION CLIENT,PROCESS 
ON *.* TO 'mysql_monitor'@'locahost'
IDENTIFIED BY '123456';
(注意:授权ip为localhost,因为不是prometheus服务器来直接找mariadb 获取数据,
而是prometheus服务器找mysql_exporter,mysql_exporter 再找mariadb。
所以这个localhost是指的mysql_exporter的IP)

5.7.36 对用户管理严格了,需要前行配置:

SET GLOBAL VALIDATE_PASSWORD_POLICY = LOW;
SET GLOBAL VALIDATE_PASSWORD_LENGTH = 6; 

然后别忘记刷新权限:

FLUSH PRIVILEGES;

 

回到mysqld_exporter,配置上授权用户的账号信息

vim /root/mysqld_exporter-0.11.0.linux-amd64/.my.cnf

添加信息:

[client]
user=mysql_monitor
password=123456

 

启动mysqld_exporter,检查是否成功运行:

[root@centos6-1 mysqld_exporter-0.11.0.linux-amd64]# nohup  /root/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter --config.my-cnf="/root/mysqld_exporter-0.11.0.linux-amd64/.my.cnf" &
[1] 4449
[root@centos6-1 mysqld_exporter-0.11.0.linux-amd64]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@centos6-1 mysqld_exporter-0.11.0.linux-amd64]# lsof -i:9104
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld_ex 4449 root    3u  IPv6  17725      0t0  TCP *:peerwire (LISTEN)

 

回到监控平台的主机,增加mysqld_exporter对应的配置项:

vim /opt/prometheus-2.5.0.linux-amd64/prometheus.yml

# 配置参数项
  - job_name: 'agent_mysql5.7.36' # 取一个job名称来代 表被监控的机器 
    static_configs:
    - targets: ['centos6-1:9104'] # 这里改成被监控机器 的IP,后面端口接9100

 

重启平台:

[root@centos6-2 prometheus-2.5.0.linux-amd64]# pkill prometheus
[root@centos6-2 prometheus-2.5.0.linux-amd64]# nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" &
[2] 4699
[1]   Done                    nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml"
[root@centos6-2 prometheus-2.5.0.linux-amd64]# nohup: 忽略输入并把输出追加到"nohup.out"

[root@centos6-2 prometheus-2.5.0.linux-amd64]# lsof -i:9090
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
prometheu 4699 root    5u  IPv6  20328      0t0  TCP *:websm (LISTEN)
prometheu 4699 root    7u  IPv4  20330      0t0  TCP localhost:34188->localhost:websm (ESTABLISHED)
prometheu 4699 root    8u  IPv6  20331      0t0  TCP localhost:websm->localhost:34188 (ESTABLISHED)
[root@centos6-2 prometheus-2.5.0.linux-amd64]# 

刷新一下Target页面就有了对应的监控信息:

 

 

四、Grafana可视化工具

安装Grafana

命令执行发现安装失败,缺少依赖:

[root@centos6-3 ~]# rpm -ivh grafana-5.3.4-1.x86_64.rpm
warning: grafana-5.3.4-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
error: Failed dependencies:
    urw-fonts is needed by grafana-5.3.4-1.x86_64
[root@centos6-3 ~]# 

 

可以直接使用yum安装此依赖

sudo yum install -y  urw-fonts

 

然后可以了

[root@centos6-3 ~]# rpm -ivh grafana-5.3.4-1.x86_64.rpm
warning: grafana-5.3.4-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
Preparing...                ########################################### [100%]
   1:grafana                ########################################### [100%]
### NOT starting grafana-server by default on bootup, please execute
 sudo /sbin/chkconfig --add grafana-server
### In order to start grafana-server, execute
 sudo service grafana-server start
POSTTRANS: Running script
[root@centos6-3 ~]# 

 

自启动grafana 和 开启grafana

# centos7
systemctl start grafana-server
systemctl enable grafana-server

# centos6
service grafana-server start 
chkconfig grafana-server

 

检查是否运行

[root@centos6-3 ~]# lsof -i:3000
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
grafana-s 5160 grafana   10u  IPv6  22936      0t0  TCP *:hbci (LISTEN)

 

访问平台页面:

账号信息 admin / admin

http://centos6-3:3000/login

 

数据源设置项:

 

侧边栏导航筛选

 

 

五、Grafana监控MySQL数据库

编辑配置文件:

vim /etc/grafana/grafana.ini

在最下面添加配置项:

[dashboards.json] 
enabled = true 
path = /var/lib/grafana/dashboards

 

切换到这个目录下,通过GIT拉取dashboard

# 如果没有git执行此命令安装
yum install git -y

# 切换到lib/grafana下面拉取
cd /var/lib/grafana/ 
git clone https://github.com/percona/grafana-dashboards.git

# 然后重命名
cp -r grafana-dashboards/dashboards/ /var/lib/grafana/

# 重启服务
service grafana-server restart

我发现直接拉仓库很慢,改在本机win中拉取了也不行

这个办法可行,在Gitee上搬Github库,再从Gitee上面拉取

https://blog.csdn.net/qq_26736193/article/details/105387507

 

 

回到grafana的面板,创建新面板时使用【导入】

 

使用JSON文件进行导入:

这里和教程的说的不太一样,Grafana已经分别用目录存放了,文件也改名了

 

导入发现报错,没有数据源:

回到数据源这里,改回默认的Prometheus

 

发现模板对不上号,换用了,显示算正常了,但是没有数据

https://blog.csdn.net/qq_40460909/article/details/81386666

 

posted @ 2022-03-21 22:58  emdzz  阅读(2025)  评论(0编辑  收藏  举报