监控案例

一、如何监控服务

如果要想监控,前提是能获取被监控端指标数据,并且这个数据格式必须遵循Prometheus数据模型,这样才能识别和采集,一般使用exporter提供监控指标数据。

exporter列表

image

二、Grafana部署


- 安装
[root@slave-2 monitor]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.2.linux-amd64.tar.gz
[root@slave-2 monitor]# tar -zxvf grafana-enterprise-8.4.2.linux-amd64.tar.gz
[root@slave-2 monitor]# rm -rf grafana-enterprise-8.4.2.linux-amd64.tar.gz && mv grafana-8.4.2 grafana
[root@slave-2 monitor]# vi /usr/lib/systemd/system/grafana.service

[Unit]
Description=grafana
[Service]
ExecStart=/opt/monitor/grafana/bin/grafana-server -homepath=/opt/monitor/grafana
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

[root@slave-2 monitor]# systemctl daemon-reload
[root@slave-2 monitor]# systemctl start grafana
[root@slave-2 monitor]# systemctl enable grafana

http://192.168.2.62:3000/login admin/admin
- 新增DataSource

image

三、监控Linux服务器


- node_exporter:用于监控Linux系统的指标采集器。

参考链接
• CPU
• 内存
• 硬盘
• 网络流量
• 文件描述符
• 系统负载
• 系统服务

- 安装配置
[root@slave-3 ~]# tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
[root@slave-3 ~]# mv node_exporter-1.3.1.linux-amd64 /usr/local/node_exporter
[root@slave-3 etc]# yum install httpd-tools –y
[root@slave-3 etc]# htpasswd -nBC 12 '' | tr -d ':\n'
New password: 
Re-type new password: 
$2y$12$9e6WXMrIA.lgfKfgTuo8eO9l30MAO7y.LsUXb17Nrp/q2Y5M5sq2K

[root@slave-3 node_exporter]# vi config.yml
basic_auth_users:
  prometheus: $2y$12$9e6WXMrIA.lgfKfgTuo8eO9l30MAO7y.LsUXb17Nrp/q2Y5M5sq2K
[root@slave-3 node_exporter]#  vi /usr/lib/systemd/system/node_exporter.service

[Unit]
Description=node_exporter
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

[root@slave-3 ~]# systemctl daemon-reload
[root@slave-3 ~]# systemctl start node_exporter
[root@slave-3 ~]# systemctl enable node_exporter

http://192.168.2.63:9100/

在Prometheus配置文件添加被监控端
- job_name: 'webServers'
    basic_auth:
     username: prometheus
     password: 123456
    static_configs:
    - targets: ['192.168.2.63:9100']

[root@slave-2 ~]# ps -ef|grep prometheus|grep -v grep|awk '{print $2}'
87708
[root@slave-2 ~]# kill -HUP 87708
- 查看prometheus是否已监控该target

image

- 导入仪表盘9276

image

- 查看效果

image

- 更改网卡名,监控网络

image

四、监控系统服务运行状态


- 部署exporter
[root@slave-3 ~]# vi /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
[Service]
ExecStart=/usr/local/node_exporter/node_exporter --web.config=/usr/local/node_exporter/config.yml --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|nginx).service
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

[root@slave-3 ~]# systemctl daemon-reload
[root@slave-3 ~]# systemctl restart node_exporter
- 查看效果

image

五、监控Docker服务器


- 部署cadvisor
[root@slave-1 ~]# docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8081:8080 --detach=true --name=cadvisor google/cadvisor:latest
68de37ae81f48d8f450ca3b1409098c9ff5f57a0bca7eb8de87d75ba86b19b3d
- 新增prometheus配置项
- job_name: 'docker'
  static_configs:
  - targets: ['192.168.2.61:8081']
  
[root@slave-2 prometheus]# kill -HUP 52720
- 查看效果

image

- 新增仪表盘193,查看结果

image

image

- 根据步骤一二三新增监控docker主机
- 新增导航栏

image

- 更新dashboard的标签选择

image

- 查看效果

image

六、监控MySQL服务器


- 部署mysql和exporter
[root@slave-4 ~]# docker run -d --name db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
[root@slave-4 ~]# docker exec -it db bash
root@669de1220b8c:/# mysql -uroot -p123456
mysql> grant PROCESS, REPLICATION CLIENT, SELECT ON *.* to 'exporter'@'%' identified by '123456';
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@slave-4 ~]# tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@slave-4 ~]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
[root@slave-4 mysqld_exporter]# vi  .my.cnf
[client]
user=exporter
password=123456

[root@slave-4 system]# vi mysqld_exporter.service
[Unit]
Description=mysqld_exporter
[Service]
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

[root@slave-4 system]# systemctl daemon-reload
[root@slave-4 system]# systemctl start mysqld_exporter
[root@slave-4 system]# systemctl enable mysqld_exporter
- 新增prometheus配置项
- job_name: 'dbservers'
  static_configs:
  - targets: ['192.168.2.64:9104']

image

- 新增仪表盘7362,查看结果

image

image

posted @ 2022-02-26 23:36  曾某某scau  阅读(119)  评论(0编辑  收藏  举报