分类 技术 下的文章

Nginx网站服务器在生产环境中运行的时候需要进行实时监控。实际上,诸如Nagios, Zabbix, Munin 的网络监控软件是支持 Nginx 监控的。

如果你不需要以上软件提供的综合性报告或者长期数据统计功能,只是需要一种快速简便的办法去监控 Nginx 服务器的请求的话,我建议你采用一个叫 ngxtop 的命令行工具。

你马上就会发现 ngxtop 从界面和名称都借鉴了著名的top命令。ngxtop 是通过分析 Nginx 或者其他的日志文件,使用类似 top 命令的界面实时展示出来的。你可以说你知道的其他高端监控工具,但是在简洁这方面 ngxtop 无疑是最好的。简单就意味着不可替代。

本指南中,我将介绍如何使用 ngxtop 实时监控 Nginx 网站服务器。

Linux 上安装 ngxtop

首先在 Linux 系统中安装依赖库pip(LCTT译注:ngxtop是用python编写的)。

然后使用如下命令安装 ngxtop。

$ sudo pip install ngxtop

ngxtop 使用

基本使用方法如下:

ngxtop [options]
ngxtop [options] (print|top|avg|sum) <var>
ngxtop info

这里是一些通用选项。

  • -l : 指定日志文件的完整路径 (Nginx 或 Apache2)
  • -f : 日志格式
  • --no-follow: 处理当前已经写入的日志文件,而不是实时处理新添加到日志文件的日志
  • -t : 更新频率
  • -n : 显示行号
  • -o : 排序规则(默认是访问计数)
  • -a ..., --a ...: 添加表达式(一般是聚合表达式如: sum, avg, min, max 等)到输出中。
  • -v: 输出详细信息
  • -i : 只处理符合规则的记录

以下是一些内置变量,他们的含义不言自明。

  • bodybytessend
  • http\_referer
  • httpuseragent
  • remote\_addr
  • remote\_user
  • request
  • status
  • time\_local

使用 ngxtop 监控 Nginx

ngxtop 默认会从其配置文件 (/etc/nginx/nginx.conf) 中查找 Nginx 日志的地址。所以,监控 Nginx ,运行以下命令即可:

$ ngxtop

这将会列出10个 Nginx 服务,按请求数量排序。

显示前20个最频繁的请求:

$ ngxtop -n 20

获取Nginx基本信息:

$ ngxtop info

你可以自定义显示的变量,简单列出需要显示的变量。使用 "print" 命令显示自定义请求。

$ ngxtop print request http_user_agent remote_addr

显示请求最多的客户端IP地址

$ ngxtop top remote_addr

显示状态码是404的请求

$ ngxtop -i 'status == 404' print request status

除了Nginx,ngtop 还可以处理其他的日志文件,比如 Apache 的访问文件。使用以下命令监控 Apache 服务器:

$ tail -f /var/log/apache2/access.log | ngxtop -f common

via: http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html

译者:shipsw 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

以前我总想知道如何为我的Bash脚本创建命令行参数。经过搜索,我发现了2个函数可以处理这个问题,getopt 函数和 getopts 函数。我无意争论哪一个函数更好的。getopts 是一个shell内建命令,而且似乎比 getopt 更容易实现这个功能,所以在这篇文章里我准备讲讲getopts。

bash getopts

开始的时候,我只试着处理传递给脚本的命令行参数。最后,我添加了另外一些有用的功能函数,使得这个脚本可以成为其他任何交互式脚本处理命令行的开始模板。我还添加了一个纯文本格式的帮助函数,让脚本更加容易阅读。

与其来一长段文字解释 getopts 在bash中是如何工作的,我认为不如直接来一个能工作的脚本更让人觉得轻松一些。

#!/bin/bash

