本文地址:http://www.cnblogs.com/aiweixiao/p/7131532.html

原文地址(公众号):http://t.cn/RKwmqUs

点击关注 微信公众号

1. 监控概要

Linux服务器要保证高可用性,就要对其进行有效的监控,实时了解到服务器的运行状况,各项性能指标是否正常,以防患以未然,进行运维日志的记录,图形化的监控,出现问题的消息报警机制,都是保证Linux服务器能正常对外提供服务的先决条件。

2. 监控的内容

监控,是预防的其中的一项重要工作。这里先说说我需要监控的内容。系统负载、cpu使用率、内存占用、磁盘空间、网络流量、端口、进程、apache或tomcat的连接数、mysql的运行状态这些都是需要监控的东西。要了解服务器每时每刻的整体运行状态,单靠几个Linux自带的性能监测命令是很难实现的。所以,利用shell脚本和开源监控工具进行服务器监控成为两个主要的选择。

3.监控的方法

首先是要明白Linux服务器监控的一些常见命令,以及这些命令编写的监控脚本,最后,一些成熟的开源监控工具也是必要的。

3.1 常见监控命令


1) 【iostat】:iostat命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。

2)【meminfo 和 free】: cat /proc/meminfo  free

3)【mpstat】:实时系统监控工具,多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息

4)【netstat】:显示了大量跟网络相关的信息

5)【nmon】:开源工具,用以监控 Linux 系统的性能,下载及安装

6)【pmap】:pmap 命令用来报告每个进程占用内存的详细情况,可用来看是否有进程超支了,该命令需要进程 id 作为参数。

7)【ps pstree】:ps 告诉你每个进程占用的内存和 CPU 处理时间,而 pstree以树形结构显示进程之间的依赖关系,包括子进程信息

8)【sar】:sar 可用来显示 CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情。

9)【strace】:诊断进程工具,如 strace ls ,但是被诊断进程会变慢

10)【tcpdump】网络监控工具,用来做基本的协议分析,看看那些进程在使用网络以及如何使用网络。

11)【uptime】:该命令告诉你这台服务器从开机启动到现在已经运行了多长时间了

12)【 vmstat 】来监控虚拟内存

13)【Wireshark】:是一个网络协议检测程序,让您经由程序抓取运行的网站的相关资讯

14)【dstat】 多类型资源统计工具:该命令整合了vmstat,iostat和ifstat三种命令

15)【htop】: 更加友好的top,两者区别见:“关于htop和top的比较

16)【ss】: 用来记录套接字统计信息,它可以显示类似netstat一样的信息,同时也能显示更多TCP和状态信息

17)【lsof】 : 列表显示打开的文件

18)【iftop】是另一个基于网络信息的类似top的程序。它能够显示当前时刻按照带宽使用量或者上传或者下载量排序的网络连接状况

3.2 shell监控脚本


这里提供 四个脚本(performance.sh 性能监控,process.sh 进程监控,network.sh 流量监控,tongji.sh流量分析统计),并使用crontab定时执行脚本进行监控数据的记录,形成每天的监控日志放在如下相应的文件夹,并且超过自己设定的告警值后发邮件通知,那些有免费短信通知功能的邮箱如腾讯企业邮箱,163邮箱可以尝试一下,收到邮件告警后很快就能收到短信了,很方便。

3.2.1 性能监控脚本 performance.sh

代码GitHub地址:http://t.cn/Ro0H1EV

代码截图如下,有四个

性能监控脚本01-监控cpu负载
 
 

性能监控脚本02-监控cpu使用率
 
 

性能监控脚本03-监控交换分区
 
 

性能监控脚本04-监控磁盘空间

3.2.2 进程监控脚本 process.sh

代码GitHub地址:http://t.cn/Ro0R9pG

代码截图如下

进程监控脚本process.sh

3.2.3 流量监控脚本 network.sh

代码GitHub地址:

代码截图如下:

流量监控脚本 network.sh

3.2.4 流量分析统计脚本 tongji.sh

代码GitHub地址:http://dwz.cn/6b8y48

代码截图如下:

流量分析统计脚本 tongji.sh

3.3 监控工具


3.3.1) Cacti+Nagios

Cacti】:Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

Nagios】: Nagios是一个监视系统运行状态和网络信息的监视系统。能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等

3.3.2)Zabbix

Zabbix】: Zabbix除了能监视各种网络参数,保证服务器系统的安全运营之外,还能提供如短信、邮件、jabber等通知机制以让系统管理员快速定位/解决存在的各种问题。基本上能实现cacti+nagios的功能

关注微信公众号
 

《Linux服务器的监控》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. anoconda包管理汇总

    anoconda默认的seaborn版本是0.8.1 seaborn的最新版本是0.9.0  并且已经没有0.8.1的文档了. 升级anoconda的seaborn版本 进入anoconda prom ...

  2. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer

    Advanced Installer :Free for 30 days. All features. 下载地址:https://www.advancedinstaller.com/download. ...

  3. Prism 学习:从配置文件中加载 Module

    之前我们已经了解过,如何从指定的目录中来加载 Module(原文),现在我们来看,如何从应用程序的配置文件中来加载 Module.以这种方式来加载 Module 的优点包括:1. 被加载的 Modul ...

  4. [android] logcat简介

    /****************2016年5月4日 更新**************************/ 知乎:Android中的LogCat为什么叫作LogCat? 刘贺: linux有个命 ...

  5. Maven(七)Eclipse使用Maven命令

    由于没有mvn compile (其余命令类似) 可以点解上面框中选项手动输入compile

  6. Aurelia 创建模板

    今天介绍一下Aurelia创建模板的三种方式. 模板既可以作为页面也可以作为组件. 1. View+View Model Aurelia的模板通常由一个html文件和一个同名的ts或js文件组成,文件 ...

  7. 一个优秀的SEOer必须掌握的三大标配技术

    首先,认识网页代码是基础 这里所讲的网页代码是指HTML代码,并不是指复杂的PHP模板技术.一般的培训机构总是提倡学SEO不用学网页代码,只要会购买域名空间搭建网站就行,因为现在的网站模板太丰富了,对 ...

  8. 洛谷P4588 [TJOI2018]数学计算(线段树)

    题意 题目链接 Sol TJOI怎么全是板子题 对时间开个线段树,然后就随便做了.... #include<bits/stdc++.h> using namespace std; cons ...

  9. springboot 数据验证

    不能相信前端传过来的任何数据 一定不能相信前端传过来的任何数据 绝对不能相信前端传过来的任何数据 @JsonFormat 时间必须是指定的格式(这里是接收参数格式,不是取数据来格式化) @Null 必 ...

  10. 在centos7上编译安装nginx

    题前,先放一个有图有真相的博客链接:https://www.cnblogs.com/zhang-shijie/p/5294162.html 虽然别人说的很详细,但还是记录一下 1.VMWare Wor ...