分类 技术 下的文章

Ubuntu 14.10已于前段时间发布。想知道如何从 Ubuntu 14.04 升级到 Ubuntu 14.10 么?别担心,这很容易做到。事实上,只要网络连接速度好,升级只是点击几下鼠标的事情而已。

你需要从 Ubuntu 14.04 切换到 Ubuntu 14.10 么?

在你升级到Ubuntu 14.10之前,请确定你真的想为升级 14.10 而抛弃 Ubuntu 14.04。一个很重要的原因是你不能从Ubuntu 14.10 回归到14.04。 你需要完全重新安装。

Ubuntu 14.04是长期支持(LTS)版本。这意味着有更多的稳定性和更长的支持周期。如果升级到14.10,你将被迫在9个月后从Ubuntu 14.10 升级到15.04,而14.04将会持续3年以上。

此外,目前Ubuntu 14.10没有很多的新功能使吸引用户切换到14.10。当然了,你肯定会得到最前沿的操作系统。所以,在这之前是否升级到Ubuntu 14.10是你自己的决定。

从Ubuntu 14.04 升级到 Ubuntu 14.10

要从Ubuntu 14.04 升级到 Ubuntu 14.10,遵循下面的步骤:

步骤 1:

打开 软件和更新.

进入更新选项卡。这里要确保Ubuntu有新版本时通知我 设置成对于任何新版本。默认Ubuntu只会在另一个LTS发布时通知你。你必须要把它改成在任何中间版本都升级。

步骤 2:

现在运行 软件升级

升级完成后,它应该会提示一个可用的新版本。点击升级,接着按照提示的步骤来。

我希望本篇教程可以帮助你从 Ubuntu 14.04 升级到 Ubuntu 14.10。虽然本教程是为Ubuntu写的,但是你可以用同样的步骤升级到 Xubuntu 14.10、Kubuntu 14.10 或者Lubuntu。敬请期待下一篇Ubuntu 14.10相关文章。


via: http://itsfoss.com/upgrade-ubuntu-14-04-to-14-10/

作者:Abhishek 译者:geekpi 校对:Caroline

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

假设由于某种原因,你需要嗅探HTTP站点的流量(如HTTP请求与响应)。举个例子,你可能在测试一个web服务器的实验性功能,或者你在为某个web应用或RESTful服务排错,又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因,在这些情况下,进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。

数据包嗅工具tcpdump被广泛用于实时数据包的导出,但是你需要设置过滤规则来捕获HTTP流量,甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如ngxtop可以提供可读的实时web流量跟踪痕迹,但这仅适用于可完全访问live web服务器日志的情况。

要是有一个仅用于抓取HTTP流量的类似tcpdump的数据包嗅探工具就非常好了。事实上,httpry就是:HTTP包嗅探工具。httpry捕获HTTP数据包,并且将HTTP协议层的数据内容以可读形式列举出来。通过这篇指文章,让我们了解如何使用httpry工具嗅探HTTP流量。

在Linux上安装httpry

基于Debian系统(Ubuntu 或 LinuxMint),基础仓库中没有httpry安装包(译者注:本人ubuntu14.04,仓库中已有包,可直接安装)。所以我们需要通过源码安装:

$ sudo apt-get install gcc make git libpcap0.8-dev
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install

在Fedora,CentOS 或 RHEL系统,可以使用如下yum命令安装httpry。在CentOS/RHEL系统上,运行yum之前使其能够访问EPEL repo

$ sudo yum install httpry 

如果你仍想通过基于RPM系统的源码来安装httpry的话,你可以通过这几个步骤实现:

$ sudo yum install gcc make git libpcap-devel
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install 

httpry的基本用法

以下是httpry的基本用法

$ sudo httpry -i <network-interface> 

httpry就会监听指定的网络接口,并且实时的显示捕获到的HTTP请求/相应。

在大多数情况下,由于发送与接到的数据包过多导致刷屏很快,难以分析。这时候你肯定想将捕获到的数据包保存下来以便离线分析。可以使用'b'或'-o'选项保存数据包。'-b'选项将数据包以二进制文件的形式保存下来,这样可以使用httpry软件打开文件以浏览。另一方面,'-o'选项将数据以可读的字符文件形式保存下来。

以二进制形式保存文件:

$ sudo httpry -i eth0 -b output.dump

浏览所保存的HTTP数据包文件:

