docker+prometheus+mysql+redis+linux主机监控

环境准备
开启路由转发
#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


 

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 如何使用prometheus监控mysql? 使用prometheus监控mysql需要安装一个名为mysqld_exporter的exporter,该exporter可以在MySQL实例上运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询MySQL指标,如查询数据库连接数、查询响应时间、查询缓存使用情况等。 2. 如何使用prometheus监控redis? 使用prometheus监控redis需要安装一个名为redis_exporter的exporter,该exporter可以在Redis实例上运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询Redis指标,如查询内存使用情况、查询命令执行次数、查询客户端连接数等。 3. 如何使用prometheus监控docker? 使用prometheus监控docker需要安装一个名为node_exporter的exporter,该exporter可以在docker主机上运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询docker主机指标,如查询CPU使用情况、查询内存使用情况、查询磁盘空间等。 4. 如何使用prometheus监控k8s集群的过程? 使用prometheus监控k8s集群需要安装一个名为kube-state-metrics的exporter,该exporter可以在k8s集群中运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询k8s集群指标,如查询pod数量、查询节点状态、查询资源使用情况等。 5. 如何使用prometheus自动发现功能? prometheus自动发现功能可以通过配置文件中的文件SD(file_sd_config)或kubernetes SD(kubernetes_sd_config)进行配置。其中,文件SD允许你从文件中读取目标列表,而kubernetes SD允许你通过API服务器自动发现k8s集群中的目标。你可以在Prometheus配置文件中添加这些配置,并在Prometheus中启用自动发现功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值