阶段七:企业级监控中间件之Zabbix基础
Zabbix比较老牌的监控系统,很多传统行业,如银行、国企还是基于Zabbix进行监控操作,适用于传统监控。
场景说明
运维工程师除了搭建架构环境,配置管理外,还需要保证业务的\*\*==稳定==\*\*运行。不稳定的情况包括很多方面,如:
- CPU负载过大
- 内存不够
- 磁盘空间满了
- 网络很卡
- 服务不能被访问
等等各种问题。我们运维工程师无法做到时刻盯着服务器查看各类状态,所以需要建立一套完善的\*\*==自动化监控==系统,将所有需要监控的服务器及其各种需要的状态数据都实时地收集\*\*, 图形展示,告警。
认识监控
监控的目的
- 实时收集数据并图形展示, 通过告警及时发现问题与处理问题。
- 为架构优化也提供依据。
监控的目标
生活中的监控:
请问linux系统中的监控主要监控什么?
- 任何你所想要监控的数据, 如cpu负载、cpu的idle时间、内存使用量、内存利用率、io、network等等。
- 现在很多开源监控方案已经把常见的监控做成了模板,我们可以直接套用
- 大型公司会有更多的监控需求, 那么就需要专业的开发人员来做监控开发(运维人员也可以开发)
主流的开源监控平台介绍
- mrtg (Multi Router Traffic Grapher)通过snmp协议得到设备的流量信息,并以包含PNG格式的图形的HTML文档方式显示给用户。
- cacti (仙人掌) 用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据。官网地址: https://www.cacti.net/
- ntop 官网地址: https://www.ntop.org/
- nagios 能够跨平台,插件多,告警功能强大。官网地址: https://www.nagios.org/
- centreon 底层使用的就是nagios。是一个nagios整合版软件。官网地址:https://www.centreon.com/
- ganglia 设计用于测量数以千计的节点,资源消耗非常小。官网地址:http://ganglia.info/
- open-falcon 小米公司开源,高效率,高可用。用户基数相对小。官网地址: http://open-falcon.org/
- ==zabbix== 跨平台,画图,多条件告警,多种API接口。用户基数大。官网地址: https://www.zabbix.com/
- ==prometheus== 基于时间序列的数值数据的容器监控解决方案。官网地址: https://prometheus.io/
Zabbix
基础概念
1. 主机(host)和主机群组(host group)
主机指被监控的一个设备(服务器,交换机等),当被监控的主机数量巨大时,就需要分组
1. zabbix用户(user)与用户群组(group)
zabbix可以多个用户登录管理(和Linux操作系统一样有管理员和普通管理者)
1. 监控项(item)与应用集(application)
监控的需求太多了,就拿监控cpu平均负载来说,就有监控1分钟内,5分钟内,15分钟内等三个常见的监控参数。
监控项(item)是从收集数据或监控的一个最小单位。把cpu1分钟内的平均负载就可以做成一个监控项。
应用集就是多个监控项的组。
1. 图形
监控项收集的数据需要用图形直观地展示出来。
1. 触发器和告警
当监控项收集的数据达到一个临界点值,就要触发告警通知管理人员。
如: 当根分区使用率超过80%时, 就通过发告警信息到管理人员。
1. 模板
模板主要包括监控项,图形,触发器等概念,相当于是把要监控的东西做成一个合集。
监:收集查看指标 管:IT资产纳管(CMDB) 控:通过脚本、指令使得故障恢复(告警自愈); 营:经营(数分、大屏展示); 服:工单流程(自动转工单);
场景准备
环境准备: 这里为1台监控服务器和2台被监控端
1. 静态IP 2. 主机名
各自配置好主机名
hostnamectl set-hostname --static server
hostnamectl set-hostname --static agent1
hostnamectl set-hostname --static agent2
三台都互相绑定IP与主机名
# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.201 zabbix-server.itcast.cn server
192.168.88.202 zabbix-agent1.itcast.cn agent1
192.168.88.203 zabbix-agent2.itcast.cn agent2注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
yum install epel-release -y
yum install ntpsec -y
ntpdate cn.ntp.org.cn
systemctl restart ntpd
systemctl enable ntpd注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
systemctl stop firewalld
systemctl disable firewalld
iptables -F
setenforce 0注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
Zabbix服务器安装
Zabbix Server/Zabbix Agent(采集)
Zabbix底层基于PHP + MySQL开发的,需要搭建LAMP或LNMP架构
参考: https://www.zabbix.com/documentation/current/manual/installation/install_from_packages/rhel_centos
注意 :在这里,我们使用LAMP架构,首先在Zabbix Server服务器上执行dnf install httpd -y安装Apache Web服务,其他的组件接下来会逐步安装。
Zabbix服务器结构图
zabbix = zabbix-server(服务端) + zabbix-agent(客户端)
接下来这一章节的操作,都是在 服务端 机器上执行。
安装Apache Web服务
dnf install httpd -y
systemctl start httpd
systemctl status httpd
systemctl enable httpd命令作用:
- 使用
dnf包管理器执行install操作,对软件包进行安装、更新、删除或查询。
- 使用 systemctl 对
httpd服务执行start操作:启动、停止、重启、查看状态或设置开机自启。
- 使用 systemctl 对
httpd服务执行status操作:启动、停止、重启、查看状态或设置开机自启。
- 使用 systemctl 对
httpd服务执行enable操作:启动、停止、重启、查看状态或设置开机自启。
执行结果:
- 成功后软件包会按指定动作完成安装、更新、删除或查询;失败时检查仓库、网络和权限。
- 成功后会对
httpd服务执行start操作;restart会造成短暂中断,enable影响开机自启。
- 成功后会显示服务是否运行、主进程、最近日志和失败原因。
- 成功后会对
httpd服务执行enable操作;restart会造成短暂中断,enable影响开机自启。
关键参数:
注意事项:
第一步:安装MySQL
...
**关键参数:**
**注意事项:**
第一步:安装中文语言包注意事项:
假如你希望http://IP就能访问主页,而不是http://ip/zabbix访问主页,那么如下图所示配置即可:
更改完成后,重启Apache软件(httpd软件)
注意事项:
监控状态不OK的排错思路:
目标:使用Zabbix实现远程Linux服务器监控
注:如果/etc/yum.repos.d目录存在epel.repo,必须先把epel.repo关闭,然后安装完成后在启用!
**注意事项:**
配置`/etc/zabbix/zabbix_agentd.conf`配置文件,配置结果如下:
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
333:Include=/etc/zabbix/zabbix_agentd.d/*.conf注意事项:
或者
**注意事项:**
还是在自定义模板里创建