首页 > 系统相关 >Prometheus安装部署及监控linux主机

Prometheus安装部署及监控linux主机

时间:2023-02-09 23:56:43浏览次数:62  
标签:node exporter 主机 prometheus grafana Prometheus usr linux

Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker 。

Prometheus官网下载地址: https://prometheus.io/download/

grafana官网下载值:https://grafana.com/grafana/download/

本章部署软件及版本如下:

https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
https://dl.grafana.com/oss/release/grafana-7.1.4-1.x86_64.rpm

一、安装Prometheus

复制代码
###########################################
#创建用户组
# groupadd prometheus
# useradd -g prometheus -m -s /sbin/nologin prometheus

# 解压配置
# tar -zxvf prometheus-2.26.0.linux-amd64.tar.gz
# mv prometheus-2.26.0.linux-amd64 /usr/local/prometheus
# sed -i 's/localhost/10.0.2.118/g' /usr/local/prometheus/prometheus.yml

# 创建数据目录
$ mkdir /usr/local/prometheus/data/

# 权限修改
# chown -R prometheus.prometheus /usr/local/prometheus

# 检查并加载配置文件
[root@localhost prometheus]# ./promtool check config prometheus.yml # 创建systemd服务 cat <<EOF > /usr/lib/systemd/system/prometheus.service [Unit] Description=prometheus After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data/ --web.enable-lifecycle --storage.tsdb.retention.time=30d Restart=on-failure [Install] WantedBy=multi-user.target EOF # --config.file: 指定配置文件 # --web.enable-lifecycle: 支持通过http请求重载配置 # --storage.tsdb.path: 指定数据存储目录(默认当前目录的的data目录,若不存在则新建) # --storage.tsdb.retention.time: 指定数据保留时间(默认15d) # 启动服务 # systemctl daemon-reload # systemctl start prometheus # systemctl status prometheus && systemctl enable prometheus # 确认端口已经被监听 # ss -lnput | grep 9090 tcp LISTEN 0 128 [::]:9090 [::]:* users:(("prometheus",pid=71025,fd=8))
复制代码

浏览器访问:

 Prometheus管理接口:

复制代码
# curl  http://10.0.2.118:9090/-/healthy
Prometheus is Healthy.
# curl  http://10.0.2.118:9090/-/ready
Prometheus is Ready.

# curl -XPOST http://10.0.2.118:9090/-/reload
# 通过web接口重载,启动时需增加选项  --web.enable-lifecycle

# curl -XPUT http://10.0.2.118:9090/-/quit
# 停止Prometheus
# 同样需启动时增加--web.enable-lifecycle选项
复制代码

二、安装grafana

# wget https://dl.grafana.com/oss/release/grafana-7.1.4-1.x86_64.rpm
# yum -y install grafana-7.1.4-1.x86_64.rpm
# systemctl daemon-reload 
# systemctl enable grafana-server && systemctl start grafana-server
# ss -lnput | grep 3000
tcp    LISTEN     0      1024     :::3000                 :::*                   users:(("grafana-server",pid=8843,fd=8))

三、grafana添加Prometheus数据源
访问grafana的3000端口进行登录,默认用户名和密码为: admin/admin。第一次登陆修改更改密码!

Configuration -> Data Sources -> Prometheus

四、安装node_exporter
node_exporter用于收集主机运行信息,比如CPU、内存、磁盘等资源使用情况。

各种监控exporter,可以去官网下载

复制代码
#创建用户组
# groupadd prometheus
# useradd -g prometheus -m -s /sbin/nologin prometheus

#安装并解压
# tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz -C /usr/local/
# cd /usr/local/
# mv node_exporter-1.1.2.linux-amd64/ node_exporter

# 权限修改
# chown -R prometheus.prometheus /usr/local/node_exporter


# 创建systemd服务
cat > /usr/lib/systemd/system/node_exporter.service <<EOF

