Prometheus+grafana

3 篇文章 0 订阅
2 篇文章 0 订阅

Prometheus+grafana

安装部署

使用docker的方式部署

1. 创建项目目录
[root@129 ~]# mkdir /home/prometheus/

2.编写yml文件
[root@129 ~]# cd /home/prometheus/
[root@129 prometheus]# cat docker-compose.yml 
version: "3"
services:
  node-exporter:
    image: prom/node-exporter		
    container_name: node-exporter
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 9100:9100
    volumes:
      - /proc:/host/proc
      - /sys:/host/sys
      - /:/rootfs

  prometheus:
    image: prom/prometheus
    container_name: prometheus
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 9090:9090
    volumes:
      - /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 3000:3000
    volumes:
      - /opt/grafana-storage:/var/lib/grafana

# node-exporters主要是做系统数据收集,可以通过它监控到服务器的CPU、内存、磁盘、I/O等信息
 
3. 新建目录 prometheus,编辑配置文件 prometheus.yml
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
内容如下:
global:
  scrape_interval:     30s
  evaluation_interval: 30s

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus

  - job_name: node-exporter
    static_configs:
      - targets: ['192.168.78.129:9100']
        labels:
          instance: localhost

4. 新建空文件夹grafana-storage,用来存储数据
mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage

5. 启动
[root@129 prometheus]# cd /home/prometheus/
[root@129 prometheus]# docker-compose up -d --build
......
# 如果遇到这个报错 ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule,重启一下docker

# 会看到三个容器都已经运行起来了
[root@129 prometheus]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                                       NAMES
da937df1ba1a   grafana/grafana      "/run.sh"                38 seconds ago   Up 33 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana
bcc5ec9170d1   prom/prometheus      "/bin/prometheus --c…"   38 seconds ago   Up 33 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus
8b4460cbc878   prom/node-exporter   "/bin/node_exporter"     38 seconds ago   Up 34 seconds   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node-exporter

  • 查看 node-exporters,直接本机浏览器访问 http://192.168.78.129:9100/metrics
    会发现已经监控到了本机的相关信息
    在这里插入图片描述

  • 查看 Prometheus http://192.168.78.129:9090/
    在这里插入图片描述

  • 登录 grafana http://192.168.78.129:3000/
    初始账号和密码都是admin
    在这里插入图片描述

  • 创建数据源
    在这里插入图片描述

  • 选择添加—>然后选择Prometheus
    在这里插入图片描述

  • 点击 save&test

  • 导入grafana 模板
    在这里插入图片描述

  • 推荐11074号模板,也可以去grafana官网选择 tps://grafana.com/grafana/dashboards?dataSource=prometheus
    在这里插入图片描述
    在这里插入图片描述

  • 发现本机的一些指标都已经自动监控了

  • 也可以针对其他的服务器进行监控
    在这里插入图片描述

常用指标监控

prometheus :192.168.78.129
node-exporter:192.168.78.130

  • 安装 node-exporter
[root@130 home]# cd /home/ && mkdir node-exporter && cd node-exporter && vim docker-compose.yml
[root@130 node-exporter]# cat docker-compose.yml 
version: "3"
services:
  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 9100:9100
    volumes:
      - /proc:/host/proc
      - /sys:/host/
  • 启动
[root@130 node-exporter]# docker-compose up -d --build

[root@130 node-exporter]# docker ps
CONTAINER ID   IMAGE                COMMAND                CREATED         STATUS         PORTS                                       NAMES
fe941efd10c9   prom/node-exporter   "/bin/node_exporter"   6 seconds ago   Up 5 seconds   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node-exporter

  • 修改Prometheus的配置文件
[root@129 ~]# vim /opt/prometheus/prometheus.yml 

global:
  scrape_interval:     30s
  evaluation_interval: 30s

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus

  - job_name: node-exporter
    static_configs:
      - targets: ['192.168.78.129:9100']
        labels:
          instance: localhost

  # 添加内容
  - job_name: node-exporter_130
    static_configs:
      - targets: ['192.168.78.130:9100']

  • 重启 Prometheus
[root@129 ~]# cd /home/prometheus/
[root@129 prometheus]# docker-compose down && docker-compose up -d
  • 在 Prometheus 查看状态
    在这里插入图片描述
  • grafana 中查看
    在这里插入图片描述

进程监控

# 被监控的主机上安装process-exporter
[root@130 ~]# wget https://github.com/ncabatoff/process-exporter/releases/download/v0.5.0/process-exporter-0.5.0.linux-amd64.tar.gz
[root@130 ~]# tar xf process-exporter-0.5.0.linux-amd64.tar.gz -C /usr/local/
[root@130 ~]# cd /usr/local/process-exporter-0.5.0.linux-amd64/
[root@130 process-exporter-0.5.0.linux-amd64]# vim process-name.yaml
process_names:
  - name: "{{.Matches}}"
    cmdline:
    - 'httpd'

  - name: "{{.Matches}}"
    cmdline:
    - 'vsftpd'
[root@130 process-exporter-0.5.0.linux-amd64]# nohup ./process-exporter -config.path process-name.yaml & 
# 查看监听端口是否起来
[root@130 ~]# netstat -tunlp|grep 9256
tcp6       0      0 :::9256                 :::*                    LISTEN      7864/./process-expo 

# 测试
curl http://localhost:9256/metrics

# 修改Prometheus的配置文件
[root@129 ~]# vim /opt/prometheus/prometheus.yml 
...
添加
  - job_name: 'process'
    static_configs:
      - targets: ['192.168.78.130:9256']

# 重启Prometheus
[root@129 prometheus]# docker-compose down && docker-compose up -d
  • 查看targets已经up
    在这里插入图片描述
  • 查看监控到的信息
    在这里插入图片描述
  • 被监控主机上停止服务后查看
    在这里插入图片描述

docker容器的监控

# 被监控的主机上安装cAdvisor收集容器数据
[root@130 home]# mkdir cadvisor
[root@130 home]# cd cadvisor/
[root@130 cadvisor]# vim docker-compose.yml
version: "3"
services:
  cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    hostname: cadvisor
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    ports:
      - "8081:8080"
    devices:
      - "/dev/kmsg"
    restart: always

# 启动
[root@130 cadvisor]# dockers-compose up -d --build
....
  • 启动可通过浏览器访问到cadvisor页面
    在这里插入图片描述
  • 修改Prometheus配置文件
[root@129 ~]# vim /opt/prometheus/prometheus.yml 
...
添加
  - job_name: 'docker'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.78.130:8081']
        labels:
          instance: "192.168.78.130"

...
  • 重启Prometheus
[root@129 prometheus]# docker-compose down && docker-compose up -d
  • 查看一下 Targets 已经 up
    在这里插入图片描述
  • grafana导入模板
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 可以看到对应的容器数据了
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值