环境初始化
关闭防火墙
setenforce 0
vim /etc/selinux/config
##################内部代码###################
SELINUX=disabled #关闭防火墙
############################################
安装docker
#卸载yum源之前的docker安装包
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装 yum-utils
sudo yum install -y yum-utils
# 配置docker yum 源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 查看yum源中的docker
yum list docker-ce --showduplicates | sort -r
# 安装docker服务
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动docker服务
systemctl start docker
安装Prometheus
docker pull安装包
docker pull prom/node-exporter #普罗米修斯指标数据收集组件
docker pull prom/mysqld-exporter:v0.14.0 #监控数据库
docker pull google/cadvisor #容器监控
docker pull prom/prometheus #普罗米修斯监控
docker pull grafana/grafana #普罗米修斯监控界面
安装node-exporter
docker run -d --name node-exporter --restart=always -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter
测试访问地址
exporter测试访问地址 再次之前需要开放防火墙端口,可以看一下下面的防火墙端口开放技术
http://localhost:9100/metrics
安装google/cadvisor
docker run -d -p 8080:8080 --name cadvisor --privileged=true -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro google/cadvisor:latest
启动不成功,包下列错误,执行下列代码
mount –o rmount,rw ‘/sys/fs/cgroup’
ln –s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu
测试访问
http://192.168.233.99:8080/containers/
部署配置prometheus
创建存放prometheus的文件夹
mkdir /opt/prometheus
切换到prometheus目录下
cd /opt/prometheus/
编写prometheus.yml文件
vim prometheus.yml
配置peometheus.yml
###############################配置内容###########################
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: mysqlOA
static_configs:
- targets: ['192.168.0.200:9104'] #按照实际的ip配置
labels:
instance: mysqlOA
########################################################
###############################配置内容###########################
global: #控制Prometheus服务器的全局配置
scrape_interval: 60s #配置拉取数据的时间间隔,默认为1分钟。
evaluation_interval: 60s #规则验证(生成alert)的时间间隔,默认为1分钟。
rule_files: #
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs: #配置块:配置采集目标相关, prometheus监视的目标。Prometheus自身的运行信息可以通过HTTP访问,所以Prometheus可以监控自己的运行数据。
- job_name: prometheus #监控作业的名称
static_configs: #表示静态目标配置,就是固定从某个target拉取数据
- targets: ['localhost:9090'] #指定监控的目标,其实就是从哪儿拉取数据。Prometheus会从http://hadoop1:9090/metrics上拉取数据。
labels:
instance: prometheus
- job_name: mysqlOA
static_configs:
- targets: ['192.168.0.200:9104'] #按照实际的ip配置
labels:
instance: mysqlOA
#######################################################
启动prometheus
docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus
验证
ss -anptl | grep 9090
访问 访问之前先开房9090端口
Ip:9090/graph
启动grafana
# 创建grafana-storage目录
mkdir /opt/grafana-storage
# 给grafana-storge赋予权限
chmod 777 -R /opt/grafana-storage
# 启动运行grafana容器
docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana --network grafana/grafana
验证
ss -anptl | grep 3000
访问 grafana
ip:3000/
默认管理员账号密码都是admin
防火墙开放端口
如果关闭防火墙则不用配置
# 开启防火墙端口号
firewall-cmd --permanent --add-port=9100/tcp
# 重启防火墙
firewall-cmd --reload
# 查询端口是否被开放
firewall-cmd --query-port=9100/tcp
grafana关联prometheus
1、登录到grafana 地址IP:3000 初始账号密码都是admin
2、添加prometheus数据源
docker inspect prometheus | grep IPAdd #查容器IP
添加完成prometheus数据源
3、添加模版
Gratana模版地址 https://grafana.com/grafana/dashboards/
下载模版 输入模版编号下载