$ httpry -r output.dump

注意,不需要根用户权限就可以使用'-r'选项读取数据文件。

将httpry数据以字符文件保存:

$ sudo httpry -i eth0 -o output.txt

httpry 的高级应用

如果你想监视指定的HTTP方法(如:GET,POST,PUT,HEAD,CONNECT等),使用'-m'选项:

$ sudo httpry -i eth0 -m get,head

如果你下载了httpry的源码,你会发现源码下有一些Perl脚本,这些脚本用于分析httpry输出。脚本位于目录httpry/scripts/plugins。如果你想写一个定制的httpry输出分析器,则这些脚可以作为很好的例子。其中一些有如下的功能:

  • hostnames: 显示唯一主机名列表。
  • find\_proxies: 探测web代理。
  • search\_terms: 查找及统计在搜索服务里面的搜索词。
  • content\_analysis: 查找含有指定关键的URL。
  • xml\_output: 将输出转换为XML形式。
  • log\_summary: 生成日志汇总。
  • db\_dump: 将日志文件数据保存数据库。

在使用这些脚本之前,首先使用'-o'选项运行httpry。当获取到输出文件后,立即使用如下命令执行脚本:

$ cd httpry/scripts
$ perl parse_log.pl -d ./plugins <httpry-output-file>

你可能在使用插件的时候遇到警告。比如,如果你没有安装带有DBI接口的MySQL数据库,那么使用db\_dump插件时可能会失败。如果一个插件初始化失败的话,那么只是这个插件不能使用,所以你可以忽略那些警告。

当parse\_log.pl完成后,你将在httpry/scripts 目录下看到数个分析结果。例如,log\_summary.txt 与如下内容类似。

总的来说,当你要分析HTTP数据包的时候,httpry非常有用。它可能并不被大多Linux使用者所熟知,但会用总是有好处的。你觉得这个工具怎么样呢?


via: http://xmodulo.com/2014/08/sniff-http-traffic-command-line-linux.html

作者:Dan Nanni 译者:DoubleC 校对:wxy

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

Question:我尝试在Linux编译一个程序,但是编译失败并报了一个错,“fatal error: openssl/aes.h: No such file or directory”。我该怎样安装要求的头文件并在我的Linux上解决这个问题?
fatal error: openssl/aes.h: No such file or directory

如果你在编译时遇到这个错误,这可能是下面的原因:你尝试编译的程序使用OpenSSL,但是需要和OpenSSL链接的文件(库和头文件)在你Linux平台上缺少。(LCTT 译注:其它类似的错误也可以照此处理)

要解决这个问题,你需要安装OpenSSL 开发包,这在所有的现代Linux发行版的标准软件仓库中都有。

要在Debian、Ubuntu或者其他衍生版上安装OpenSSL:

$ sudo apt-get install libssl-dev

要在Fedora、CentOS或者RHEL上安装OpenSSL开发包:

$ sudo yum install openssl-devel

安装完后,尝试重新编译程序。


via: http://ask.xmodulo.com/fix-fatal-error-openssl.html

译者:geekpi 校对:wxy

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

本教程将指引你直接通过使用DNSMASQ作为PXE服务器(预启动执行环境),以网络方式安装Debian 7(Wheezy),此种情况是假定你的服务器不提供任何CD/DVD/USB介质驱动器,或者它只能通过相连的监视器、键盘和鼠标操作。

Debian 7 Network Installation on Client Machines

客户机上的Debian 7网络安装

DNSMASQ是一个轻量级网络基础架构服务器,它可以通过内建的DNS、DHCP和TFTP服务器提供如DNS、DHCP和网络启动等关键服务。

一旦PXE服务器启动并运行,你可以指示你所有的客户机直接从网络启动,前提是你的客户机必须拥有一张支持网络启动的网卡,网络启动可以从BIOS的网络启动或启动服务选项中启用。

前置阅读

步骤1: 安装及配置DNSMASQ服务器

1. 首先,在安装Debian服务器后,要确保你的系统使用的是静态IP地址。因为除了网络启动之外,也要为你的整个网段提供DHCP服务。设置好静态IP地址后,以root帐号或具有root权力的用户来运行以下命令,进行DNSMASQ服务器的安装。

# apt-get install dnsmasq

Install Dnsmasq Package

安装Dnsmasq包

