【运维】普罗米修斯监控平台
视频参考:
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