1.概念说明
a.掌握架构服务的运行情况
b.用于分析公司网站运行情况
c.对系统不间断实时监控--实现报警通知(邮件/微信/短信/电话)
d.实时反馈系统当前状态
e.保证服务可靠性安全性
f.保证业务持续稳定运行
2.常见监控
- cacti是一款数据采集,数据存储,外加web界面展示的工具,它负责阈值范围内的实时变化,但是对超过阈值的告警功能很薄弱
- 优点:实时监控数据变化,以web页面的方式呈现,更直观。
- 缺点:告警不及时
- nagios是一款告警功能很强大的工具,它不关心阈值范围内的变化,只关心状态变化(超过阈值),然后报警。报警方式通过邮件,短信等。
- 优点:告警反映迅速。
- 缺点:监控主机数量有限,承载低
- zabbix = cacti + nagios
- 优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
- 缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现。
2.常用命令
CPU:top
监控什么: us:user state 用户态信息
sy:system state 内核态信息
id:idle 空闲状态
内存:free -h,top,htop,
监控什么:内存可用率
swap空间使用情况
磁盘:df -h,iotop(检查磁盘的io消耗)
监控什么:磁盘使用情况
磁盘的io消耗
网络:iftop
监控什么:网络带宽使用情况
进程:top,htop,ps,
监控什么:占用内存情况---内存占满(内存溢出oom)
负载:w,top,uptime,
监控什么:1分钟负载,5分钟负载,15分钟负载;<CPU核心数
命令 | 功能应用 | 用法举例 |
free | 查看内存使用情况,包括物理内存和虚拟内存 | free -h或free -m |
vmstat | 对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息 | vmstat 2 100 |
top | 实时显示系统中各个进程的资源占用状况及总体状况 | top |
mpstat | 实时系统监控工具,它会报告与CPU相关的统计信息 | mpstat |
sar | 收集、报告和保存CPU、内存、输入输出端口使用情况 | sar -n DEV 3 100 |
netstat | 检验本机各端口的网络连接情况,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据 | netstat -a |
tcpdump | 用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包 | tcpdump -i eth0 -c 3 |
IPTraf | 用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据 | iptraf |
df | 检查linux的文件系统的磁盘空间占用情况 | df -h |
iostat | 收集显示系统存储设备输入和输出状态统计 | iostat -x -k 2 100 |
iotop | 用来监视磁盘I/O使用状况的top类工具 | iotop |
lsof | 用于以列表的形式显示所有打开的文件和进程 | lsof |
atop | 显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注 | atop |
htop | 它和top命令十分相似,高级的交互式的实时linux进程监控工具 | htop |
ps | 最基本同时也是非常强大的进程查看命令 | ps aux |
glances | 监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况 | glances |
dstat | 全能系统信息统计工具,可用于替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具 | dstat |
uptime | 用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况 | uptime |
dmesg | 主要用来显示内核信息。使用dmesg可以有效诊断机器硬件故障或者添加硬件出现的问题。 | dmesg |
mpstat | 用于报告多路CPU主机的每颗CPU活动情况,以及整个主机的CPU情况。 | mpstat 2 3 |
mpstat 2 3 | 监控CPU、内存、I/O、文件系统及网络资源。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。 | nmon |
mytop | 用于监控 mysql 的线程和性能。它能让你实时查看数据库以及正在处理哪些查询。 | mytop |
iftop | 用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等 | iftop |
jnettop | 以相同的方式来监测网络流量但比 iftop 更形象。它还支持自定义的文本输出,并能以友好的交互方式来深度分析日志。 | jnettop |
ngrep | 网络层的 grep。它使用 pcap ,允许通过指定扩展正则表达式或十六进制表达式来匹配数据包。 | ngrep |
nmap | 可以扫描你服务器开放的端口并且可以检测正在使用哪个操作系统 | nmap |
du | 查看Linux系统中某目录的大小 | du -sh 目录名 |
fdisk | 查看硬盘及分区信息 | fdisk -l |
3.编写脚本
练习题:
a.如何监控内存使用情况
正常使用情况:内存使用率高于80%
异常使用情况:内存使用率低于20%,发送报警
free|awk 'NR==2{print int($NF/$2*100)"%"}'(int函数=取出整数)
b.如何监控服务运行状态
ps -ef|grep -c [n]ginx
netstat -tnulp|grep xxx
PS:tomcat服务---僵死状态,有进程有端口,用户访问不到
4.体系结构
①.硬件监控 服务器(温度,电压,功率) 路由器 交换机 防火墙(SNMP)
②.系统监控 CPU 内存 磁盘 网路 进程 TCP(十一种状态)
③.服务监控 nginx php tmocat redis memcache mysql
④.网站监控 请求时间 响应时间 加载时间 页面监控 网站速度测试:多个地点Ping服务器,网站测速 - 站长工具
⑤.日志监控 ELK(收集 存储 分析 展示)日志监控 日志易
⑥.安装监控 firewalld(4层和4层以上)WAF(nginx+lua)应用层面 安全宝 牛盾云 安全狗
⑦.网络监控 smokeping 监控宝 站长工具 奇云测 多机房
⑧.业务监控 (数据库信息)活动产生多少流量 产生多少注册量 带来多少价值