2. 安装好DNSMASQ包后,你可以开始编辑配置文件。首先创建一个主配置文件的备份,然后使用下面的命令对dnsmasq.conf文件进行编辑。

# mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
# nano /etc/dnsmasq.conf

Backup Dnsmasq Configuration

备份Dnsmasq配置

3. 上面的备份过程适合重命名配置文件,所以新的文件应该是空,你可以使用以下描述的DNSMASQ配置文件节录。

interface=eth0
domain=debian.lan
dhcp-range=192.168.1.3,192.168.1.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.1.100
pxe-prompt="Press F8 for menu.", 60
#pxe-service types: x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
pxe-service=x86PC, "Install Debian 7 Linux from network server 192.168.1.100", pxelinux
enable-tftp
tftp-root=/srv/tftp

Configuration of Dnsmasq

Dnsmasq配置

  • interface – 服务器监听的网络接口。
  • domain – 用你自己的域名替换。
  • dhcp-range – 用你自己的网络掩码定义的网络IP地址范围。
  • dhcp-boot – 保持默认,但使用你自己的服务器IP地址替换IP声明。
  • pxe-prompt – 保持默认 – 要求在敲击F8键 进入菜单时等待60秒。
  • pxe=service – 使用x86PC作为32位/64位架构,并进入引号字符串的菜单描述提示。其它值类型可能是:PC98,IA64EFI,Alpha,Arcx86,IntelLeanClient,IA32EFI, BCEFI,XscaleEFI和 X86-64EFI。
  • enable-tftp – 启用内建TFTP服务器。
  • tftp-root – 使用/srv/tftp作为Debian网络启动文件的存放位置。

步骤2: 下载Debian网络启动文件并打开防火墙连接

4. 现在,该下载Debian网络启动文件了。首先,修改你当前工作目录路径到TFTP根目录位置,此位置由最后的配置语句定义(/srv/tftp系统路径)。

转到Debian网络安装网络启动部分的官方页面镜像,抓取以下文件,要抓取的文件取决于你想要安装到客户端的系统架构。

下载好netboot.tar.gz文件后,同时提取归档(该过程描述只适用于64位,但对于其它系统架构也基本相同)。

# cd /srv/tftp/
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz
# tar xfz netboot.tar.gz
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/SHA256SUMS
# wget http://ftp.nl.debian.org/debian/dists/wheezy/Release
# wget http://ftp.nl.debian.org/debian/dists/wheezy/Release.gpg

同时,必须确保TFTP目录中的所有文件都可让TFTP服务器读取。

# chmod -R 755 /srv/tftp/

Download Debian NetBoot Files

下载Debian网络启动文件

使用以下变量用于Debian网络安装镜像和架构。

# wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/netboot/netboot.tar.gz
# wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/SHA256SUMS
# wget http://"$YOURMIRROR"/debian/dists/wheezy/Release
# wget http://"$YOURMIRROR"/debian/dists/wheezy/Release.gpg

5. 下一步,启动或重启DNSMASQ守护进程,并运行netstat命令来获取服务器监听的端口列表。

# service dnsmasq restart
# netstat -tulpn | grep dnsmasq

Start Dnsmasq Service

启动Dnsmasq服务

6. 基于Debian的发行版通常附带了UFW防火墙包。使用以下命令来打开需要的DNSMASQ端口号:67(Bootps),69(TFTP),53(DNS)4011(代理DHCP)udp和53 tcp(DNS)。

# ufw allow 69/udp
# ufw allow 4011/udp   ## Only if you have a ProxyDHCP on the network
# ufw allow 67/udp
# ufw allow 53/tcp
# ufw allow 53/udp

Open Dnsmasq Ports

开启Dnsmasq端口

现在,位于你的客户机网络接口上的PXE加载器将使用按以下顺序从/srv/tftp/pxelinux.cfg目录加载pxelinux配置文件。

  • GUID文件
  • MAC文件
  • 默认文件

步骤3: 配置客户端从网络启动

7. 要为你的客户端计算机启用网络启动,请进入系统BIOS配置(如何进入BIOS设置,请查阅硬件主板提供商的文档)。

转到启动菜单,然后选择网络启动作为首要启动设备(在某些系统上,你可以不用进入BIOS配置就能选择启动设备,只要在BIOS自检时按一个键就可以进行选择了)。

Select BIOS Settings

选择BIOS设置

