架构师的成长之路初片~Prometheus-上
https://github.com/prometheus?q=mysql&type=&language=&sort= promethaus 官网
https://www.prometheus.wang/exporter/use-promethues-monitor-mysql.html promethaus中国社区版
https://grafana.com/oss/tempo/ 导入器官网
https://github.com/prometheus/mysqld_exporter/releases mysql_export导入器包
Prometheus是由SoundCloud开发的开源监控报警解决方案。
Prometheus使用Go语言开发。自2012年成为社区开源项目,Prometheus的开源社区十分活跃,在GitHub上拥有约30000颗星,并且经常会有小版本的更新发布在上面。拥有非常庞大的用户社区,很多公司使用它来满足自己的监控需求。
为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。
一: Prometheus监控服务器
步骤一:安装监控软件(192.168.4.10主机操作)
1) 设置防火墙、SELinux(如果已经关闭则可以忽略此步骤)。
[root@prometheus ~]#firewall-cmd --set-default-zone=trusted [root@prometheus ~]#setenforce 0 [root@prometheus ~]#sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
2)安装软件(软件包在第二阶段素材prometheus_soft.tar.gz中有提供)。
需要提前将软件拷贝到虚拟机。解压即可使用。
[root@prometheus ~]# tar -xf prometheus_soft.tar.gz [root@prometheus ~]# cd prometheus_soft [root@prometheus ~]# tar -xf prometheus-2.17.2.linux-386.tar.gz [root@prometheus ~]# ls [root@prometheus ~]# mv prometheus-2.17.2.linux-386 /usr/local/prometheus [root@prometheus ~]# ls /usr/local/prometheus/
3)修改prometheus配置文件。(默认是监控本机localhost)
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml static_configs: - targets: ['192.168.4.10:9090'] #修改最后一行,将IP地址改为本机IP [root@prometheus ~]# /usr/local/prometheus/promtool check config \ /usr/local/prometheus/prometheus.yml #检查配置配置文件是否有语法错误
4)编写服务service文件,使用systemd管理服务。
[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service [Unit] Description=Prometheus Monitoring System Documentation=Prometheus Monitoring System [Service] ExecStart=/usr/local/prometheus/prometheus \ --config.file=/usr/local/prometheus/prometheus.yml [Install] WantedBy=multi-user.target [root@prometheus ~]# systemctl enable prometheus.service --now #设置服务器开机自启动服务,并立刻启动该服务
访问Web UI界面: http://192.168.4.10:9090
步骤二:查看监控控制台
1)查看监控主机、监控数据。
使用浏览器firefox或者google-chrome访问http://192.168.4.10:9090。
查看监控主机,点击《Status》--《Targets》查看主机,效果如图-2所示。
查看具体监控数据,点击《Graph》,选择监控数据,如go_memstats_alloc_bytes,点击《Execute》效果如图-3所示。
查看监控数据对应的监控图形,效果如图-4所示。
二:Prometheus被监控端
1)设置防火墙、SELinux(如果已经关闭则可以忽略此步骤)
[root@node1 ~]#firewall-cmd --set-default-zone=trusted [root@node1 ~]#setenforce 0 [root@node1 ~]#sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
2)安装软件(192.168.4.11主机操作)。
安装软件,软件在第二阶段素材prometheus_soft.tar.gz中有提供。
提前将软件拷贝到虚拟机中。
[root@node1 ~]# tar -xf prometheus_soft.tar.gz [root@node1 ~]# cd prometheus_soft [root@node1 ~]# tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz [root@node1 ~]# ls [root@node1 ~]# mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter [root@node1 ~]# ls /usr/local/node_exporter
3)、编写服务service文件(192.168.4.11主机操作)
[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service [Unit] Description=node_exporter After=network.target [Service] Type=simple ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=multi-user.target [root@node1 ~]# systemctl enable node_exporter --now [root@node1 node_exporter]# netstat -atnpu | grep node_exporter tcp6 0 0 :::9100 :::* LISTEN 71124/node_exporter
Promethes的基本原理是通过HTTP协议周期性采集被监控端组件的状态 ,组件只要提供对应的HTTP接口,并且提供的数据遵循prometheus规定的格式,那就可以被纳入监控。而export负责将监控的数据通过HTTP服务的形式暴露给Prometheus Server。
4) 修改监控服务器配置文件(192.168.4.10主机操作)。
参考配置文件最后的模板,在文件末尾添加3行新内容,具体内容如下:
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['192.168.4.10:9090'] - job_name: 'node1' #监控任务取任意名称 static_configs: - targets: ['192.168.4.11:9100'] #被监控端主机和端口 [root@prometheus ~]# systemctl restart prometheus.service
5) 查看监控主机、监控数据。
使用浏览器访问http://192.168.4.10:9090。
查看监控主机列表,如图-5所示。
续下...................