监控概述
- 监控就是实时的帮助我们来监控或者探测我们部署的服务是否正常运行
常用的监控
- zabbix
- 优点:组件比较全,缺点:性能不高(zabbix底层用的是Msql数据库)
- 当zabbix监控大型集群的时候,怎么优化(如何优化数据库)
- 当数据库中一个表中数据超过2000w的时候,数据库的性能急剧下降
- 阿里云云监控
- 腾讯云蓝鲸监控
- 普罗米修斯
- 性能比较高,底层使用(时序数据库,时序数据库性能比Mysql数据库性能高很多)
- 原生支持监控容器
普罗尼修斯监控流程
普罗米修斯监控分为两种情况
- 携带metrics接口的服务(kubernetes、ETCD、Docker)
- 不携带metrics接口的服务(Nginx、mysql、Linux主机),针对于不携带metrics接口的服务,我们需要安装一个exporter插件
部署普罗米修斯
1. 实验环境
主机名 外网IP地址 内网IP地址 配置
Prometheus 192.168.15.71 172.16.1.71 内存4G
Web01 192.168.15.7 172.16.1.7
2. 安装Prometheus软件
- Prometheus主机
1. 安装Prometheus软件包
rz -E prometheus-2.25.0.linux-amd64.tar.gz
tar -xf prometheus-2.25.0.linux-amd64.tar.gz -C /usr/local/
2. 建立Prometheus超链接
ln -s /usr/local/prometheus-2.25.0.linux-amd64 /usr/local/prometheus
3. 将Prometheus添加至系统环境变量
vim /etc/profile
...
export PROMETHEUS_HOME=/usr/local/prometheus
PATH=$PATH:$PROMETHEUS_HOME
export PATH
4. 重载系统环境变量文件
source /etc/profile
5. 查看Prometheus的版本信息
prometheus --version # 如果可以查看到Prometheus的版本信息,那么就表示Prometheus安装完成了
6. 启动Prometheus服务
prometheus --config.file=/usr/local/prometheus/prometheus.yml
3. 测试Prometheus的监控本机状态
使用普罗米修斯监控Linux主机
Linux主机下载exporter插件链接:
https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
1. 在Linux主机安装exporter插件
- Web01主机
1. Linux主机安装exporter插件
rz -E node_exporter-1.1.2.linux-amd64.tar.gz
tar -xf node_exporter-1.1.2.linux-amd64.tar.gz -C /usr/local/
2. 建立node_exporter超链接
ln -s /usr/local/node_exporter-1.1.2.linux-amd64/ /usr/local/node_exporter
ls /usr/local/node_exporter
# LICENSE node_exporter(执行文件) NOTICE
3. 将node_exporter执行文件目录添加至环境变量
vim /etc/profile
....
export NODE_EXPORTER=/usr/local/node_exporter
export PATH=$PATH:$NODE_EXPORTER
4. 重载系统环境变量文件
source /etc/profile
5. 启动node_exporter服务
node_exporter
6. 查看node_exporter监听的端口号
netstat -lntp
# tcp6 0 0 :::9100 :::* LISTEN 1701/node_exporter
2. 将Linux主机的exporter插件添加至Prometheus软件服务
- Prometheus主机
1. 修改Prometheus配置文件
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
...
- job_name: 'Linux Node' # 添加监控项的名字
static_configs:
- targets: ['172.16.1.7:9100'] # 监控主机的ip地址和端口号
2. 启动Prometheus服务
prometheus --config.file=/usr/local/prometheus/prometheus.yml
3. 测试Prometheus的监控Linux主机状态
使用Grafana展示数据
Grafana是业内做数据展示最好的一款产品,官网:https://grafana.com/
- Prometheus主机
1. 安装Grafana软件
rz -E grafana-7.3.6-1.x86_64.rpm
yum -y install grafana-7.3.6-1.x86_64.rpm
2. 启动Grafana软件服务
systemctl start grafana-server.service
netstat -lntp # 查看grafana服务监听的端口号
# tcp6 0 0 :::3000 :::* LISTEN 1997/grafana-server
登陆Grafana展示
监控Linux主机单个状态信息
监控Linux主机整体的状态信息
Prometheus各种展示页面状态码: https://grafana.com/grafana/dashboards?dataSource=prometheus
使用Prometheus监控Mysql数据库
Prometheus监控Mysql数据库官网教程:https://github.com/prometheus/mysqld_exporter
实验环境
主机名 外网IP地址 内网IP地址 配置
Prometheus 192.168.15.71 172.16.1.71 内存4G
db01 192.168.15.51 172.16.1.51
1. 在Mysql主机安装exporter插件
- db01主机
1. db01主机安装exporter插件
rz -E mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
2. 建立mysql_exporter超链接
ln -s /usr/local/mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
ls /usr/local/mysqld_exporter
# LICENSE mysqld_exporter(执行文件) NOTICE
3. 创建一个数据库用户
mysql -uroot -p123
CREATE USER 'exporter'@'%' IDENTIFIED BY '123'; # 创建一个数据库用户
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%'; # 授权过程,复制客户端,给创建的数据库用户分配一个权限
use mysql; # 切换到mysql库中
select Host,User from user; # 查看创建的用户信息
# Host User
# % exporter
4. 创建数据库用户和密码文件
vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=172.16.1.51
user=exporter
password=123
5. 启动mysqld_exporter服务
cd /usr/local/mysqld_exporter/
./mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf"
# INFO[0000] Listening on :9104 source="mysqld_exporter.go:283"
如果启动mysqld_exporter服务出现
Access denied for user ‘root‘@‘db01‘(using password: YES) source=“exporter.go:146“报错,
请参考下一篇博文解决方法
2. 将Mysql主机的exporter插件添加至Prometheus软件服务
- Prometheus主机
1. 修改Prometheus配置文件
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
...
- job_name: 'Mysql Server' # 添加监控项的名字
static_configs:
- targets: ['172.16.1.51:9104'] # 监控主机的ip地址和端口号
2. 启动Prometheus服务
prometheus --config.file=/usr/local/prometheus/prometheus.yml
3. 测试Prometheus的监控Mysql主机状态
4. Mysql主机状态添加至Garafana展示