8。 在编辑启动顺序后,通常按F10来保存BIOS设置。重启后,你的客户端计算机应该可以直接从网络启动了,应该会出第一个PXE提示,要求你按F8键进入菜单。

接下来,敲击F8键来进入,会出现一个新的提示。敲击回车键,屏幕上会出现Debian安装器主界面提示,如下图所示。

Boot Menu Selection

启动菜单选择

Select Debian Installer Boot

选择Debian安装器启动

Select Debian Install

选择Debian安装

从这里开始,你可以使用Debian 7 Wheezy安装进程将Debian安装到你的机器上了(安装链接见上面)。然而,为了能够完成安装进程,你也需要确保你的机器上互联网连接已经激活。

步骤4: DNSMASQ服务器排障并在系统范围内启用

9. 要诊断服务器以查询最终是否发生问题或要查询其它提供给客户端的信息,运行以下命令来打开日志文件。

# tailf /var/log/daemon.log

Debug DNSMASQ Server

DNSMASQ服务器排障

10. 如果服务器测试中已一切就绪,你现在可以在sysv-rc-conf包的帮助下,启用DNSMASQ守护进程自启动,以使该进程在系统重启后自动启动。

# apt-get install sysv-rc-conf
# sysv-rc-conf dnsmaq on

Enable DNSMASQ Daemon

启用DNSMASQ守护进程

到此为止吧!现在你的PXE服务器已经整装待发,随时准备好分配IP地址了(DHCP),并为你所有网段中的客户端提供需要的启动信息,这些信息配置用来从网络启动并安装Debian Wheezy。

使用PXE网络启动安装在服务器主机数量很多时很有优势,因为你可以在短时间内火同时设置整个网络基础架构,为版本升级提供了方便,也可以通过kickstart文件使整个安装的全自动化。


via: http://212.71.234.61/network-installation-of-debian-7-on-client-machines/

作者:Matei Cezar 译者:GOLinux 校对:wxy

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

LVM快照是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小,可以使用lvreduce。

Take Snapshot in LVM

在LVM中录制快照

如果我们在创建快照后意外地删除了无论什么文件,我们没有必要担心,因为快照里包含了我们所删除的文件的原始文件。创建快照时,很有可能文件已经存在了。不要改变快照卷,保持创建时的样子,因为它用于快速恢复。

快照不可以用于备份选项。备份是某些数据的基础副本,因此我们不能使用快照作为备份的一个选择。

前置阅读

我的服务器设置

  • 操作系统 — 安装有LVM的CentOS 6.5
  • 服务器IP — 192.168.0.200

步骤1: 创建LVM快照

首先,使用‘vgs’命令检查卷组中的空闲空间以创建新的快照。

# vgs
# lvs

Check LVM Disk Space

检查LVM磁盘空间

正如你所见,在vgs命令输出中,我们可以看到有8GB的剩余空闲空间。所以,让我们为我的名为tecmint\_datas的卷创建快照。处于演示的目的,我将会使用以下命令来创建1GB的快照卷。

# lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas        

或者

# lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

上面的两个命令都是干得同一件事:

  • -s – 创建快照
  • -n – 为快照命名

Create LVM Snapshot

创建LVM快照

此处,是对上面高亮要点的说明。

  1. 我在此创建的快照的大小。
  2. 创建快照。
  3. 创建快照名。
  4. 新的快照名。
  5. 要创建快照的卷。

如果你想要移除快照,可以使用‘lvremove’命令。

# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap

Remove LVM Snapshot

移除LVM快照

现在,使用以下命令列出新创建的快照。

# lvs

Verify LVM Snapshot

验证LVM快照

上面的你看到了吧,成功创建了一个快照。上面我用箭头标出了快照创建的源,它就是tecmint\_datas。是的,因为我已经为tecmint\_datas l-volume创建了一个快照。

Check LVM Snapshot Space

检查LVM快照空间

让我们添加一些新文件到tecmint\_datas里头。现在卷里大概有650MB左右的数据,而我我们的快照有1GB大。因此,有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到,我们的快照当前的状态。

# lvs

Check Snapshot Status

检查快照状态

你看到了,现在已经用掉了51%的快照卷,你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。

# lvdisplay vg_tecmint_extra/tecmint_data_snap

View Snapshot Information

查看快照信息