######################################################################
#This is an example of using getopts in Bash. It also contains some
#other bits of code I find useful.
#Author: Linerd
#Website: http://tuxtweaks.com/
#Copyright 2014
#License: Creative Commons Attribution-ShareAlike 4.0
#http://creativecommons.org/licenses/by-sa/4.0/legalcode
######################################################################

#Set Script Name variable
SCRIPT=`basename ${BASH_SOURCE[0]}`

#Initialize variables to default values.
OPT_A=A
OPT_B=B
OPT_C=C
OPT_D=D

#Set fonts for Help.[译注: 这里tput用来更改终端文本属性,比如加粗,高亮等]
NORM=`tput sgr0`
BOLD=`tput bold`
REV=`tput smso`

#Help function
function HELP {
  echo -e \\n"Help documentation for ${BOLD}${SCRIPT}.${NORM}"\\n
  echo -e "${REV}Basic usage:${NORM} ${BOLD}$SCRIPT file.ext${NORM}"\\n
  echo "Command line switches are optional. The following switches are recognized."
  echo "${REV}-a${NORM}  --Sets the value for option ${BOLD}a${NORM}. Default is ${BOLD}A${NORM}."
  echo "${REV}-b${NORM}  --Sets the value for option ${BOLD}b${NORM}. Default is ${BOLD}B${NORM}."
  echo "${REV}-c${NORM}  --Sets the value for option ${BOLD}c${NORM}. Default is ${BOLD}C${NORM}."
  echo "${REV}-d${NORM}  --Sets the value for option ${BOLD}d${NORM}. Default is ${BOLD}D${NORM}."
  echo -e "${REV}-h${NORM}  --Displays this help message. No further functions are performed."\\n
  echo -e "Example: ${BOLD}$SCRIPT -a foo -b man -c chu -d bar file.ext${NORM}"\\n
  exit 1
}

#Check the number of arguments. If none are passed, print help and exit.
NUMARGS=$#
echo -e \\n"Number of arguments: $NUMARGS"
if [ $NUMARGS -eq 0 ]; then
  HELP
fi

### Start getopts code ###

#Parse command line flags
#如果选项需要后跟参数,在选项后面加":"
#注意"-h"选项后面没有":",因为他不需要参数。选项字符串最开始的":"是用来去掉来自getopts本身的报错的,同时获取不能识别的选项。(译注:如果选项字符串不以":"开头,发生错误(非法的选项或者缺少参数)时,getopts会向错误输出打印错误信息;如果以":"开头,则不会打印[在man中叫slient error reporting],同时将出错的选项赋给OPTARG变量)

while getopts :a:b:c:d:h FLAG; do
  case $FLAG in
    a)  #set option "a"
      OPT_A=$OPTARG
      echo "-a used: $OPTARG"
      echo "OPT_A = $OPT_A"
      ;;
    b)  #set option "b"
      OPT_B=$OPTARG
      echo "-b used: $OPTARG"
      echo "OPT_B = $OPT_B"
      ;;
    c)  #set option "c"
      OPT_C=$OPTARG
      echo "-c used: $OPTARG"
      echo "OPT_C = $OPT_C"
      ;;
    d)  #set option "d"
      OPT_D=$OPTARG
      echo "-d used: $OPTARG"
      echo "OPT_D = $OPT_D"
      ;;
    h)  #show help
      HELP
      ;;
    \?) #unrecognized option - show help
      echo -e \\n"Option -${BOLD}$OPTARG${NORM} not allowed."
      HELP
      #在这里如果你不想打印完整的帮助信息,只想显示简单的错误信息,去掉上面的两行,同时使用下面的两行。
      #echo -e "Use ${BOLD}$SCRIPT -h${NORM} to see the help documentation."\\n
      #exit 2
      ;;
  esac
done

shift $((OPTIND-1))  #This tells getopts to move on to the next argument.

### End getopts code ###


### Main loop to process files ###

#这里你可以用你的脚本处理逻辑来替代。这个例子只是在终端中打印文件的文件名和后缀名。你可以把任意其他的文件处理任务放到这个while-do循环中。   

