文章目录
Zabbix
1.zabbix工作流程:
- 数据采集:agent、snmp
- 数据存储:数据库(MySQL)
- 数据呈现:web页面
2.实施监控:
- 在客户端安装agent
- 在zabbix中创建主机、添加模板
3.自定义监控项:
- 修改客户端配置文件,以支持自定义监控项
- 创建自定义的key
- 在zabbix中创教模板、模板中创建应用集、应用集中创建监控项、监控项对应key
- 将模板连接到主机
4.实施告警:
- 定义触发器
- 创建动作、触发器触发时、给管理员发邮件
- 配置报警媒介类型-邮件、设置邮件服务器的地址及发件人
- 配置管理员的邮箱
5.自动发现:批量添加监控主机
6.主动监控:被监控的主机、主动向服务器汇报状态
7.拓扑图和聚合图形:可以更加方便的管理主机和查看数据
8.zabbix进程详解:
在默认的情况下,zabbix有6个工作进程,分别是zabbxi_agented,zabbix_get,zabbix_proxy,zabbix_sender,zabbix_server,zabbix_gateway。其中zabbix_java_gateway是可选进程。
1.zabbix_agentd
zabbix客户端守护进程,主要负责收集客户端监控项数据(端口:10050)
2.zabbix_server
zabbix服务端守护进程,主要负责收集客户端数据(端口:10051)
3.zabbix_proxy
zabbix的代理程序,其功能类似于server,作用上类似于一个中转站,最终会把收集的数据再次提交给zabbix_server
4.zabbix_get
zabbix_get作为zabbix工具,通常运行在zabbix_server或者zabbix_proxy上,用于远程获取客户端信息,通常用于排错
5.zabbix_sender
zabbix_sender也是zabbix的一个工具,通常运行在zabbix的客户端,用于耗时比较长的检查,其作用是主动发送数据、
6.zabbix_java_gateway
zabbix_java_gateway是zabbix2.0以后引入的新功能,可以用于Java方面的设备;但是只能主动获取数据,而不能被动获取数据
9.监控命令
free -m #查看内存
swapon -s #查看交换空间
df -h #查看硬盘使用情况
uptime #查看系统负载
top #类似任务管理器
ps -aux #显示进程号
crontab -l #显示系统计划任务
du -sh #查看目录或文件大小
uname -r #查看系统内核
lscpu #查看系统cpu
cat /etc/redhat-release #查看linux系统版本
cat /proc/meminfo #查看系统完整内存信息
Prometheus
1.简介:
-
开源的系统监控和报警系统(常用于容器的监控)
-
加入到了CFCN(云原生基金会)
-
支持多种exporter采集数据
-
支持pushgateway进行数据上报
-
性能足够支撑上万规模的集群
2.特点:
- 多维度数据模型
- 灵活的查询语言(PromQL)
- 可以直接在本地部署,不依赖其他分布式存储
- 通过基于HTTP的pull方式采集时序数据
- 可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server 端
- 可通过服务发现或者静态配置来发现目标服务对象(targets)
- 有多种可视化图形化界面,如Grafana
- 高效的存储,每个采样数据占3.5bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G
- 做高可用,可以对数据做异地备份,联邦集群,部署多套prometheus,pushgateway上报数据
3.Prometheus组件介绍:
- Prometheus Server:用于收集和存储时间序列数据(端口:9090)
- Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端
- Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端,所有向promtheus server提供监控数据的程序都可以被称为exporter(端口:9100)
- Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等
- Grafana:监控仪表盘,可视化监控数据
- pushgateway: 各个目标主机可上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据。
从上图可发现,Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval,Storage,PromQL
- Retrieval负责在活跃的target主机上抓取监控指标数据
- Storage存储主要是把采集到的数据存储到磁盘中
- PromQL是Prometheus提供的查询语言模块。
4.Prometheus工作流程:
-
Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;
-
Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;
-
Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager
-
Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等
-
Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据
-
Grafana可接入prometheus数据源,把监控数据以图形化形式展示出