再来对上面图片中高亮的要点作个清楚的说明。

  1. 快照逻辑卷名称。
  2. 当前使用的卷组名。
  3. 读写模式下的快照卷,我们甚至可以挂载并使用该卷。
  4. 快照创建时间。这个很重要,因为快照将跟踪此时间之后的每个改变。
  5. 该快照属于tecmint\_datas逻辑卷。
  6. 逻辑卷在线并可用。
  7. 我们录制快照的源卷大小。
  8. 写时复制表大小,Cow = copy on Write,这是说对tecmint\_data卷所作的任何改变都会写入此快照。
  9. 当前使用的快照大小,我们的tecmintdata有10GB,而我们的快照大小是1GB,这就意味着我们的数据大概有650MB。所以,如果tecmintdatas中的文件增长到2GB,现在的51%中的内容将增加到超过所分配的快照的大小,当然,我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小(快照逻辑卷)
  10. 给出快照组块的大小。

现在,让我们复制超过1GB的文件到tecmint\_datas。让我们看看会发生什么。如果你那么做了,你将会见到‘Input/output error’这样的错误信息,它告诉你快照超出空间大小了。

Add Files to Snapshot

添加文件到快照

如果该逻辑卷满了,它就会自动丢失新的数据,我们就不能再使用了,就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时,创建一个和源一样大小的快照卷。tecmint\_datas的大小是10GB,如果我们创建一个10GB大小的快照,它就永远都不会像上面那样超载,因为它有足够的空间来录制你的逻辑卷的快照。

步骤2: 在LVM中扩展快照

如果我们需要在超过容量前扩展快照卷的大小,我们可以使用以下命令来完成此项任务。

# lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

现在,那里有总计2GB大小的快照空间。

Extend LVM Snapshot

扩展LVM快照

接下来,使用以下命令来验证新的大小和写时复制表。

# lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

要知道快照卷的大小使用%

# lvs

Check Size of Snapshot

检查快照大小

然而,如果你的快照大小和源卷一样,我们就没有必要担心这些问题了。

步骤3: 恢复快照或合并

要恢复快照,我们首先需要卸载文件系统。

# unmount /mnt/tecmint_datas/

Un-mount File System

卸载文件系统

只想检查挂载点是否卸载成功,可以使用下面的命令。

# df -h

Check File System Mount Points

检查文件系统挂载点

这里,我们的挂载已经被卸载,所以我们可以继续恢复快照。要恢复快照,可以使用lvconvert命令。

# lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

Restore LVM Snapshot

恢复LVM快照

在合并完成后,快照卷将被自动移除。现在我们可以使用df命令来查看分区大小。

# df -Th

Check Size of Snapshot

在快照卷自动移除后,你可以用下面的命令查看逻辑卷大小。

# lvs

Check Size of Logical Volume

检查逻辑卷大小

重要:要自动扩展快照,我们可以通过修改配置文件来进行。对于手动扩展,我们可以使用lvextend。

使用你喜欢的编辑器打开lvm配置文件。

# vim /etc/lvm/lvm.conf

搜索单词autoextend。默认情况下,该值和下图中的类似。

LVM Configuration

LVM配置

修改此处的10075,这样自动扩展的起始点就是75,而自动扩展百分比为20,它将自动扩容百分之20

如果快照卷达到75%,它会自动为快照卷扩容20%。这样,我们可以自动扩容了。使用wq!来保存并退出。

这将把快照从超载导致下线事故中拯救出来,这也会帮助你节省更多时间。LVM是我们扩容以及获得其它众多特性如精简资源调配、拆卸、虚拟卷和使用精简池的唯一方法,让我们在下一个话题中来讨论吧。


via: http://212.71.234.61/take-snapshot-of-logical-volume-and-restore-in-lvm/

作者:Babin Lonston 译者:GOLinux 校对:wxy

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

先前的教程中,我们已经见到了如何在Nagios设置中设置Nagios远程执行插件(NRPE)。然而,监控内存使用率的脚本和插件并没有在原生的Nagios中。本篇中,我们会看到如何配置NRPE来监控远程服务器上的内存使用率。

我们要用的监控内存的脚本在Nagios 市场上,在创建者的Github仓库中也可以找到。

假设我们已经安装了NRPE,我们首先在我们想要监控的服务器上下载脚本。

准备远程服务器

在 Debain/Ubuntu 中:

# cd /usr/lib/nagios/plugins/
# wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
# mv check_mem.pl check_mem
# chmod +x check_mem 

