zabbix监控/Prometheus简介

发布时间 2023-07-14 21:50:04作者: 枫飘过的天1

1.监控知识体系

   为什么使用监控:

   对系统不间断实时监控,实时反馈系统当前状态,保证服务可靠性安全性,保证业务持续稳定运行

   新公司如何引入监控:

   硬件监控:路由器、交换机、防火墙;

   系统监控:CPU、内存、磁盘、网络、进程、TCP

   服务监控:Nginx、PHP、tomcat、redis、memcache、mysql

   Web监控:响应时间、加载时间、渲染时间

   日志监控:ELK(收集、存储、分析、展示)日志

   安全监控:firewalld、WAF(nginx+lua)、安全保、牛盾云、安全狗

   单机监控:单机进程CPU查看负载和使用率,单机内存、磁盘查看,查看网络

   引入zabbix分布式监控系统,使用shell脚本来监控服务器

 

2.Zabbix简介

   zabbix简介

   后端C开发,界面PHP开发,定制化难度很高;集群规模上限10000个节点;

   适合监控物理机环境;监控数据存储在关系型数据库内,如mysql;

   安装简单、zabbix-server一个软件包中包括了所有服务端功能;

   图形化界面比较成熟,界面上基本上能完成全部的配置操作;

   发展时间更长,对于监控场景,都有现成的解决方案;

   zabbix监控项:

   内存使用情况、磁盘空间、网络流量(网络接口流量、网络出口流量)、agent检查客户端的可用性,主机名、系统详细信息)、监控程序端口启用

   agent客户端收集数据模式

   默认被动模式,可修改为主动模式,客户端配置文件中添加StartAgents=0即可

   主动监控:agent主动向server获取监控项列表,zabbix-agent主动将监控项内需要检测的数据提交给zabbix-server/proxy。

   被动监控:zabbix-agent等待zabbix-server的监控信息,server项agent请求获取监控项数据,agent收集信息请求并作出响应,Server处理接收到的数据。

   监控设置

   web监控:请求时间、响应时间、页面不是200(触发报警)

   Zabbix怎么微信报警:

   注册一个微信企业号、下载配置微信公众平台私有接口、配置zabbix告警

   Zabbix监控了多个客户端,客户端怎么批量安装:

   agent端生成秘钥,发送公钥到server端,安装ansible,创建安装zabbix客户端的剧本,执行该剧本,验证。

   zabibx安装部署

   安装方式:yum安装或源码安装

   安装步骤:zabbix安装,创建zabbix库并设置UTF8编码格式,导入表,配置zabbix server,配置PHP。配置完重启httpd服务,http://192.168.213.200/zabbix访问zabbix

   配置文件:zabbix.conf  //配置数据库关联信息

   DBHost=192.168.213.200    //数据库IP配置

   DBName=zabbix           //库名

   DBUser=zabbixuser        //用户名

   DBPassword=zabbixpass    //密码

   DBSocket=/tmp/mysql.sock  //数据库socket配置

   DBPort=3306     //数据库连接端口

   zabbix启动:systemctl start zabbix-server

   Zabbix优化设置

   设置中文:language改成Chinese(zh_CN)

   对服务器自身监控:配置--主机--停用改为启用

   中文乱码问题:拷贝windows系统字体,上传到zabbix服务器,cd /usr/share/zabbix/fonts,将拷贝字体文件改名为graphfont.ttf(先备份)

   zabbix主机监控

   主机通过agent方式采集数据,网络设备通过SNMP方式采集

   被监控主机Linux/windows安装agent代理

   服务器端(添加主机):配置--主机--新建主机 来创建监控

   按提示填入name/groups/ip,可以设置模板

   zabbix添加告警

   邮件告警流程:监控主机--监控项--触发器--告警动作--告警方式--告警用户

 

3.Prometheus

   Prometheus简介

   后端golang,前端grafana,json编写即可解决定制化难度较低;支持更大集群规模,速度更快;更适合云环境(openstack/k8s)监控;数据存储在时间序列数据库中;

   安装相对复杂,监控、告警、界面属于不同组件;界面相对较弱,很多配置需修改配置文件。

   Zabbix与prometheus比较:

   简单总结:zabbix成熟度更高,上手更快,但是更好的集成导致灵活性较低;监控数据的复杂度增加后,zabbix进一步定制难度很高,即使做好定制也没法利用之前收集到的数据。

   prometheus正相反,上手难度大,定制灵活度高,数据有更多聚合可能,起步后的使用难度远小于zabbix。

   建议:物理机监控或环境变动不频繁情况下使用zabbix,云环境的话,建议prometheus。