利用Prometheus实现监控所有服务器

打印 上一主题 下一主题

主题 521|帖子 521|积分 1563

一 、简单先容prometheus

1.1prometheus架构原理图


1.2各种组件的功能

Prometheus Server:数据采集,数据存储,数据查询,告警,自动发现,web ui
Exporters:将非Prometheus格式的应用或服务指标转换为Prometheus可抓取的格式。
Alertmanager:处置惩罚Prometheus生成的告警,并将其发送给指定的接收者
Pushgateway:接收短期作业或批处置惩罚作业的指标数据,并允许Prometheus Server拉取
Grafana:数据可视化和监控平台,与Prometheus集成,提供图表和仪表盘展示监控数据
Client Libraries:提供在应用步伐中实现自界说指标的方式,支持多种编程语言
二、二进制源码安装

1.1.将源码文件上传到ansible服务器

使用xftp直接上传文件即可
[root@nfs-ansible-prom ansible]# mkdir /prom        新建prom文件夹
[root@nfs-ansible-prom ansible]# cd /prom
[root@nfs-ansible-prom prom]# ls
grafana-enterprise-9.1.2-1.x86_64.rpm        prometheus-2.43.0.linux-amd64.tar.gz
node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
1.2.解压源码包

[root@nfs-ansible-prom prom]# tar xf prometheus-2.43.0.linux-amd64.tar.gz        解压源码包
[root@nfs-ansible-prom prom]# ls
grafana-enterprise-9.1.2-1.x86_64.rpm        prometheus-2.43.0.linux-amd64
node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  prometheus-2.43.0.linux-amd64.tar.gz
[root@nfs-ansible-prom prom]# mv prometheus-2.43.0.linux-amd64 prometheus        修改解压后的压缩包名字为prometheus

[root@nfs-ansible-prom prom]# ls        可以看到修改成功
grafana-enterprise-9.1.2-1.x86_64.rpm        prometheus
node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  prometheus-2.43.0.linux-amd64.tar.gz
1.3.临时和永世修改PATH变量,添加prometheus的路径

[root@nfs-ansible-prom prom]# PATH=/prom/prometheusPATH
[root@nfs-ansible-prom prom]# echo 'PATH=/prom/prometheusPATH'  >>/etc/profile
1.4.把prometheus做成一个服务来进行管理,非常方便日后维护和使用

[root@nfs-ansible-prom prom]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
[Service]
ExecStart=/prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
1.5.重新加载systemd干系的服务,识别Prometheus服务的设置文件并启动服务

[root@nfs-ansible-prom prom]# systemctl  daemon-reload
启动Prometheus服务
[root@nfs-ansible-prom prom]# systemctl start prometheus
[root@nfs-ansible-prom prom]# systemctl restart prometheus
[root@nfs-ansible-prom prom]# ps aux|grep prome        查察prometheus历程是否启动
root       2740  2.7  0.9 798956 37312 ?        Ssl  14:57   0:00 /prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml
root       2748  0.0  0.0 112824   976 pts/0    S+   14:57   0:00 grep --color=auto prome
1.6.设置开机启动

[root@nfs-ansible-prom prom]# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /usr/lib/systemd/system/prometheus.service.
1.7.查察服务启动后的结果

http://192.168.203.135:9090

http://192.168.203.135:9090/metrics


三、安装exporter

1.1上传exporter到web服务器和mysql服务器

直接利用xftp工具上传node_exporter软件,也可以使用远程拷贝命令scp,大概还可以在ansible服务器中利用copy模块拷贝软件到剩余两台服务器中 ansible all -m copy  -a 'src=node_exporter-1.4.0-rc.0.linux-amd64.tar.gz dest=/root/'
 
1.2编写在其他机器上安装node_exporter的脚本

[root@nfs-ansible-prom prom]# vim install_node_exporter.sh        编写自动安装exporter脚本
#!/bin/bash
tar xf /root/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  -C /
cd  /
mv node_exporter-1.4.0-rc.0.linux-amd64/ node_exporter
cd /node_exporter/
echo 'PATH=/node_exporter/PATH' >>/etc/profile
#生成nodeexporter.service文件
cat >/usr/lib/systemd/system/node_exporter.service  <<EOF
[Unit]
Description=node_exporter
[Service]
ExecStart=/node_exporter/node_exporter --web.listen-address 0.0.0.0:9090
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
#让systemd历程识别node_exporter服务
systemctl daemon-reload
#设置开机启动
systemctl  enable node_exporter
#启动node_exporter
systemctl  start node_exporter
1.3使用ansible的copy模块推送脚本到db和web服务器

[root@ansible prometheus]# ls
console_libraries  consoles  data  install_node_exporter.sh  LICENSE  nohup.out  NOTICE  prometheus  prometheus.yml  promtool
[root@ansible prometheus]# ansible all  -m copy  -a "src=install_node_exporter.sh dest=/root"
1.4在其他的服务器上查察是否安装node_exporter成功

[root@lb2 ~]# ps aux|grep node        查察node——exporter历程是否存在
root       5408  0.0  0.2 716288 11068 ?        Ssl  15:25   0:00 /node_exporter/node_exporter --web.listen-address 0.0.0.0:9090
root       5524  0.0  0.0 112824   976 pts/1    S+   15:27   0:00 grep --color=auto node

四、添加被监控的服务器

1.1修改设置文件

[root@nfs-ansible-prom prometheus]# vim prometheus.yml         修改yml设置文件

将安装了exporter的服务器添加到设置文件中
1.2重启Prometheus服务并查察结果

[root@nfs-ansible-prom prometheus]# service prometheus restart
Redirecting to /bin/systemctl restart prometheus.service

到此,我们实现了对web服务器和mysql服务器的监控



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表