Prometheus(普罗米修斯)安装部署
Posted 爱敲代码的三毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus(普罗米修斯)安装部署相关的知识,希望对你有一定的参考价值。
文章目录
普罗米修斯
官网
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控容器平台。因为kubernetes(俗称k8s)的流行带动了prometheus的发展
Prometheus的主要特征有:
- 多维度数据模型
- 灵活的查询语言
- 不依赖分布式存储,单个服务器节点是自主的
- 以HTTP方式,通过pull模型拉去时间序列数据
- 也可以通过中间网关支持push模型
- 通过服务发现或者静态配置, 来发现目标服务对象
- 支持多种多样的图表和界面展示
1. 环境准备
主机名 | ip | 身份 |
---|---|---|
prometheus.cluster.com | 192.168.44.10 | prometheus服务器 |
agent1.cluster.com | 192.168.44.20 | 被监控服务器 |
grafana.cluster.com | 192.168.44.30 | granfana服务器 |
1.配置静态ip
2.绑定关联主机名
# vim /etc/hosts
192.168.44.10 prometheus.cluster.com
192.168.44.20 agent1.cluster.com
192.168.44.30 grafana.cluster.com
3.时间同步
# systemctl restart ntpd
# systemctl enable ntpd
4.关闭防火墙和SELinux
# systemctl stop firewalld
# systemctl enable firewalld
# setenforce 0
# vim /etc/selinux/config
# iptables -F
2. 安装prometheus
去官网下载相应版本,上传到服务器上
官网提供的是二进制版,解压就能用,不需要编译
[root@prometheus ~]# tar -xf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/
[root@prometheus ~]# mv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/prometheus
直接使用默认配置文件启动
[root@prometheus ~]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
端口9090
[root@prometheus ~]# lsof -i:9090
3. prometheus界面
通过浏览器访问http://192.168.44.10:9090
就可以访问到prometheus主页
默认只监控了本机一台,点Status ——>点Targets ——> 可以看到只监控了本机
通过http://服务器IP:9090/metrics可以查看到监控的数据
在web主界面可以通过关键字查询监控项
4. 监控远程linux主机
在远程linux主机(被监控端agent1)上安装node_exporter组件
[root@agent1 ~]# tar -xf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
[root@agent1 ~]# mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter
里面就一个启动命令node_exporter,可以直接使用此命令启动
[root@agent1 ~]# ls /usr/local/node_exporter/
LICENSE node_exporter NOTICE
# 即使连接窗口关闭也依旧运行
[root@agent1 ~]# nohup /usr/local/node_exporter/node_exporter &
确认端口(9100)
[root@agent1 ~]# lsof -i:9100
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node_expo 8419 root 3u IPv6 45725 0t0 TCP *:jetdirect (LISTEN)
2.通过浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporter在被监控端收集的监控信息
3, 回到prometheus服务器的配置文件里添加被监控机器的配置段
在主配置文件最后加上下面三行
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent1' #取一个job名称来代表被监控的机器
static_configs:
- targets: ['192.168.44.20:9100'] # 这里改成被监控机器的IP,后面端口接9100
改完配置文件后,重启服务
[root@prometheus ~]# pkill prometheus # 杀死所有prometheus进程
[root@prometheus ~]# lsof -i:9090 # 确认端口没有进程占用
[root@prometheus ~]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
[root@prometheus ~]# lsof -i:9090 # # 确认端口被占用,说明重启成功
4.回到web管理界面 ——>点——>点Targets ——>可以看到多了一台监控目标
5. 监控远程mysql
1.在被管理机agent1上安装mysqld_exporter组件
下载地址
安装mysqld_exporter组件
[root@agent1 ~]# tar -xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/
[root@agent1 ~]# l
[root@agent1 ~]# mv /usr/local/mysqld_exporter-0.11.0.linux-amd64/ /usr/local/mysqld_exporter
[root@agent1 ~]# ls /usr/local/mysqld_exporter/
LICENSE mysqld_exporter NOTICE
安装mariadb数据库,并授权
[root@agent1 ~]# yum -y install mariadb-server -y
[root@agent1 ~]# yum -y install mariadb-server -y
[root@agent1 ~]# mysql
MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monito'@'localhost' identified by '123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
创建一个mariadb配置文件,写上连接的用户名与密码(和上面的授权的用户名和密码要对应)
[root@agent1 ~]# vim /usr/local/mysqld_exporter/.my.cnf
[client]
user=mysql_monitor
password=123
启动mysqld_exporter
[root@agent1 ~]# nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
确认端口(9104)
[root@agent1 ~]# lsof -i:9104
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_ex 18671 root 3u IPv6 66672 0t0 TCP *:peerwire (LISTEN)
2.回到prometheus服务器的配置文件里添加被监控的mariadb的配置段
在主配置文件最后再加上下面三行
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent1_mariadb' #取一个job名称来代表被监控的机器
static_configs:
- targets: ['192.168.44.20:9104'] # 这里改成被监控机器的IP,后面端口接9104
改完配置文件后,重启服务
[root@prometheus ~]# pkill prometheus
[root@prometheus ~]# lsof -i:9090
[root@prometheus ~]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
prometheu 18492 root 5u IPv6 67712 0t0 TCP *:websm (LISTEN)
prometheu 18492 root 7u IPv6 46003 0t0 TCP localhost:websm->localhost:55438 (ESTABLISHED)
prometheu 18492 root 8u IPv4 65565 0t0 TCP localhost:55438->localhost:websm (ESTABLISHED)
prometheu 18492 root 9u IPv6 67179 0t0 TCP localhost:59406->localhost:websm (ESTABLISHED)
prometheu 18492 root 10u IPv6 67180 0t0 TCP localhost:websm->localhost:59406 (ESTABLISHED)
3.回到web管理界面 ——>点Status ——>点Targets ——> 可以看到监控mariadb了
二、grafana
1. 使用grafana连接prometheus
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警
grafana官网
1.在grafana服务器上安装grafana
下载地址
# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.1.5-1.x86_64.rpm
[root@grafana ~]# rpm -ivh grafana-enterprise-9.1.5-1.x86_64.rpm
# 如果缺少依赖就,yum install rpm包名
# 启动服务
[root@grafana ~]# systemctl start grafana-server
[root@grafana ~]# systemctl enable grafana-server
确认端口(3000)
[root@grafana ~]# lsof -i:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
grafana-s 18400 grafana 10u IPv6 59375 0t0 TCP *:hbci (LISTEN)
2.通过浏览器访问 http:// grafana服务器IP:3000就到了登录界面,使用默认的admin用户,admin密码就可以登陆了
默认用户名和密码都为admin
3.下面我们把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得到prometheus的数据
2. grafana图形显示mysql监控数据
3. grafana+onealert报警
prometheus报警需要使用alertmanager这个组件,而且报警规则需要手动编写(对运维来说不友好)。所以我这里选用grafana+onealert报警。
注意: 实现报警前把所有机器**时间同步**再检查一遍.
1.先在onealert里添加grafana应用
睿像云
以上是关于Prometheus(普罗米修斯)安装部署的主要内容,如果未能解决你的问题,请参考以下文章