while [ $# -ne 0 ]; do
  FILE=$1
  TEMPFILE=`basename $FILE`
  #TEMPFILE="${FILE##*/}"  #另外一种获取不带后缀的文件名的方法。
  FILE_BASE=`echo "${TEMPFILE%.*}"`  #file without extension
  FILE_EXT="${TEMPFILE##*.}"  #file extension


  echo -e \\n"Input file is: $FILE"
  echo "File withouth extension is: $FILE_BASE"
  echo -e "File extension is: $FILE_EXT"\\n
  shift  #Move on to next input file.
done

### End main loop ###

exit 0

将上面的代码复制到你的文本编辑器里,然后保存到你的可执行路径下。我将这个脚本命名为 options 并保存到 /home/linerd/bin 路径下。保存之后记得给你的脚本添加可执行权限。

chmod +x ~/bin/options

现在脚本已经可以运行了。试试用 -h 参数来打印帮助信息吧。

options -h

遇到不支持的选项,脚本同样可以给出提示,并打印帮助信息。

options -z

最后,getopts可以以任意的顺序处理你给的命令行参数。唯一的限制是你要处理的文件必须放在所有参数的最后。

options -d bar -c chu -b man -a foo example1.txt example2.txt

现在你可以从这些例子里看到如何通过命令行参数给脚本里的变量赋值。这个脚本里除了getopts还有很多其他的东西,但是我认为这些就足以成为一个新脚本的开头模板了。如果你有兴趣更深入地学习bash的getopts,你可以找找深埋在man page的“Builtins”这一节里的文档,也可以从 Bash Reference Manual 找到信息。

接下来呢?

你会用getops来干什么呢?在评论里告诉我吧。


via: http://tuxtweaks.com/2014/05/bash-getopts/

译者: CNprober <[email protected], QQ619913541> 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

从内容管理系统到简单的表格,数据库是每一个开发项目的一部分。这就是为什么开发者们如此强调使用正确类型的数据库工具。下面这些可能对您有所帮助!

1. Autotabla

Autotabla是一个你的程序的SQL数据表的CGI管理界面。只需要提供你数据库架构的XML描述,你就可以创建/修改/删除数据库记录。 HTML输出可以通过CSS完全自定义。使用Perl/DBI模块而支持各种数据库。

2. Cruddy!

Cruddy!是一个以CGI::CRUD为框架的应用程序,它为你的数据库提供了一个即时的Web前端的CRUD接口。

3. myPhile

这是一个可定制的MySQL表的通用管理界面。

4. NG-Admin

这是一个数据库内容的管理工具。

5. phpMoAdmin

这是一个PHP写的MongoDB管理工具。

6. phpMSAdmin

phpMSAdmin是用PHP编写的工具,它允许您通过Web浏览器管理一个微软的SQL Server ,而不需要Windows或专有的企业管理器。它允许你创建/修改:数据库,表,视图,触发器等

7. RockMongo

RockMongo,一个MongoDB的管理工具,在PHP5中实现,类似phpMyAdmin。

8. WizMySQLAdmin

WizMySQLAdmin类似最有名的MySQL数据库管理器phpMyAdmin,但它非常易于安装和维护。它只由一个文件组成,并支持多种数据库和表的创建和处理。


via: http://www.efytimes.com/e1/fullnews.asp?edid=138307

译者:乌龙茶 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

当你在终端或者控制台工作时,你可能想要记录在终端中所做的一切。这些记录可以用来当作史料,保存终端所发生的一切。比如说,你和一些Linux管理员们同时管理着相同的机器,或者你让某人远程登陆到了你的服务器上,你可能记录想要终端里发生的一切。要实现这个目标,你可以使用script命令。

script是什么

scirpt就是一个命令,可以制作一份记录输出到终端的记录。对于那些想要真实记录终端会话的人来说,这很有用。该记录可以保存并在以后再打印出来。

怎么用

默认情况下,我们可以通过在终端中输入script来启动scirpt命令。

pungki@dev-machine:~$ script
Script started, file is typescript
pungki@dev-machine:~$

你也可以指定目标文件名来记录打印结果。

pungki@dev-machine:~$ script myfile

Define script file

当你再次见到命令提示符,这意味着终端将记录打印到终端的任何东西。

你会看到当前目录,有个名为myscript的文件。(LCTT译注,此处原文有误。这里指定了记录文件名为myfile,而不是默认的 typescript。)

为什么我们要用script命令

因为在之前已经提到过,script命令的主要功能是记录所有的东西。下面给出了两个使用该命令的场景。

和同事共事时

当和同事一起工作时,我们可以通过script来记录你的活动。

比如,我们会使用名为collaborate的打印文件,来完成打印:

$ script collaborate

Create collaborate file

然后,在完成一些任务后,假如你需要把你干的活发给另外一个工程师,那就把那文件发给他。所以当另外一个工程师需要复查所做的事情,他只要用文本编辑器打开这个文件就行了。

如果他想要更新该文件(以增加他的工作部分),可以使用-a选项。

$ script -a collaborate

Append the file

记录某人在终端中的所作所为

你可能让你的工程师或者某个人远程访问你的系统,要确保你的工程师正在干正确的事,你可以记录下他在你系统上的所作所为。要让script命令在登录时自动运行,我们可以把它添加进shell环境配置文件中。如果你正在使用bash shell,把这一行加进你的bash环境配置文件中。

$ vi ~/.profile

# run the script command to record everything
# use -q for quite and -a option to append the script
#
/usr/bin/script -qa /usr/local/script/log_record_script

Add script to bash profile

然后保存。下次他登录进你的系统时,script命令就会自动运行,并把日志记录进/usr/local/script/logrecordscript

Script without notification

-q选项可以让scirpt命令以静默模式运行,登录进来的用户不会知道script命令已经运行了。而-a选项将会让记录附加到文件中,而不会擦除先前的记录。

如果不使用-q选项,那么当用户登录进来时,他会收到像下图中这样的通知。

Script with notification

退出记录

要退出记录活动,我们可以在终端中按下Ctrl+D,或者输入exit。在退出script前,你会发现记录文件的大小为0 Kb,而在退出之后,文件大小会发生改变。

结尾

Script命令在你需要记录或者存档终端活动时可能很有用,记录文件会存储为文本文件,所以可以很方便地用文本编辑器打开。跟平常一样,我们都可以通过输入man script或者scirpt -h来显示帮助页并查看更多详细用法。


via: http://linoxide.com/linux-command/script-command-recorder/

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

通常,网络或系统管理员有责任来管理其所管理的网络下的一个或多个子网。例如,当一个网段分配了/24子网,那么该子网就有254个IP地址可以用于不同用途。要跟踪某个IP被分配到了哪个主机,就需要通过某种方式记录下来。最简单的方法,就是使用一个电子表格,如Excel来记录IP地址的分配信息。此方法对于只有一个管理员,并且网络很小的情况下比较奏效。然而,对于多个大型网络而言,依赖于电子表格并不方便,而且十分容易出错。更糟糕的是,如果有多个管理员参与管理,更新电子表格就十分麻烦了,因为每个管理员可能生成各种不同版本的文档记录。

一种系统地管理IP地址分配的方式是使用网络化的IP地址管理工具。不仅仅是因为网络化管理工具能在任何地方访问并管理,而且其后端数据库也能保证所有更新能正确同步并实时生效。尽管有许多可用的网络化应用工具,但我们将在此教程中关注如何来安装phpIPAM(IP Address Manager IP地址管理工具)。phpIPAM是一个开源、高效的IP地址管理应用软件,有着以下一些特性。

  • 同时支持IPv4和IPv6(和其它工具不同,它对IPv6支持得很好)
  • 内建的IPv4和IPv6计算器
  • 支持无类域间路由(CIDR)标记
  • 支持MySQL数据库
  • 子网嵌套
  • 基于用户/组权限
  • 可视化报表工具
  • 使用.xls文件导入/导出
  • 支持设备、VRF和VLAN
  • 强大的搜索引擎
  • 电子邮件标记
  • 支持基于AD/LDAP的验证

可访问http://demo.phpipam.net查看phpIPAM演示网站。

在本教程中,我们将在Ubuntu环境中使用Apache来配置phpIPAM

在Ubuntu上安装phpIPAM

首先,使用apt-get来安装需要的软件包。

# apt-get install apache2 mysql-server php5 php5-gmp php-pear php5-mysql php5-ldap wget

如果MySQL是首次安装,请使用以下命令来设置root密码。

# mysqladmin -u root password NEWPASSWORD 

phpIPAM可以安装在任何Web服务器目录中,我们将会安装到Apache Web服务器的根目录下的/phpipam/子目录中。

下载phpIPAM软件包。

# wget http://kent.dl.sourceforge.net/project/phpipam/phpipam-1.0.tar

将软件包解压到Web服务器相应目录。

# cp phpipam-1.0.tar /var/www/
# cp /var/www/
# tar xvf phpipam-1.0.tar
# rm phpipam-1.0.tar 

现在来指定MySQL的用户名和密码,同时指定基准目录。

# vim /var/www/phpipam/config.php 

$db['host'] = "localhost";

## MySQL user for ipam ##
$db['user'] = "phpipam";

## password for the MySQL user ##
$db['pass'] = "phpipamadmin";

## database for MySQL ##
$db['name'] = "phpipam";

## base directory ##
define('BASE', "/phpipam/");

需要在提供的.htaccess文件中指定基准目录。

# vim /var/www/phpipam/.htaccess 
RewriteBase /phpipam/

准备Apache Web服务器

phpIPAM的运行需要Apache 的 Rewrite模块,该模块可以在Ubuntu或Debian机器上使用以下命令来启用。

# a2enmod rewrite 

接下来,需要修改Apache的默认配置。请添加/修改你的配置,使它看起来像下面这样。

# vim /etc/apache2/sites-enabled/000-default 
<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
</Directory>

最后,重启Apache Web服务。

# service apache2 restart 

完成安装

我们可以使用浏览器来完成phpIPAM的安装。将浏览器地址指向URL: http:///phpIPAM,将会显示以下phpIPAM安装页面。我们可以开始自动化数据库安装。

现在,phpIPAM应该已经起来,并正在运行了,我们可以使用以下默认用户来登录。

  • URL: http:///phpipam
  • User: Admin
  • Pass: ipamadmin

使用phpIPAM管理IP地址

在本教程的剩下部分,我们将引领你进入phpIPAM的子网和IP地址管理。

创建区域

让我们从为我们的网络创建区域开始吧。点击“管理” > “区域”。

点击“添加区域”。现在我们可以为我们的添加的区域取个你想要的名称了(如:"Our Network"),填上区域的详细情况。

]3

