[Linux实用工具]munin-node插件配置和插件编写

前面介绍了2篇munin使用的相关文章:

这次介绍一下munin-node的插件的安装配置和插件的编写。

插件配置

munin-node本身就集成了很多的插件,只需要直接建个软链就可以了。像Nginx、Apach、mysql都是有现成的插件可以使用的。

munin的插件默认保存在/etc/munin/plugins里面。进去查看会发现很多软链,软链到/usr/share/munin/plugins 这个目录下的文件。没错,munin的插件都是放置在/usr/share/munin/plugins 下的。使用相当简单,只需要参考原有的例子,直接建软链过去就可以了。

下面以mysql的插件为例:

ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb

然后重启一下munin-node 就可以生效了。

service munin-node restart

插件编写

如果需要监控的应用没有相关的插件支持怎办?也很简单。随意打开一个现有的插件,会发现具体的代码内容,观察发现编写一个插件也不是很难。而且munin-node的插件支持shell、python、perl。也可以根据自己熟悉的语言来编写插件。

munin-node 提供的插件实例

以threads (/usr/share/munin/plugins/threads)插件为例,我们可以查看内部代码:

#!/bin/sh
# -*- sh -*-
# vim: ft=sh

if [ "$1" = "autoconf" ]; then
    grep -q ‘^Threads‘ /proc/$$/status && echo "yes" || echo "no"
    exit 0
fi

if [ "$1" = "config" ]; then
    echo ‘graph_title Number of threads‘
    #echo ‘graph_args --base 1000 -l 0 ‘
    echo ‘graph_vlabel number of threads‘
    echo ‘graph_category processes‘
    echo ‘graph_info This graph shows the number of threads.‘
    echo ‘threads.label threads‘
    echo ‘threads.info The current number of threads.‘
    exit 0
fi

grep -s ‘^Threads‘ /proc/[0-9]*/status | awk ‘{ sum += $2; } END { print "threads.value", sum; }‘

可以直接执行插件的文件查看输出数据的结构。可以发现所有的输出的格式都是一样的,而且都有1个参数。

分别使用参数autoconf、config和不使用参数,查看输出内容:

# sh threads autoconf

yes

# sh threads config

graph_title Number of threads

graph_vlabel number of threads

graph_category processes

graph_info This graph shows the number of threads.

threads.label threads

threads.info The current number of threads.

# sh threads

threads.value 174

参数说明

autoconf

用于检测是否有进程的存在。非必要。

config

使用config参数的时候,输出的内容是绘图的配置信息,查看字段意思也可以知道字段的意思。

不使用参数

不使用参数的时候,输出的是具体的进程数量。这个跟具体的命令输出有关系。

grep -s ‘^Threads‘ /proc/[0-9]*/status | awk ‘{ sum += $2; } END { print "threads.value", sum; }‘

自定义插件

既然知道每个参数需要输出的具体内容,那么我们就可以依葫芦画瓢,我们就可以写出我们自己的插件。下面给出一个具体的例子,该例子用于监控一个游戏服务器的内存和CPU。

#!/bin/sh

keyword=munin-node

case $1 in
   (config)
      cat <<‘EOM‘
graph_title MY_TITLE
graph_vlabel (%)
graph_args --base 1000 -l 0
graph_scale no
graph_category MY_CATEGORY
EOM
ps aux | grep $keyword | grep -v grep | awk ‘{print $3,$4}‘ | while read cpu mem
do
   echo "CPU.label %CPU"
   echo "CPU.warning 200"
   echo "CPU.critical 400"
   echo "CPU.value $cpu"

   echo "MEM.label %MEM"
   echo "MEM.warning 20"
   echo "MEM.critical 50"
   echo "MEM.value $mem"

done
 exit 0;;
esac
ps aux | grep $keyword | grep -v grep | awk ‘{print $3,$4}‘ | while read cpu mem
do
   echo "CPU.value $cpu"
   echo "MEM.value $mem"
done

这里没有使用autoconf参数,其实应该使用的,万一该进程不存在怎么办,是吧。其实没有统计到数值的时候,图表是空的,所有才说autoconf参数不是必须的。

这个例子与threads不一样的是,这里收集到的是多条数据。

插件写好了之后,需要在/etc/munin/plugin-conf 配置一下。加入上面例子以munin-node_cpu 文件名保存。

在/etc/munin/plugin-conf 下新增一个文件,名字可以任意,如munin_info:

# cat munin_info
[munin-node_cpu]
user root

然后重启munin-node就可以了。

是吧,插件编写其实很简单吧。只要输出的格式符合要求,随便你使用perl、python还是shell。具体的监控完全可以自定义。譬如我假设有访问游戏服在线人数的接口,我也可以拿出来监控,当在线人数超过多少的时候给予相关提示。

开始使用独立博客了,原文地址在这里:

[Linux实用工具]munin-node插件配置和插件编写,布布扣,bubuko.com

