本文只是用做prometheus监控参考,非全面监控,请各位看官,根据实际环境进行调整。

1 环境准备

#系统环境

root@prometheus113:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.2 LTS
Release:	20.04
Codename:	focal

#基础软件安装&ntp时间同步

sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
#刷新源
apt-get update

#安装基础软件

apt install net-tools wget vim bash-completion lrzsz unzip zip ntpdate -y

#ntp时间同步

#修改时区
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ntpdate ntp3.aliyun.com 

echo "*/3 * * * * ntpdate ntp3.aliyun.com  &> /dev/null" > /tmp/crontab

crontab /tmp/crontab

#安装docker
#阿里脚本安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

or

apt install docker -y
apt install docker.io -y

2 配置安装prometheus-本机监控

#创建prometheus.yml,这里放在/data/prometheus文件目录下,这个配置用来监控本机
#vim /data/prometheus/prometheus.yml

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Defaul
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is eve
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
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']

#docker启动镜像,并将刚刚的文件映射进去

docker run -d --name=prometheus113 --restart=always\
    -p 9090:9090 \
    -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus

#查看下docker运行状态

root@prometheus113:/data/prometheus# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
969f0d86a540        prom/prometheus     "/bin/prometheus --c…"   About a minute ago   Up About a minute   0.0.0.0:9090->9090/tcp   prometheus113

#访问web,确认是否成功
#http://192.168.3.113:9090
在这里插入图片描述

3 Grafana 部署

#启动命令,默认使用最新版本

docker run -d --name=grafana113 --restart=always -p 3000:3000 grafana/grafana

#查看容器是否启动正常

root@prometheus113:/data/prometheus# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
f870f773bbf8        grafana/grafana     "/run.sh"                26 seconds ago      Up 25 seconds       0.0.0.0:3000->3000/tcp   grafana113
969f0d86a540        prom/prometheus     "/bin/prometheus --c…"   13 minutes ago      Up 13 minutes       0.0.0.0:9090->9090/tcp   prometheus113

#登陆web查看,默认用户名密码都为admin
#http://192.168.3.113:3000/
在这里插入图片描述
#添加prometheus的数据源
在这里插入图片描述
#填入对应的地址保存及测试
#http://192.168.3.113:9090
在这里插入图片描述
#导入dashboard仪表盘
在这里插入图片描述

4 openstack监控接入

#新建验证文件
#vim admin.prometheus

OS_PROJECT_DOMAIN_NAME=Default
OS_USER_DOMAIN_NAME=Default
OS_PROJECT_NAME=admin
OS_USERNAME=admin
OS_PASSWORD=admin.123
OS_IDENTITY_API_VERSION=3
OS_AUTH_URL=http://192.168.1.100:5000/v3/

#启动openstack监控容器

docker run -itd \
--name=openstack100 \
--net=host \
--env-file=/data/prometheus/admin.prometheus \
--restart=unless-stopped moghaddas/prom-openstack-exporter

#查看是否顺利跑起来

root@prometheus113:/data/prometheus# docker ps -a
CONTAINER ID        IMAGE                               COMMAND                  CREATED              STATUS              PORTS                    NAMES
7ce37f1965e3        moghaddas/prom-openstack-exporter   "/bin/sh /wrapper.sh"    About a minute ago   Up About a minute                            openstack100
f870f773bbf8        grafana/grafana                     "/run.sh"                About an hour ago    Up About an hour    0.0.0.0:3000->3000/tcp   grafana113
969f0d86a540        prom/prometheus                     "/bin/prometheus --c…"   2 hours ago          Up 49 minutes       0.0.0.0:9090->9090/tcp   prometheus113

#查看是否有采集到数据
在这里插入图片描述
#在prometheus server的配置文件中加入job
#vim /data/prometheus/prometheus.yml

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'openstack100'
    static_configs:
    - targets: ['192.168.1.113:9183']

#重启prometheus server

docker restart prometheus113

#导入官方仪表盘7924,这个是默认的,有很多字段都得要自己写监控脚本,自行根据实际使用接入
在这里插入图片描述
在这里插入图片描述

5 openstac宿主机监控

#宿主机安装docker,这里就不多说了,见1安装即可
#docker安装node-exporter

  docker run -d \
  --net="host" \
  --pid="host" \
  --name controller004 --restart=always \
  -v "/:/host:ro,rslave" \
  quay.io/prometheus/node-exporter \
  --path.rootfs /host

#查看宿主机是否有运行

root@controller004:~# docker ps -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED              STATUS              PORTS               NAMES
b3214aaf0d96        quay.io/prometheus/node-exporter   "/bin/node_exporter …"   About a minute ago   Up About a minute                       controller004

#查看数据是否正常采集
#http://192.168.1.4:9100/metrics
在这里插入图片描述
#在prometheus server配置添加任务job任务,并重启容器

  - job_name: 'controller004'
    static_configs:
    - targets: ['192.168.1.4:9100']

#导入仪表盘11207
在这里插入图片描述

X.至此结束

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