创建子网

接下来,在上面场景的区域“Our Network”下添加一个新的子网172.16.1.0/24。点击“Our Network” > “添加子网”

现在,我们可以很容易地在子网中添加IP地址了。一种方法是逐个来添加它们,phpIPAM提供了一个可选的方法:扫描所有主机并自动添加,这一点都不麻烦。它可以扫描位于同一广播域下的本地子网,也可以通过路由扫描到远程子网。在选择一个子网后,像下面这样点击“扫描子网中的新主机”来扫描IP地址。

]4

在扫描完成后,发现的IP地址可以通过点击底部“添加发现的主机”按钮来将IP地址添加到数据库。

创建IPv6子网

可以通过相似的步骤来创建IPv6子网,像下面截图中展示的那样来指定IPv6网络。

所有用于IPv4的工具也可以用于IPv6.

创建嵌套子网

phpIPAM也提供了创建嵌套子网的选项,可以用于IPv4和IPv6。例如,我们将172.16.1.0/24 IP区块划分成4个更小的子网(/26),每个子网用于组织内特定的部门。在选择/24子网后,我们可以使用“添加新的嵌套子网”按钮来创建嵌套子网。截图中展示了添加嵌套子网的图标。

5

在所有的子网创建完毕后,我们应该有相同的输出。以下是嵌套子网预览窗口。

