监控服务的作用:
- 当出现一些突发情况,及时响应
- 及时捕捉证据,追溯相关问题
监控系统性能指标的命令
性能指标:
CPU性能
1
2
3
4top
htop
uptime
vmstat内存
1
free
磁盘
1
2iotop
df网络/进程
1
2
3iftop
ps
pstree
企业常见监控工具
catti:擅长出图,添加监控项很繁琐
nagios:可以添加监控项,但是不可以图形化
ganglia:分布式集群监控系统,适合于对上千台大型规模集群进行监控,性能成本比较低,批量管理更加方便。不可以发送告警。
zabbix:集合了上述的优点
promethus:适合于监控k8s
ELK:日志监控
zabbix相关介绍
Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix 是一种企业级的分布式开源监控解决方案。
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和分发的。这意味着它的源代码是免费分发的,并且可供公共使用。
zabbix监控服务架构模型

snmp:zabbix监控网络性能所依赖协议
IPMI:用于监控物理硬件性能指标,可以获取物理设备的温度、CPU转速
JMX:监控Java项目所使用的出口。
安装部署zabbix监控架构
部署环境:
系统:centos7
web应用:Nginx
php 72
mariadb
安装部署服务端
1 | # 配置源 |
单独配置前端源
1 | # 安装依赖 |
准备数据库环境
安装数据库MySQL或mariadb
1 | yum install mariadb-server -y |
创建zabbix业务库
1 | create database zabbix character set utf8 collate utf8_bin; |
授权zabbix用户
1 | grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; |
导入数据库数据
1 | zcat /usr/share/doc/zabbix-server-mysql-5.0.21/create.sql.gz > zabbix.sql |
配置服务端环境
配置zabbix_server连接数据库
1 | vim /etc/zabbix/zabbix_server.conf |
配置Nginx
1 | vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf |
配置php
1 | vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf |
重启服务
1 |
|
在浏览其访问当前部署机器的IP地址即可开始网页安装部署zabbix
zabbix-agent2
zabbix-agent2 作为一款新的agent,未来可能会替代原有的agent。
特性:
- 降低了TCP连接的数据
- zabbix-agent2用go语言开发的,集成了zabbix-agent原有的所有功能,并且易于通过插件扩展第三方功能。
安装
1 | # 配置源 |
zabbix实战应用讲解
web界面介绍:
主机–>监控项–>模板–>触发器–>执行动作–>告警媒介
添加主机
客户端
1 | vim /etc/zabbix/zabbix_agent2.conf |
服务端
模板选择Linux第一个

添加监控项
客户端自定义监控取值
1 | 1.通过shell命令获取到关键数据 |
案例:
1 | 取当前用户连接数 |
去服务端测试一下
1 | [root@control ~]# yum install zabbix-get |
服务端



企业案例:通过zabbix监控nginx的服务运行状态
触发器
监控项:用于监控数据
触发器:对性能指标异常的数据进行报警
触发器配置界面

示例:
在触发器和监控项中有修改主机名会提示
修改node1的主机名后就出现了提示信息

添加触发器


添加几个连接后就会触发报警

在恢复项也可以设置恢复的触发

减少用户连接后就可以恢复

异常用户触发器
1 | [root@node1 ~]# w | awk 'NR>2{print $3}' | uniq -c |
邮件提示设置
配置发件人:

这里的密码是邮箱授权码
配置收件人:


配置动作



之后就会触发动作发邮件


zabbix通过percona对mysql进行监控
percona:专门应用于针对数据库进行自动化维护的工具
通过zabbix监控mysql步骤:
准备服务端
下载percona插件
1 | wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm |
文件结构介绍
1 | [root@control home]# rpm -ql percona-zabbix-templates |
准备服务端
下载percona插件
1 | wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm |
1 | cd /var/lib/zabbix/percona/templates/ |
SNMP协议监控网络设备及固件
作用:snmp协议主要针对于无法使用zabbix客户端监控的设备对象,对于zabbix监控起到补充作用
1 | 路由器 |
版本管理:
1 | 1. SNMPv1:最初版本,容易实现操作成本低,海量数据的读取能力比较薄弱,没有合理安全机制 |