时间: 2024-12-28 21:51:25

[Linux实用工具]munin-node插件配置和插件编写的相关文章

[Linux实用工具]Linux监控工具munin的展示(Nginx)

Munin的安装和配置可以参考第一篇文章: [Linux实用工具]Linux监控工具munin的安装和配置 http://www.cnblogs.com/rond/p/3757804.html Munin的结果是用html展示的.所以展示结果非常简单,只需要部署一个web服务器就可以了.但是如果你需要细看展示结果的话,就需要配置下了. 本篇文章分成2部分说明: 1. web服务器展示监控结果(nginx): 2. 动态展示静态munin的结果. //-----------------------

十大好用的Linux实用工具推荐

这 10 个 Linux 工具可以帮助大家提高工作和使用效率,非常实用. 1.w 对,你没看错,就是 w 命令.使用该命令我们可以查看到当前登录系统的用户是谁,以及执行了哪些命令. 2.nmon Nmon 是一个可以监控当前系统性能的小工具,使用之前需要先用如下命令进行安装: sudo apt-get install nmon 安装好后执行 nmon 命令即可打开: nmon nmon 可以查看网络.CPU.内存和磁盘的使用情况. 打开之后按 c 查看 CPU 信息: 打开之后按 n 查看网络信

[Linux实用工具]Linux监控工具munin的安装和配置

〇.摘要 munin是用于Linux系统(也可以监控windows系统)的监控软件.munin除了可以监控系统的各项数值之外,最大的好处是可以自己编写插件自定义监控需要的数值.整个系统的架构简单明了,操作方便.如果是使用Debian或者Ubuntu安装,安装过程也非常简单.munin除了可以监控结果,也可以设置报警.对于我个人对性能测试的工作来说,是个非常好的工具. 1. 内容 munin整个使用下来,篇幅会有点大,包括展示.自定义插件.这边分成三个部分来说明.本次只讲安装和配置. munin 

Linux 实用工具——Tree 命令,文件目录列表

简介 浏览他人技术博客的时候,会看到用文本列出漂亮的文件夹目录,实际大部分都是使用了Linux下的Tree命令.以下简单介绍下Tree命令的格式和例子. 安装 一般Linux系统是不自带Tree命令工具的,可以通过以下命令获取和安装: sudo apt-get install tree 格式 通过上述命令获取后,可以通过一下命令显示使用方法: tree --help 显示如下: usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-H baseHREF] [-

Linux 实用工具vi

vi有输入和命令两种工作模式.命令模式是用来运行一些编排文件.存档以及离开vi等操作命令. 当执行vi后,首先进入命令模式,此时输入的人数字符都被视为命令. 在命令模式下,可以使用如下两个键进入文本输入模式 "A键":在当前的光标后面添加文本 a代表append "I键":在当前的光标前面添加文本 i代表insert 在输入模式下如果用户希望回到命令模式的时候, 只能在输入模式下使用Esc键切换到命令模式,之后会在屏幕底部出现光标等待输入命令 使用vi新建一个文档

ElasticSearch搜索引擎安装配置拼音插件pinyin

一.pinyin插件安装 1.首先前往GitHub下载安装包(注意版本与ElasticSearch对应,若无对应版本,解压后修改pom.xml文件中的elasticsearch.version,建议查看修改一下版本号),上传至/home/目录,并解压至当前目录,如下图所示: 1 vim /home/elasticsearch-analysis-pinyin-6.3.2/pom.xml 2.然后切换至解压目录进行编译(若无安装Maven工具,首先安装Maven才能编译,具体参考Linux安装Mav

maven学习:jetty插件与Tomcat插件

1.jetty插件 要测试的web的pom里面,加入jetty的插件配置,示例如下: <!-- jetty插件 --> <plugin>     <groupId>org.mortbay.jetty</groupId>     <artifactId>jetty-maven-plugin</artifactId>     <version>8.1.14.v20131031</version>     <c

linux系统管理员之自动化检测工具 nagios及其插件配置

配置方式:源码编译. 参考: Linux下Nagios的安装与配置 nagios图像化pnp4nagios的安装和配置 烂泥:学习Nagios(四):pnp4nagios图形化绘制nagios数据 上面这三篇文章对我学习nagios的帮助很大,在此表示感谢. 言归正传,开始我们的配置吧. ---------------------------------------------------------------------------------------------------------

Node环境配置及Gulp工具

1.GitLab网上使用 两种登录方式 通过Http登录,需要用户名和密码 通过SSH登录,不需要用户名和密码只需要RSA密钥就行,RSA通过在git bash中输入 ssh-keygen -t rsa生成,生成好的密钥通过生成的路径找到对应的id_rsa.pub文件,将其内容添加到gitlab中并保存ssh密钥,以后的push 或者pull操作都不会需要用户名和 密码. 克隆仓库 git clone 你的地址(这里可以通过https地址或者通过SSH方式获取你的网上仓库) 获取仓库内容 git