6

添加用户和组

首先,我们将为区域“Our Network”创建一个具有读/写权限的组。这项工作可以通过选择“管理” > “组” > “创建组”来完成。

既然组已经被创建完成,那么我们来修改区域权限,选择“管理” > “区域”,然后编辑区域。

7

我们将创建一个名为“user1”的用户,添加该用户到“演示组”,以便该用户能从该组集成有所必要的权限。我们从点击“管理” > “用户” > “创建用户”开始。

现在,我们能以该用户身份登录,并添加/修改“我们的网络”下的IP地址。

最后小结,phpIPAM是一个多样化的IP地址管理工具,可以用于IPv4和IPv6。本教程仅关注基本内容,以帮助你开始使用该工具。你一定要测试所有可用的特性,如使用IP地址计算器,添加设备,VLAN和VRF,以及使用.xls导入/导出。

希望本教程对你有所帮助。


via: http://xmodulo.com/2014/05/manage-ip-addresses-subnets-phpipam.html

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

有时候,无论是普通用户还是系统管理员,都需要知道系统运行是否良好。与系统状态相关的许多问题,都可以通过检查运行的服务所生成的日志文件来获得答案。然而,即便对于干过几年的系统管理员而言,要检查日志文件的每个细节都不是件容易的事。这也是为什么他们依赖于监控软件的原因,监控软件能够从不同的源收集信息,并以易于理解的格式给出分析报告,如图表、可视化图像、统计数据等。

