用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更加完善。它要求安装额外的软件来获取这些功能,但也是一个不错的可供参考的平台。

目录
相关文章
|
17天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
20天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 &lt;&lt;EOF binary put file.txt quit EOF ```
29 4
|
1月前
|
弹性计算 运维 监控
ECS资源监控
ECS资源监控涉及CPU、内存、磁盘I/O、网络流量、系统负载和进程的关键指标,通过云服务商控制台、监控服务、API与SDK、运维工具进行实时监控和告警设置。支持历史数据查询、事件监控,以及使用Windows资源监视器和Linux系统工具进行操作系统层面监控。全面监控确保ECS实例稳定运行、资源有效利用和问题及时处理。如需特定云服务商的指导,请询问。
36 3
|
1天前
|
Linux
如何将一个linux服务器挂载到另外一个linux服务器上
如何将一个linux服务器挂载到另外一个linux服务器上
13 1
|
2天前
|
监控 Linux 网络安全
Linux服务器如何查询连接服务器的IP
【4月更文挑战第15天】Linux服务器如何查询连接服务器的IP
9 1
|
3天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
41 2
|
7天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
10天前
|
监控 Linux
linux监控指定进程
请注意,以上步骤提供了一种基本的方式来监控指定进程。根据你的需求,你可以选择使用不同的工具和参数来获取更详细的进程信息。
14 0
|
10天前
|
监控 Linux 网络安全
linux中启动rpc.rstat监控
请注意,rpc.rstatd服务通常用于收集远程系统的性能统计信息,例如CPU利用率、内存使用等。在使用rpc.rstatd服务之前,你应该确保了解其功能、用法和安全性,并根据需要进行适当的配置和调整。
8 0
|
13天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1242 8