在 RHEL/CentOS 中:

# cd /usr/lib64/nagios/plugins/ (or /usr/lib/nagios/plugins/ for 32-bit)
# wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
# mv check_mem.pl check_mem
# chmod +x check_mem

你可以通过手工在本地运行下面的命令来检查脚本的输出是否正常。当使用NRPE时,这条命令应该会检测空闲的内存,当可用内存小于20%时会发出警告,并且在可用内存小于10%时会生成一个严重警告。

# ./check_mem -f -w 20 -c 10 

OK - 34.0% (2735744 kB) free.|TOTAL=8035340KB;;;; USED=5299596KB;6428272;7231806;; FREE=2735744KB;;;; CACHES=2703504KB;;;;

如果你看到像上面那样的输出,那就意味这命令正常工作着。

现在脚本已经准备好了,我们要定义NRPE检查内存使用率的命令了。如上所述,命令会检查可用内存,在可用率小于20%时发出警报,小于10%时发出严重警告。

# vim /etc/nagios/nrpe.cfg 

对于 Debian/Ubuntu:

command[check_mem]=/usr/lib/nagios/plugins/check_mem  -f -w 20 -c 10

对于 RHEL/CentOS 32 bit:

command[check_mem]=/usr/lib/nagios/plugins/check_mem  -f -w 20 -c 10

对于 RHEL/CentOS 64 bit:

command[check_mem]=/usr/lib64/nagios/plugins/check_mem  -f -w 20 -c 10

准备 Nagios 服务器

在Nagios服务器中,我们为NRPE定义了一条自定义命令。该命令可存储在Nagios内的任何目录中。为了让本教程简单,我们会将命令定义放在/etc/nagios目录中。

对于 Debian/Ubuntu:

# vim /etc/nagios3/conf.d/nrpe_command.cfg 

define command{
        command_name check_nrpe
        command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$'  -c '$ARG1$'
}

对于 RHEL/CentOS 32 bit:

# vim /etc/nagios/objects/nrpe_command.cfg 

define command{
        command_name check_nrpe
        command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

对于 RHEL/CentOS 64 bit:

# vim /etc/nagios/objects/nrpe_command.cfg 

define command{
        command_name check_nrpe
        command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

现在我们定义Nagios的服务检查

在 Debian/Ubuntu 上:

# vim /etc/nagios3/conf.d/nrpe_service_check.cfg 

define service{
        use                            local-service
        host_name                      remote-server
        service_description            Check RAM
        check_command                  check_nrpe!check_mem
}

在 RHEL/CentOS 上:

# vim /etc/nagios/objects/nrpe_service_check.cfg 

define service{
        use                            local-service
        host_name                      remote-server
        service_description            Check RAM
        check_command                  check_nrpe!check_mem
}

最后我们重启Nagios服务

在 Debian/Ubuntu 上:

# service nagios3 restart 

在 RHEL/CentOS 6 上:

# service nagios restart 

在 RHEL/CentOS 7 上:

# systemctl restart nagios.service 

故障排除

Nagios应该开始在使用NRPE的远程服务器上检查内存使用率了。如果你有任何问题,你可以检查下面这些情况。

  • 确保NRPE的端口在远程主机上是总是允许的。默认NRPE的端口是TCP 5666。
  • 你可以尝试通过执行check\_nrpe 命令: /usr/lib/nagios/plugins/check\_nrpe -H remote-server 手工检查NRPE操作。
  • 你同样可以尝试运行check\_mem 命令:/usr/lib/nagios/plugins/check\_nrpe -H remote-server –c check\_mem
  • 在远程服务器上,在/etc/nagios/nrpe.cfg中设置debug=1。重启NRPE服务并检查这些日志文件,/var/log/messages (RHEL/CentOS)或者/var/log/syslog (Debain/Ubuntu)。如果有任何的配置或者权限错误,日志中应该包含了相关的信息。如果日志中没有反映出什么,很有可能是由于请求在某些端口上有过滤而没有到达远程服务器上。

总结一下,这边教程描述了我们该如何调试NRPE来监控远程服务器的内存使用率。过程只需要下载脚本、定义命令和重启服务就行了。希望这对你们有帮助。


via: http://xmodulo.com/2014/09/monitor-server-memory-usage-nagios-remote-plugin-executor.html

作者:Sarmed Rahman 译者:geekpi 校对:wxy

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