[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

# 启动服务
# systemctl daemon-reload
# systemctl enable node_exporter && systemctl start node_exporter
# systemctl status node_exporter
# ss -lnput | grep 9100
tcp    LISTEN     0      128    [::]:9100               [::]:*                   users:(("node_exporter",pid=78546,fd=3))
复制代码

五、调整Prometheus配置获取主机及应用监控数据,添加116、117两台主机作为agent端.

116/117主机安装agent客户端node_exporter,方法同上.

复制代码
#创建用户组
# groupadd prometheus
# useradd -g prometheus -m -s /sbin/nologin prometheus

#安装并解压
# tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz -C /usr/local/
# cd /usr/local/
# mv node_exporter-1.1.2.linux-amd64/ node_exporter

# 权限修改
# chown -R prometheus.prometheus /usr/local/node_exporter


# 创建systemd服务
cat > /usr/lib/systemd/system/node_exporter.service <<EOF

[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

# 启动服务
# systemctl daemon-reload
# systemctl enable node_exporter && systemctl start node_exporter
# systemctl status node_exporter
# ss -lnput | grep 9100
tcp    LISTEN     0      128    [::]:9100               [::]:*                   users:(("node_exporter",pid=78546,fd=3))
复制代码

调整Prometheus配置,并重启prometheus服务.

复制代码
# vim  prometheus.yml
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).
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
    - targets: ['10.0.2.118:9090']

#增加以下配置,其中job_name为自定义
  - job_name: 'kafaka'
    static_configs:
    - targets: ['10.0.2.116:9100','10.0.2.117:9100','10.0.2.118:9100']
复制代码

确定Prometheus已采集到数据

六、验证

使用Grafana添加图形,便于展示!(监控Linux主机推荐使用11074模板)!

 grafana模板地址:点击查看

Grafana插件扩展之饼图安装
有些时候导入的插件里面有饼图类型,但是Grafana饼图插件默认并没有安装,所以需要自行安装!(强烈推荐在线安装,避免版本的问题)!

官网:https://grafana.com/grafana/plugins/grafana-piechart-panel

# grafana-cli plugins install grafana-piechart-panel
# systemctl restart grafana-server         # 安装完成后重启生效

标签:node,exporter,主机,prometheus,grafana,Prometheus,usr,linux
From: https://www.cnblogs.com/wangluohunhun/p/17107525.html

相关文章

  • linux学习
    Linux是什么Linux是一个开源,免费的操作系统,具有稳定性,安全性,处理多并发。目前很多企业级的项目(c/c++/php/python/java/go)都会部署到linux/unix系统上linux的应用领域......
  • linux 信号 未决信号集和屏蔽信号集
    有的地方,将屏蔽又叫阻塞?在虚拟地址空间中,内核区的PCB中有两个64位的值(集合),分别表示64个信号的未决状态(未被处理)和屏蔽与否kill-l可以查看linux中的所有信号,共64个屏......
  • Linux操作系统启动流程汇总
    1、内核设计风格:   单内核:把所有功能统统都做进内核(Linux)(在Linux系统上,线程被称为"轻量级进程LWP")       模块化设计=核心+各种外部内核模块(ko,内核专......
  • Linux文件常用操作命令
    一、Linux文件和目录简单操作1.1查看文件ls查看当前目录下的文件如:-a显示所有文件及目录(ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)-l除文件名称......
  • Linux系统怎么配置静态IP?
    使用虚拟机学习Linux可能对新手来说是最简单有效的方式,这里使用的软件是VirtualBox,对新手来说也是比较容易上手的一款软件。如何使用VirtualBox以及如何在VirtualBox......
  • Linux 关于进程管理的总结
    系统计算机运行起来以后,就是由内核和运行在内核之上的众多进程来实现的(kernel+process) 内存分为:   线性内存:              物理内存: 计算机的所有......
  • Prometheus监控java
    1、使用jmxexporter暴露监控指标:java启动时通过指定参数 -javaagent的形式运行jmxexporter的jar包,进程内读取jvm运行时状态数据,转换为Prometheusmetrics格式,并......
  • docker安装(linux)
    1、进入管理模式suroot2、安装必要的系统工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm23、添加软件源信息yum-config-manager--add-repohttp:/......
  • linux基本功系列之sort命令实战
    前言大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第43篇文章。专栏地址:[linux基本功-基础命令专栏],此专栏是沐风晓月对Linux常用命令的汇总,希......
  • Linux学习-DAY8
    第5章用户身份与文件权限5.1用户身份与能力UID=0:      root用户UID=1~999:  系统用户UID=>1000:   普通用户注意:如果创建用户的时候手动指定了用户U......