一、监控
1、为什么需要监控
1、需要保障业务时时刻刻正常的运转,一旦出现问题,需要马上知道,赶紧修复
2、解放人力,提高效率
2、监控的意义
1.收集数据,分析数据,可以提前预知一些问题,及时处理
2.及时的发现问题,提醒工程师尽快的去解决问题,减少公司的损失
3、常见的监控软件
zabbix,prometheus,cacti,nagios等
二、Prometheus
1、prometheus是什么:
Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud上构建的。
Prometheus于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。
2、prometheus里的专业术语:
1.short-lived job --》短时间运行的程序,与他相对应的就是--》守护进程,一直运行
2.TSDB:时间序列的数据库
3.pushgateway:中间服务器--》中间临时存放数据的地方,短时间运行的程序可以主动将自己的数据push到pushgateway里存放,然后prometheus server到pushgateway里面去拉数据
4.PromQl:prometheus时间数据库里的查询语言
5.exporter:可以理解为植入客户机的一个程序,程序专门收集客户机的数据,发送给prometheus服务器
6.push和pull那个更好:
6.1 数据的实时性--》得到最新鲜的数据--》push
6.2 服务器的负载,网络的负载--》可控性--》pull
7.metric:指标
3、安装Prometheus
方法一:使用容器去安装
1.启动容器:docker run -d -p 9090:9090 --name sc-prom-1 prom/prometheus
2.访问prometheus容器
http://192.168.243.136:9090/graph --》web界面的
http://192.168.243.136:9090/metrics --》查看一下prometheus的各种指
方法二:源码编译安装
1.下载源文件压缩包,传到虚拟机里面,然后解压
[root@worker-2 ~]# ls
anaconda-ks.cfg prometheus-2.35.0.linux-amd64.tar.gz
[root@worker-2 ~]# mv prometheus-2.35.0.linux-amd64.tar.gz /prometheus/
[root@worker-2 ~]# cd /prometheus/
[root@worker-2 prometheus]# ls
prometheus-2.35.0.linux-amd64.tar.gz
[root@worker-2 prometheus]# PATH=$PATH:/prometheus/prometheus-2.35.0.linux-amd64
[root@worker-2 prometheus]# which prometheus
/prometheus/prometheus-2.35.0.linux-amd64/prometheus
[root@worker-2 prometheus]# cd prometheus-2.35.0.linux-amd64
[root@worker-2 prometheus-2.35.0.linux-amd64]# ls
console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool
# prometeus --》启动程序
# prometheus.yml --》配置文件
永久添加安装路径到path环境
[root@worker-2 ~]# vim /root/.bashrc
PATH=$PATH:/prometheus/prometheus-2.35.0.linux-amd64
2.进入解压后的prometheus-2.35.0.linux-amd64目录下,并启动
[root@worker-2 prometheus-2.35.0.linux-amd64]# ./prometheus --config.file=prometheus.yml
3.改良后启动(在后台启动):
[root@worker-2 prometheus-2.35.0.linux-amd64]# nohub ./prometheus --config.file=/prometheus/prometheus.yml &
4.查看
[root@worker-2 ~]# cd "/prometheus/prometheus-2.35.0.linux-amd64"
[root@worker-2 prometheus-2.35.0.linux-amd64]# ps aux|grep prometheus
root 14505 0.5 7.0 780740 56400 pts/0 Sl+ 23:57 0:00 ./prometheus --config.file=prometheus.yml
root 14543 0.0 0.1 12348 1196 pts/1 S+ 23:58 0:00 grep --color=auto prometheus
[root@worker-2 prometheus-2.35.0.linux-amd64]# ss -anplut|grep prometheus
tcp LISTEN 0 128 *:9090 *:* users:(("prometheus",pid=14505,fd=7))
4、prometheus组件
1.prometheus server
2.Pushgateway
3.exporters
4.Alertmanager
5.Prometheus web GUI
5、exporter
1、exporter是prometheus的客户端程序,需要安装到被监控的服务器上,需要去定制,但是prometheus已经给我们开发了很多通用的或者已经定制的exporter
2、exporter会到客户机(被监控的服务器上)收集指定的指标数据,例如:cpu的使用率,内存的使用率,磁盘的使用情况,网络的带宽使用情况等等数据
三、云计算的相关知识
1、openstack:开源并且免费的云计算软件
云计算就是将多台服务器的资源整合,然后再分配,分配的是一个个虚拟机。
2、云计算的优势:
节约成本,集中力量做事情,资源的集中调度
3、三种云模式
1.公有云:公开给所有人使用的云,个人,企业,政府等都可以购买;例如:阿里云,腾讯云,华为云
2.私有云:只是自己使用,不对外公开的云
3.混合云:一部分是公有云,一部分是私有云,不同的业务会使用不同的云,但是他们之间有联系
4、四种云服务
1.IaaS:基础设施即服务(Infrastructure as a Service):
给其他人或企业提供虚拟机(cpu,内存,disk,网络等),这就是一种服务。
例如:阿里云,腾讯云,华为云等相关的云都提供这个服务
IaaS实质上就是卖云服务器
2.PaaS:平台即服务(Platform As A Service) :
云平台对外提供某个软件服务;例如--》数据库平台,对外提供数据库服务
阿里云、ucloud、七牛云、金山云等--》提供了存储服务,某个功能的服务
存储功能,加速功能等某个具体的功能的服务
PaaS实质上就是卖功能
3.SaaS:软件即服务(Software As A Service):
wps 办公软件
mysql 数据库的服务
redis NOsql的服务
SaaS实质上就是卖软件,只不过这个软件是在云平台里运行,你不需要部署
4.BaaS:区块链即服务(Blockchain As A Service)
给别人提供区块链的服务
BaaS实质上就是卖区块链服务
5、微服务
就是尽量将某个功能或者服务独立出来,跑在单独的容器里
6、serverless
无服务器,不需要服务器,直接使用容器