市面上流传着许多复杂的系统监控软件,诸如Cacti, Nagios, Zabbix, Munin此类。在本文中,我们向您介绍一个轻量级的监控工具——Monitorix,该工具设计用于在Linux/BSD上监控系统资源和许多熟知的第三方应用程序。由于专为资源有限的嵌入式系统而优化,Monitorix以使用简单,消耗内存资源少而著称。它内建了一个HTTP服务器用于提供web界面,并使用RRDtool数据库来存储时间序列统计数据,RRDtool可以很容易地和任何脚本语言整合,如Perl,Python,shell脚本,Ruby等。

主要特性

这里列出了Monitorix的主要特性。要查看完整列表,请参阅官方网站

  • 当前系统负载和系统服务
  • CPU/GPU温度传感器
  • 磁盘温度和健康度
  • 网络/端口流量和网络状况统计
  • 邮件统计
  • Web服务器统计(Apache,Nginx,Lighttpd)
  • MySQL负载和统计
  • Squid代理统计
  • NFS服务器/客户端统计
  • Raspberry Pi传感器统计
  • Memcached统计

在Fedora, CentOS或者RHEL上安装并配置Monitorix

首先,安装需要的软件包。注意,在CentOS上,你需要先设置 EPELRepoforge仓库。

$ sudo yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL

完成上一步后,可以通过以下命令来安装Monitorix:

$ sudo yum install monitorix 

要配置Monitorix,打开/etc/monitorix/monitorix.conf配置文件,并修改选项。关于Monitorix的配置文件细节,可以查阅http://www.monitorix.org/documentation.html

默认情况下,内建的HTTP服务器监听8080端口。因此,确保你的防火墙没有阻止TCP 8080端口。

要启动Monitorix,只需输入以下命令:

$ sudo service monitorix start 

启动你喜爱的Web浏览器,然后通过http://:8080/monitorix来访问Monitorix的Web界面。

