环境准备
开启路由转发
#sudo vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
查看是否添加成功
sudo sysctl -p
添加yum源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
建立缓存空间
yum makecache
补包
yum install -y yum-utils device-mapper-persistent-data lvm2
安装指定版本docker
sudo yum install docker-ce-20.10.21 docker-ce-cli-20.10.21 containerd.io
查看docker版本
docker -v
将普通用户添加进docker组,后面打命令则不用使用sudo提权
sudo usermod -aG docker xxx
启动即可
sudo systemctl start docker && systemctl enable docker
配置阿里云加速器
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://mvc15w1u.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
####################################################################
搭建prometheus
1、下载镜像包
docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana
2、创建grafana可视化
docker run -p 3000:3000 --name grafana -d grafana/grafana
3、创建exporter容器
docker run -d -p 9200:9100 --name exporter --restart=always -v "/docker/prometheus/exporter:/host/proc:ro" -v "/docker/prometheus/exporter:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter:latest
4、编写prometheus.yml文件
sudo vim /docker/prometheus/prometheus.yml
#####################################################################
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['192.168.xxx.xxx:9300']
labels:
instance: prometheus
- job_name: node-exporter
static_configs:
- targets: ['192.168.xxx.xxx:9200']
labels:
instance: exporter
- job_name: redis_exporter
static_configs:
- targets: ['192.168.xxx.xx:9600']
labels:
instance: redis_exporter
- job_name: mysql_exporter
static_configs:
- targets: ['192.168.xxx.xx:9104']
labels:
instance: mysql_exporter
#######################################################################
5、创建Prometheus
docker run -d --name server --restart=always -p 9300:9090 -v /docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v prometheus:/prometheus prom/prometheus:latest
6、登录grafanaweb页面
初始化账密:
admin
admin
7、选择模板8919监控Linux主机
多种系统redis_exporter
https://github.com/oliver006/redis_exporter/releases
下载redis_exporter
sudo wget https://github.com/oliver006/redis_exporter/releases/download/v1.62.0/redis_exporter-v1.62.0.linux-arm.tar.gz
解压
sudo tar xf redis_exporter-v1.62.0.linux-amd64.tar.gz
改名
sudo mv redis_exporter-v1.62.0.linux-amd64 redis_exporter
########################
启动redis_exporter
cd redis_exporter
使用systemd方式启动
创建redis_exporter启动文件
sudo vim /etc/systemd/system/redis_exporter.service
[Unit]
Description=redis_exporter
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target
[Service]
ExecStart=/docker/prometheus/redis_exporter/redis_exporter -redis.addr localhost:6369 -redis.password xxxx -web.listen-address :9600
[Install]
WantedBy=multi-user.target
Restart=always
#这里的有密码登录redis。如果你是无密码,就去掉-redis.password ,
#web.listen-address 这里是指自定义端口
#-redis.addr这是你要采集数据的redis IP跟端口
# systemctl daemon-reload
# systemctl enable redis_exporter
# systemctl start redis_exporter
查看状态
# systemctl status redis_exporter
如果状态为Active: active (running)则表示redis_exporter启动成功
下载mysql_exporter
sudo wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
解压
tar xvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /docker/prometheus/
改名
sudo mv mysqld_exporter-0.12.1.linux-amd64 mysql_exporter
进入mysql_exporter安装路径
cd mysql_exporter
创建my.cnf,存放用户密码
sudo cat > mysql.cnf <<EOF
[client]
user=exporte ##这里是你创建的MySQL用户
password=xxxxx ##这是你创建MySQL用户的密码
EOF
使用systemd方式启动
cat >/usr/lib/systemd/system/mysqld_exporter.service <<EOF
[Unit]
Description=Prometheus##这是你创建MySQL用户的密码
[Service]
Environment=DATA_SOURCE_NAME=exporter:Prometheus@(localhost:3306)/
##这里的exporter:Prometheus分别是你的用户与密码,跟刚才创建的mysql.cnf文件里面的一样
##localhost:3306这里的localhost是本地ip的意思,如果在另外的服务器则填写redis部署在那台的服务器IP跟端口即可
ExecStart=/docker/prometheus/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf --web.listen-address=:9104
##/docker/prometheus/mysqld_exporter/mysqld_exporter 这个路径是你解压mysql_exporter后的路径
##--config.my-cnf(固定写法无需更改)/usr/local/mysqld_exporter/.my.cnf 这个路径是刚才创建的mysql.cnf文件的路径,一般放在解压后的目录里
##--web.listen-address=:9104 这里是你这个mysql_exporter的端口,默认9104,可以更改
##以下无需更改
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
先加载文件在启动,不能乱顺序
sudo systemctl enable mysqld_exporter
sudo systemctl start mysqld_exporter
查看端口
netstat -ntl | grep 9104
访问你的mysqld_exporterIP:9104就会有数据,没有数据的话说明mysql.cnf文件的连接信息错误
################参考文档
https://www.cnblogs.com/st2021/p/14643161.html
访问prometheus
你的IP:9300
查看status << Targets
如果连接成功会显示蓝色,红色表示无法连接到你的组件,如redis_exporter
访问grafana
你的IP:3000
接入模板
监控Linux主机模板号
8919
监控mysql模板
7363
监控redis模板
18835