安装dokcer
Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。下面安装的是社区版
1、Docker 要求 CentOS 系统的内核版本高于 3.10
通过 uname -r 命令查看你当前的内核版本
uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y update
3、卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源,并更新 yum 的包索引
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
7、安装docker
yum -y install docker-ce-18.03.1.ce # 这是指定版本安装
yum -y install docker-ce # 这是安装最新稳定版
8、启动并加入开机启动
systemctl start docker
systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker --version
docker -V
10、卸载docker
yum -y remove docker-engine
docker-compose的安装就比较简单,
官网参考地址: Install Docker Compose | Docker Documentation
# docker compose安装步骤
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
sudo chmod +x /usr/local/bin/docker-compose
# 安装是否成功 检查版本
docker-compose --version
借助docker来安装,新建目录docker-zlp,在里面创建文件docker-compose.yml,内容如下:
version: "3"
services:
prometheus:
image: prom/prometheus:v2.4.3
container_name: 'prometheus'
volumes:
- ./prometheus/:/etc/prometheus/ #映射prometheus的配置文件
- /etc/localtime:/etc/localtime:ro #同步容器与宿主机的时间,这个非常重要,如果时间不一致,会导致prometheus抓不到数据
ports:
- '9090:9090'
监控web应用性能指标
在docker-zlp目录下新增prometheus目录,在里面创建prometheus配置文件prometheus.yml,内容如下:
global: #全局配置
scrape_interval: 15s #全局定时任务抓取性能数据间隔
scrape_configs: #抓取性能数据任务配置
- job_name: 'tulingmall-order' #抓取订单服务性能指标数据任务,一个job下可以配置多个抓紧的targets,比如订单服务多个实例机器
scrape_interval: 10s #每10s抓取一次
metrics_path: '/actuator/prometheus' #抓取的数据url
static_configs:
- targets: ['192.168.0.31:8844'] #抓取的服务器地址
labels:
application: 'tulingmall-order-label' #抓取任务标签
- job_name: 'prometheus' #抓取prometheus自身性能指标数据任务
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
在docker-zlp目录下执行如下命令启动prometheus
docker-compose up -d
浏览器访问prometheus:http://192.168.31.60:9090
项目中配置prometheus, pom.xml中引入jar
ps:这个地方看了别的大佬的,不是很明白,有明白的大佬指点一下
org.springframework.boot
spring-boot-starter-actuator
io.micrometer
micrometer-registry-prometheus
服务的配置文件里增加开启springboot admin监控的配置,如下:
management: #开启SpringBoot Admin的监控
endpoints:
promethus:
enable: true
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
先用docker来安装下grafana,在上面的docker-compose.yml文件里加入grafana的安装配置
version: "3"
services:
prometheus:
image: prom/prometheus:v2.4.3
container_name: 'prometheus'
volumes:
- ./prometheus/:/etc/prometheus/ #映射prometheus的配置文件
- /etc/localtime:/etc/localtime:ro #同步容器与宿主机的时间,这个非常重要,如果时间不一致,会导致prometheus抓不到数据
ports:
- '9090:9090'
grafana:
image: grafana/grafana:5.2.4
container_name: 'grafana'
ports:
- '3000:3000'
volumes:
- ./grafana/config/grafana.ini:/etc/grafana/grafana.ini #grafana报警邮件配置
- ./grafana/provisioning/:/etc/grafana/provisioning/ #配置grafana的prometheus数据源
- /etc/localtime:/etc/localtime:ro
env_file:
- ./grafana/config.monitoring #grafana登录配置
depends_on:
- prometheus #grafana需要在prometheus之后启动
在docker-zlp目录下新增grafana目录,在里面创建文件config.monitoring,内容如下:
GF_SECURITY_ADMIN_PASSWORD=password #grafana管理界面的登录用户密码,用户名是admin
GF_USERS_ALLOW_SIGN_UP=false #grafana管理界面是否允许注册,默认不允许
在grafana目录下创建目录provisioning,在里面创建datasources目录,在datasources目录里新建文件datasource.yml,内容如下:
# config file version
apiVersion: 1
deleteDatasources: #如果之前存在name为Prometheus,orgId为1的数据源先删除
- name: Prometheus
orgId: 1
datasources: #配置Prometheus的数据源
- name: Prometheus
type: prometheus
access: proxy
orgId: 1
url: http://prometheus:9090 #在相同的docker compose下,可以直接用prometheus服务名直接访问
basicAuth: false
isDefault: true
version: 1
editable: true
在grafana目录下创建目录config,在里面创建文件grafana.ini,内容如下:
#################################### SMTP / Emailing ##########################
# 配置邮件服务器
[smtp]
enabled = true
# 发件服务器
host = smtp.qq.com:465
# smtp账号
user = [email protected]
# smtp 授权码,授权码获取请参看课上视频演示
password = test123456
# 发信邮箱
from_address = [email protected]
# 发信人
from_name = uwanyi # 注意此处不能是中文,否则报错,应该有配置编码的地方,目前没发现
用docker compose启动grafana,访问grafana页面:http://192.168.0.31:3000,用户名为admin,密码为password
grafana-dashboard文件下载:
grafana-dashboard-mysql-redis-web.zip-Web服务器文档类资源-CSDN下载
点击左边的加号并import一个我们事先准备好的可视化指标文件web-dashboard.json(网上可以找现成的)
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
2、执行部署脚本
#!/bin/bash
set -e
tar -xvf ./node_exporter-1.3.1.linux-amd64.tar.gz
if [ -d ./node_exporter-1.3.1.linux-amd64/ ];then
sudo cp ./node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/
else
echo "请检查 node_exporter 所在文件目录"
exit 1
fi
sudo touch /usr/lib/systemd/system/node_exporter.service
sudo chmod o+w /usr/lib/systemd/system/node_exporter.service
sudo chmod o+x /usr/local/bin/node_exporter
cat << EOF > /usr/lib/systemd/system/node_exporter.service
[Service]
User=$USER
Group=$USER
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
EOF
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
sudo systemctl status node_exporter
echo 'end success'