在Archlinux上安装并配置Monitorix

在Archlinux上,可以从AUR上下载Monitorix包。

默认情况下,在Archlinux上是禁用了其内建HTTP服务器的。要启用内建的HTTP服务器,请编辑/etc/monitorix.conf文件的如下区块。

<httpd_builtin>
        enabled = y
        host =
        port = 8080
        user = nobody
        group = nobody
        log_file = /var/log/monitorix-httpd
        hosts_deny =
        hosts_allow =
        <auth>
                enabled = n
                msg = Monitorix: Restricted access
                htpasswd = /var/lib/monitorix/htpasswd
        </auth>
</httpd_builtin>

最后,启动Monitorix服务。

打开你喜欢的Web浏览器,然后通过http://:8080/monitorix来访问Monitorix的Web界面。

在Debian和Ubuntu上安装并配置Monitorix

对于Debian家族,Monitorix可以通过两种方式安装:手工安装或通过第三方软件仓库。

手工安装(用于Debian)

首先安装所有依赖包。

$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl

http://www.monitorix.org/downloads.html下载Monitorix包,并安装。

$ sudo dpkg -i monitorix*.deb

在安装期间,会要求你配置一个后端Web服务器。如果你正是用Apache,确保重启Apache服务来重新加载Apache配置。

$ sudo service apache2 reload 

通过软件仓库安装 (用于Ubuntu)

在/etc/apt/source.list中添加以下行来启用Izzysoft仓库。

deb http://apt.izzysoft.de/ubuntu generic universe

下载并为软件仓库添加GPG密钥。

$ wget http://apt.izzysoft.de/izzysoft.asc
$ sudo apt-key add izzysoft.asc 

使用apt-get安装Monitorix,所有依赖包也将自动安装。

$ sudo apt-get update
$ sudo apt-get install monitorix 

最后,启动Monitorix服务。

$ sudo service monitorix start 

要配置Monitorix,请使用文本编辑器编辑/etc/monitorix/monitorix.conf,并重启Monitorix服务。

$ sudo service monitorix restart 

用于Ubuntu的内建Web服务器默认启用。要从Web查看监控结果,在你喜爱的Web浏览器中访问http://8080/monitorix

在Raspberry Pi上安装并配置Monitorix

如果想要在Raspberry Pi(基于Debian)上安装Monitorix,你不能使用上面提到的Izzysoft仓库,因为它不提供Monitorix的ARM移植。取而代之的是,你可以参照如下基于Debian的手工安装。

首先,安装需要的软件包。

$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl

如果某些需要的软件包没有安装,我们需要使用此命令来强制安装。

$ sudo apt-get -f install 

http://www.monitorix.org/downloads.html下载Monitorix软件包(monitorixx.x.x-izzy1all.deb)。

使用下面的命令来安装Monitorix包。

$ sudo dpkg -i monitorix_x.x.x-izzy1_all.deb 

安装完成后,我们需要像下面这样对Monitorix配置稍作修改。

用你喜爱的文本编辑器打开/etc/monitorix/monitorix.conf,向下滚动文本直到你找到。搜索“raspberrypi = n”,并用“y”替换“n”,这将启用对Raspberry Pi时钟频率、温度和电压的监控。

编辑完成后,重启Monitorix服务。

$ sudo service monitorix restart 

默认情况下,Monitorix的内建HTTP Web服务器会被启用。要访问Monitorix的Web界面,访问此地址http://:8080/monitorix

Monitorix截图(Raspberry Pi上)

Monitorix主屏幕:

系统平均负载和使用情况图示:

活动进程图示:

在主屏幕中选择“Raspberry Pi”部分下的“时钟频率”,你会看到Raspberry Pi的时钟频率、温度和电压的图示:

所有监控图示:


via: http://xmodulo.com/2014/05/web-based-lightweight-system-monitor-linux.html

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出