用Munin监控Linux服务器性能

简介: http://ri0day.blogbus.com/logs/52771828.htmlhttp://sanpi.blog.51cto.com/620445/692247监控LINUX主机的性能是一个很复杂的操作,它有赖于命令行工具和集中数据。

http://ri0day.blogbus.com/logs/52771828.html

http://sanpi.blog.51cto.com/620445/692247

监控LINUX主机的性能是一个很复杂的操作,它有赖于命令行工具和集中数据。分析可能会很困难,需要大量的数据来建立相互关系从而得出结论。好在我们可以用一些现有工具来搭建这个过程的模型,让数据分析变得相对容易一些。接下来我们能看到其中的一个工具,它叫做Munin(代表记忆,是奥丁神的一只乌鸦的名字)。

Munin是通过客户端-服务器架构收集数据并将其图形化的工具。Munin允许你跟踪你的主机的运行记录,就是所谓的‘节点’,然后将它们发送到中央服务器,随后你就能在这里以图像形式展示它们。以下你可以看到一个用Munin图形界面显示磁盘IO信息的例子:

Munin,Linux,监控,服务器性能

Munin可以通过安装包快速简易地安装到大多数Linux系统上。在红帽和Ubuntu/Debian上你都需要Munin,munin-node和munin-common安装包(这个组合假设你还需要监控服务器的情况),以红帽为例:

$ yum install munin munin-common munin-node

Munin安装将它的配置文件放在目录/etc/munin下。让我们就从配置munin服务器开始吧。主要的服务器配置文件是munin.conf,它控制服务器的设置和每个节点的配置信息。在大多数情况下用默认设置就可以了,但是其它几个选项你也应该知道:dbdir、htmldir、logdir 和rundir。

Dbdir设置决定munin把收集到的RRD格式的统计数据放在哪个目录下,在红帽和ubuntu系统中默认的是放在/var/lib/munin这个目录下。

Htmldir设置控制munin输出数据的位置,它是以html文件来显示图形界面的。在红帽系统中默认的是放在/var/www/html/munin目录下,而在ubuntu中的是放在/var/cache/munin/www目录下。这个目录正是我们一般为网页服务器服务时所采用的目录,例如Apache。最好的操作办法之一就是运用Apache虚拟主机,创建一个虚拟主机可以用来图形化显示我们的节点状态:

<VirtualHost *:80>
     ServerAdmin webmaster@localhost
     ServerName   munin.example.com
     DocumentRoot /var/www/html/munin
     <Directory />
         Options FollowSymLinks
         AllowOverride None
     </Directory>
     LogLevel notice
     CustomLog /var/log/apache2/munin.access.log combined
     ErrorLog /var/log/apache2/munin.error.log
     ServerSignature On
</VirtualHost>

Logdir和rundir设置控制munin的日志文件和pid文件放置位置。

最后,我们也必须在munin.conf文件中定义所有将向服务器发送报告的节点主机,命令是:

[hostname.example.com]  address 10.0.0.1  use_node_name yes 
[hostname2.example.com]  address 10.0.0.2  use_node_name yes

括号中是每个节点的名字,后面是它的IP地址,use_node_name命令控制munin命名节点的方式,如果后面跟的参数为yes就是用括号中的值来命名,如果是no则将执行一个DNS查询。另外,你可以用includedir选项来命名一个单独的目录,munin将在这里加载所有的文件,例如:

includedir /etc/munin/munin-conf.d/

我经常用puppet导出资源来管理munin配置,首先在每个puppet客户端上创建一个独立的文件,然后用munin在这个文件中加载节点信息。

到这一步,服务器就已经配置好了,接下来我们需要配置节点。将munin-node包安装在每个节点并且配置/etc/munin目录下的munin-node.conf文件。大多数配置信息都不需要改变,但是你需要更改allow选项,它控制哪一个主机能访问munin和检索统计。我们用IP地址来配置munin服务器,例如:

allow ^10\.0\.0\.100$

正如你看到的,IP地址必须用perl常用格式来输入。如果你的munin服务器不只一台,那么你可以用多行允许命令来定义它们。

每个munin节点都用tcp端口4949来和munin服务器通讯,所以你必须确保这个端口在主机防火墙上是打开的,并且在节点和服务器中间环节的任何一个防火墙上都允许数据通过。你可以在munin-node.conf文件中的port选项来定义这个端口号。

除了基本设置外,我们还需要指示节点哪些数据是需要收集的。Munin采用插件程序的架构方式来定义监控内容。例如,有专门监控CPU的插件,还有监控负载、内存和其它内容的各种插件。Munin的所有插件清单可以在/etc/munin/plugins目录下找到,它们以链接到插件的sym-links形式显示。添加一个插件到munin的过程就是将插件文件的链接写入到/etc/munin/plugins目录下。如果插件需要某个配置,例如定义运行插件要求的用户,你都可以在目录/etc/munin/plugins.conf.d下找到该配置文件。

munin默认包含很丰富的内容,你可能不需要改变初始的基本设置,因为它们已经提供了足够的采集数据。Munin还提供大量有用的插件,你还能在社区中找到许多别人交流的插件。你可以用你熟悉的语言很容易开发出新的插件来。

最后,我们通过运行munin-node init脚本来启动munin服务器和节点。

$ sudo /etc/init.d/munin-node start

这样就能开始munin监控并收集需要的数据,munin控制将周期性地查看每个节点的数据然后将其上传到munin服务器上。接着就可以通过munin控制上的网页服务来查看结果数据了。

所有的内容就是这些了。现在你可以用图形界面查看你的服务器的行为状态,并且可以探测到性能趋势和可能发生的问题。如果你觉得munin不适合你,也可以考虑使用另一个叫做collected的工具,它和munin比较相似,用C语言编写,它提供的功能可能比munin更加完善。它要求安装额外的软件来获取这些功能,但也是一个不错的可供参考的平台。

目录
相关文章
|
6月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
11月前
|
安全 Java Linux
Websoft9:为开发者打造的高效 Linux 服务器面板
Websoft9 是一款以开源应用部署与管理为核心的服务器面板,采用“环境即服务”模式。它通过运行环境标准化、自动化配置、安全融合和资源管理四个方面实现平台与环境的深度协同。支持多语言框架预集成、云原生组件整合,提供 200+ 应用模板一键部署,并具备全流程安全防护和统一资源监控能力,助力开发者高效管理和扩展应用环境。
337 0
|
8月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
1485 21
|
7月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
748 13
|
7月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
2542 0
|
9月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
496 24
|
7月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
762 0
|
9月前
|
存储 安全 Ubuntu
从Linux到Windows:阿里云服务器系统镜像适配场景与选择参考
阿里云为用户提供了丰富多样的服务器操作系统选择,以满足不同场景下的应用需求。目前,云服务器的操作系统镜像主要分为公共镜像、自定义镜像、共享镜像、镜像市场和社区镜像五大类。以下是对这些镜像类型的详细介绍及选择云服务器系统时需要考虑的因素,以供参考。
|
8月前
|
Linux
Linux下版本控制器(SVN) -服务器端环境搭建步骤
Linux下版本控制器(SVN) -服务器端环境搭建步骤
361 0
Linux下版本控制器(SVN) -服务器端环境搭建步骤
|
10月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
756 28