Prometheus简介是一套开源的系统监控报警框架。Prometheus作为新一代的云原生监控系统,相比传统监控监控系统(Nagios或者Zabbix)拥有如下优点
易管理性:Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储
高效性:单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点
易于伸缩性:通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群
丰富的看板:多种可视化图表及仪表盘支持
针对容器监控:对docker,k8S监控有成熟解决方案
1.编辑主配置文件:prometheus.yml
# my global config global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_files: # - "first_rules.yml" scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['192.168.134.180:9090'] - job_name: "docker" static_configs: - targets: ['192.168.134.180:6080'] - job_name: "Linux" static_configs: - targets: ['192.168.134.180:9100']
2.下载镜像
docker pull prom/prometheus
开启路由内核转
echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf sysctl -p
3.控制节点,启动容器,挂载配置文件
docker run -d --name=prometheus -p 9090:9090 -v /home/amax/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
访问ip:9090出现Ui界面即成功
4.被监控节点,需要监控docker容器,部署cAdvisor
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=6080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
访问网页ip:6080出现UI即成功
http://ip:8080/metrics #该地址的数据为prometheus识别的数据的接口
如需要监控其他主机,第一步的配置文件需要同步修改。
5.控制节点测试
http://ip:9090/ 可以看到监控指标说明获取数据成功
6.控制节点,部署Grafana,从Prometheus中获取数据
docker run -d --name=grafana -p 3000:3000 grafana/grafana
默认登录密码admin/admin
http://ip:3000/ #p配置数据源,配置完成点击保存
导入监控模版,输入193,点击load会自动发现
监控效果如图:
7.监控Linux主机
下载node_exporter二进制文件,并开机自启,默认监听9100端口
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz tar zxf node_exporter-0.17.0.linux-amd64.tar.gz cp node_exporter-0.17.0.linux-amd64/node_exporter /usr/local/node_exporter cat <<EOF >/etc/systemd/system/node_exporter.service [Unit] Description=https://prometheus.io [Service] Restart=on-failure ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable node_exporter systemctl restart node_exporter
访问ip:9100/metrics可以查看监控信息
在第一步中添加本节点的地址信息即可监听Linux状态
检测方法:http://192.168.134.180:9090/targets 说明采集成功
然后配置grafana仪表盘,本次导入9276模板,和刚才导入模板的方式一致。导入完成即可看到如图所示模板
结束参考文档:
微信公众号[运维派]