什么是 Prometheus

Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库(TSDB),自2012年起,许多公司及组织已经采用 Prometheus,并且该项目有着非常活跃的开发者和用户社区,现在已经成为一个独立的开源项目,并且保持独立于任何公司,Prometheus2016 加入 CNCF(Cloud Native Computing Foundation), 作为在 kubernetes 之后的第二个由基金会主持的项目。


什么是 Grafana

Grafana 是一款用 Go 语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用 grafana 的公司有很多,如 paypalebayintel 等。


什么是 Node Exporter

Node Exporter 用于采集服务器层面的运行指标,包括机器的 loadavgfilesystemmeminfo 等基础监控,类似于传统主机监控维度的 zabbix-agent
Node Exporterprometheus 官方提供、维护,不会捆绑安装,但基本上是必备的 exporter


架构图及机器划分

76889-f5ggcd73mq.png

主机名 IP 作用
dev-of-test-30 10.18.30.30 Prometheus+Grafana+Node Exporter
dev-of-test-31 10.18.30.31 要监控的机器+Node Exporter

机器初始化

# 以下操作所有机器都需要
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && systemctl stop firewalld && systemctl disable firewalld && init 6

部署 Prometheus

设置配置文件

# 创建 prometheus 配置文件
mkdir -p /data/prometheus && vim /data/prometheus/prometheus.yml
global:
  scrape_interval: 60s
  evaluation_interval: 60s
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: Prometheus
  # 组名,用来再 Grafana 上更直观查看信息
  - job_name: Server
    scrape_interval: 10s
    scrape_timeout: 5s
    static_configs:
      - targets:
        # 安装 Node Exporter 的机器,Node Exporter 默认端口为 9100
        # 30 机器我这里修改为 9200 端口
        - 10.18.30.30:9200
        - 10.18.30.31:9100

# 创建 prometheus 数据目录        
mkdir /data/prometheus/data && chmod -R 777 /data/prometheus/data/

使用 docker 部署 prometheus

# 安装 docker
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo && yum install -y docker-ce.x86_64 && systemctl start docker && systemctl enable docker

# 启动 prometheus
docker run -itd -p 9090:9090 --mount type=bind,source=/data/prometheus/prometheus.yml,target=/etc/prometheus/prometheus.yml --mount type=bind,source=/data/prometheus/data,target=/prometheus --name cf_prometheus prom/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --storage.tsdb.retention=15d --query.max-concurrency=50 --web.enable-lifecycle

部署 Node Exporter

30 上部署 Node Exporter,此处使用 9200 端口,主要是为了展示如何使用其他端口

# 设置开机自动启动 Node Exporter
chmod 755 /etc/rc.d/rc.local && cat >> /etc/rc.d/rc.local <<EOF
nohup /data/node_exporter/node_exporter --web.listen-address=":9200" > /data/node_exporter/node_exporter.log 2>&1 &
EOF

# 创建 Node Exporter 目录和下载对应的包
mkdir -p /data/node_exporter && chmod -R 755 /data/node_exporter/ && cd /data/node_exporter/ && wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz && tar xvf node_exporter-1.0.1.linux-amd64.tar.gz && mv node_exporter-1.0.1.linux-amd64/* . && rm -rf node_exporter-1.0.1.linux-amd64

# 启动 Node Exporter,--web.listen-address=":9200" 指定了 Node Exporter 监听 9200 端口
nohup /data/node_exporter/node_exporter --web.listen-address=":9200" > /data/node_exporter/node_exporter.log 2>&1 &

31 上部署 Node Exporter

# 设置开机自动启动 Node Exporter
chmod 755 /etc/rc.d/rc.local && cat >> /etc/rc.d/rc.local <<EOF
nohup /data/node_exporter/node_exporter > /data/node_exporter/node_exporter.log 2>&1 &
EOF

# 创建 Node Exporter 目录和下载对应的包
mkdir -p /data/node_exporter && chmod -R 755 /data/node_exporter/ && cd /data/node_exporter/ && wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz && tar xvf node_exporter-1.0.1.linux-amd64.tar.gz && mv node_exporter-1.0.1.linux-amd64/* . && rm -rf node_exporter-1.0.1.linux-amd64

# 启动 Node Exporter,默认监听的是 9100 端口
nohup /data/node_exporter/node_exporter > /data/node_exporter/node_exporter.log 2>&1 &

部署 Grafana

30 上部署 Grafana

# 创建 grafana 数据目录
mkdir -p /data/grafana && chmod -R 755 /data/grafana

# 启动 grafana
docker run -itd -p 3000:3000 --name cf_grafana --mount type=bind,source=/data/grafana,target=/etc/grafana/provisioning grafana/grafana

查看 Prometheus 信息,配置 Grafana

访问 http://10.18.30.30:9090/targets

可以见到两台安装了 Node Exporter 的机器已经正常启动,并有数据到 prometheus

45936-mc7u4szfbsg.png

访问 http://10.18.30.30:3000/login

默认用户和密码为:admin / admin

添加数据源

84511-ik0mhvw8luk.png

52286-5qdybhenhju.png

49776-5palgw173rr.png

47733-celv9jycet.png

06401-oioll3x8iag.png

26655-bptgt280x67.png

导入模板

68717-xbmjaadfx5k.png

35835-n6fu3fkwt7b.png

18718-hprrjdd1wj.png

查看状态看板

模板导入成功后会自动跳转到状态看板

57028-usm9awhxef.png

54661-lu76kubbr5m.png

16040-pdxyuezf2ce.png

67466-0w0hzwrko59.png

至此,就实现了 Prometheus+Grafana+Node Exporter 实现监控服务器基础状态了!


文章作者: Runfa Li
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Linux 小白鼠
Monitor Linux Linux Centos7 prometheus grafana 监控 Node Exporter node_exporter
觉得文章不错,打赏一点吧,1分也是爱~
打赏
微信 微信
支付宝 支付宝