文章目录
prometheus
Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。
监控软件的优势
1、时间方面:linux命令获取数据不能随时得到数据,监控软件可以时时刻刻去提取数据,自动化实现时时监控,解放人手
2、操作简单,非专业人士也可以使用。web服务上点击即可
3、效果直观,数据可视化后能更直观的看到效果
常见的monitor 监控软件:
1、cacti 仙人掌:出图比较好
2、nagios 监控脚本特别多
3、zabbix 集合cacti + nagios 的优点 ==》 企业里面使用非常多
4、openfalcon 小米公司开源的监控软件
5、prometheus 开源的监控软件
prometheus架构
Prometheus 组件:
Prometheus server
1、tsdb 时序数据库 ==》存放在HDD/SSD
HDD hard disk drive 机械磁盘
SSD solid state drive 固态磁盘
2、http server web端服务
3、retrieval
Pushgateway 中间件(代理)
Altermanager 告警的软件
exporter 收集数据,采集数据 木马程序
Prometheus获取数据的方式:
1、pull server —> pull —> client
服务端主动的获取数据,避免大并发
2、push client —> push —> server
客户端主动送数据过来,比较及时。但是可能会出现大量的数据同时push过来
grafana 是prometheus第三方的工具,专门用于将数据可视化
安装prometheus
容器安装
docker run -d -p 9090:9090 --name sc-prom-1 prom/prometheus
[root@docker1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@docker1 ~]# docker run -d -p 9090:9090 --name sc-prom-1 prom/prometheus
Unable to find image 'prom/prometheus:latest' locally
latest: Pulling from prom/prometheus
50783e0dfb64: Already exists
daafb1bca260: Pull complete
bafa8e139cea: Pull complete
0d2e6df8577f: Pull complete
e3d4e14499bc: Pull complete
a3f71f7c721c: Pull complete
aca108eacfe0: Pull complete
b6aee8ea9d2f: Pull complete
950d9a06ee14: Pull complete
d009d09c576e: Pull complete
50100a62d658: Pull complete
34487f1a8146: Pull complete
Digest: sha256:aa1687dd552ed98df598cc0fed2effbc62a0f05236bc2253c65520ddd4f2afce
Status: Downloaded newer image for prom/prometheus:latest
fc6b9a1ed1ce04802fcbf9959e390f863595e7e0474f3f72409e3440e2aaa9ab
[root@docker1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc6b9a1ed1ce prom/prometheus "/bin/prometheus --c…" 12 seconds ago Up 8 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp sc-prom-1
浏览器访问 本机
默认是采集本机的数据
输入Prometheus的promQL指令,执行后就能看到相关的数据
源码安装
源码安装需确保本机中未使用docker安装启动prometheus
如已经启动,则停止prometheus 服务
[root@docker1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc6b9a1ed1ce prom/prometheus "/bin/prometheus --c…" 18 hours ago Up 5 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp sc-prom-1
[root@docker1 ~]# ps aux|grep prometheus
65534 2015 1.1 3.1 915976 57812 ? Ssl 11:37 0:00 /bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --web.console.libraries=/usr/share/prometheus/console_libraries --web.console.templates=/usr/share/prometheus/consoles
root 2059 0.0 0.0 112824 988 pts/0 S+ 11:38 0:00 grep --color=auto prometheus
[root@docker1 ~]# docker stop sc-prom-1
sc-prom-1
[root@docker1 ~]# ps aux|grep prometheus
root 2107 0.0 0.0 112824 988 pts/0 S+ 11:39 0:00 grep --color=auto prometheus
1、下载上传源码包到linux服务器中,并解压,修改解压后的压缩包名字
[root@docker1 ~]#mkdir /prom
[root@docker1 ~]#cd /prom
[root@docker1 prom]# ls
prometheus-2.34.0.linux-amd64.tar.gz
[root@docker1 prom]# tar xf prometheus-2.34.0.linux-amd64.tar.gz
[root@docker1 prom]# ls
prometheus-2.34.0.linux-amd64 prometheus-2.34.0.linux-amd64.tar.gz
[root@docker1 prom]# mv prometheus-2.34.0.linux-amd64 prometheus
[root@docker1 prom]# ls
prometheus prometheus-2.34.0.linux-amd64.tar.gz
2、修改环境变量,临时和永久修改PATH变量,添加prometheus的路径
[root@docker1 prom]# cd prometheus
[root@docker1 prometheus]# ls
console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool