pmm系列~安装与监控
0 注意点
- 修改docker默认存储路径 vim /etc/sysconfig/docker 在启动项OPTIONS=添加 --graph = "datadir" 并重启服务
-
1 docker info | grep -i dir 查看docker默认存储位置 2 rsync -aP /var/lib/docker /data/ 3 vim /usr/lib/systemd/system/docker.service /usr/bin/dockerd-current 添加--graph /data/docker4 systemctl daemon-reload && systemctl restart docker 5 docker info | grep -i dir
-
- 浏览器推荐用chrome
- 确保宿主机时间和时区正确,否则可能导致PMM进程内部挂掉导致无法注册
-
ntpdate cn.pool.ntp.org rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-
- pmm被监控机下线时并不能remove node节点 需要靠过期时间来进行遗忘
1 server端执行
docker rm $(docker ps -a -q) #销毁容器
docker pull percona/pmm-server:2
docker volume create pmm-data
docker volume inspect pmm-data 可以查看到对应的数据卷挂载目录
docker run -d -p 80:80 -p 9000:9000 -p 443:443 -p 8500:8500 -p 8123:8123 -v pmm-data:/srv --name pmm-server --restart always percona/pmm-server:2
docker exec -t pmm-server change-admin-password "123456"
9000:ck后台慢查询接口 443:pmm-agent通信端口 80:对外服务nginx端口
8500:未知
8123:ck测试接口
1 volume说明 1 在我们创建 Docker 卷时,如果不指定具体目录 Docker 会把卷的数据全部放在 $docker_data/volumes/容器名/_data/ 目录下因此我们在容器中挂载卷的目录下操作文件 2 本地操作挂载目录 会同步到容器中,这也是为啥用数据卷 能实现同步和持久化
3 配置文件说明
位置 容器内 /etc/supervisord.d/
重启 supervisord restart service
yum install pmm-client -y pmm-admin config --server-insecure-tls --server-url=https://admin:123456@pmm-serve_ipr:443 注册 如果节点已存在 加--force
会在 /usr/local/percona/config/pmm-agent.yml 写入相应配置并启动pmm-agent
3 web界面修改
PMM->SETTING
- Metrcis resolution采集周期
- Advanced Settings-> Data retention 采集数据保留时间 数据包含注册信息和监控数据-默认保留30天
- Alertmanager Integration->Alertmanager URL alter 报警接口信息
GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'pmm'@'127.0.0.1' IDENTIFIED BY 'pmm';
GRANT SELECT, UPDATE, DELETE, DROP ON `performance_schema`.* TO 'pmm'@'127.0.0.1';
set global innodb_monitor_enable=all
pmm-admin add mysql --query-source=slowlog --username=pmm --password=pmm machine_hostname mysql_ip:mysql:port
https://grafana.com/grafana/dashboards/12470-red-method-for-mysql-queries-designed-for-pmm2/ 此模板会直接查询clickhouse进行展示,非常方便,建议添加
3 MYSQL自定义查询-扩展查询监控
https://github.com/Percona-Lab/pmm-custom-queries 官方文档
/usr/local/percona/pmm2/collectors/custom-queries/mysql/high-resolution/ -路径
mysql_performance_schema_memory_by_account: query: "SELECT user, host, event_name, current_number_of_bytes_used as current_bytes, high_number_of_bytes_used as high_bytes FROM performance_schema.memory_summary_by_account_by_event_name WHERE current_number_of_bytes_used > 0;" metrics: - user: usage: "LABEL" description: "User Name" - host: usage: "LABEL" description: "Host Name" - event_name: usage: "LABEL" description: "Performance Schema Event Name" - current_bytes: usage: "GAUGE" description: "Memory currently allocated to the Event" - high_bytes: usage: "GAUGE" description: "High Water Mark of Memory allocated to the Event"
query具体查询语句
metrice_name : title+gauge 也就是说有几个gauge 就有几个metrice
metrice_value: gauge对应的值 {{ values}}
label_name: label {{$labels.label}}
pmm-admin add proxysql --dsn "stats:stats@tcp(localhost:6032)/"
pmm-admin add mongodb --username= --password= --cluster=cluster_name --service-name= hostname --host=127.0.0.1 --port=mongoport
报警规则 1 规则信息存放位置 pmm-data/_data/prometheus/rules/ 2 规则信息重新加载生效 docker exec -it pmm-server curl http://127.0.0.1:8880/-/reload 调用vmalert接口reload 3 规则信息加载日志观察 vmalert.log 报警渠道 1 自行搭建alertmanager服务 修改vmalert.ini 重启vmalert-接入企业微信 2 采用第三方渠道 修改vmalert.int 重启vmalert 这种实际是比较常见的,因为运维应用prometheus都是独立服务,PMM接入报警只需要知道接口地址即可 3 自带alertmanager服务-接入企业微信
10 文档
https://docs.percona.com/percona-monitoring-and-management/ 官方文档
https://forums.percona.com/c/percona-monitoring-and-management-pmm/percona-monitoring-and-management-pmm-v2/31 论坛