Prometheus(普罗米修斯)安装部署

Posted 爱敲代码的三毛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus(普罗米修斯)安装部署相关的知识,希望对你有一定的参考价值。

文章目录


普罗米修斯

官网
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控容器平台。因为kubernetes(俗称k8s)的流行带动了prometheus的发展

Prometheus的主要特征有:

  1. 多维度数据模型
  2. 灵活的查询语言
  3. 不依赖分布式存储,单个服务器节点是自主的
  4. 以HTTP方式,通过pull模型拉去时间序列数据
  5. 也可以通过中间网关支持push模型
  6. 通过服务发现或者静态配置, 来发现目标服务对象
  7. 支持多种多样的图表和界面展示

1. 环境准备

主机名ip身份
prometheus.cluster.com192.168.44.10prometheus服务器
agent1.cluster.com192.168.44.20被监控服务器
grafana.cluster.com192.168.44.30granfana服务器

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(普罗米修斯)安装部署的主要内容,如果未能解决你的问题,请参考以下文章

监控利器-Prometheus安装与部署+实现邮箱报警

linux12 -prometheus监控 -->简述与安装

docker部署简易Prometheus

Prometheus===》企业版部署监控报警

CentOS 6部署监控神器普罗米修斯(详细部署说明)

搞定Prometheus普罗米修斯监控系统的部署