你好,游客 登录 注册 搜索
背景:
阅读新闻

在Ubuntu下配置MRTG监控Nginx和服务器系统资源

[日期:2013-08-08] 来源:oschina.net  作者:jack230230 [字体: ]

目录:

1、安装mrtg和snmp
2、配置snmpd
3、准备一些脚本
4、配置mrtg
5、生成mrtg首页
6、使用mrtg绘制数据图表
7、配置nginx查看结果
8、查看结果

Ubuntu使用apt-get来管理软件包,非常的好用,可以自行解决依赖问题。

推荐阅读:

给Ubuntu服务器安装MRTG监控软件 http://www.linuxidc.com/Linux/2009-09/21891.htm

Ubuntu上用MRTG监测H3C设备流量 http://www.linuxidc.com/Linux/2010-11/29906.htm

RedHat Linux 9.0下MRTG安装步骤 http://www.linuxidc.com/Linux/2011-04/35026.htm

Mrtg服务器搭建(监控网络流量) http://www.linuxidc.com/Linux/2012-07/64315.htm

1、安装mrtg和snmp
apt-get install mrtg snmpd sar curl

2、配置snmpd
编辑/etc/snmp/snmpd.conf文件

改为如下内容即可:

com2sec notConfigUser  localhost      public

group  notConfigGroup v1          notConfigUser
group  notConfigGroup v2c          notConfigUser

view    systemview    included  .1.3.6.1.2.1.1
view    systemview    included  .1.3.6.1.2.1.25.1.1

access  notConfigGroup ""      any      noauth    exact all none none
view all    included  .1                              80

syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root修改完成后重启snmpd

service snmpd restartsnmp功能强大但这里只需要比较简单的功能(获取网卡流量),这么配置就ok了。


3、准备一些脚本
收集内存使用状况数据脚本
将如下文件存为/home/mrtg/mrtg.ram 并赋予可执行权限(755)


#!/bin/bash
# run this script to check the mem usage.
swapmem=`/usr/bin/free |grep Swap |awk '{print $3}'`


usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
echo $usedmem
echo $swapmem
echo $UPtime
hostname
收集CPU使用状况数据脚本
将如下文件存为/home/mrtg/mrtg.cpu 并赋予可执行权限(755)


#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $3}'`
cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $5}'`
UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
echo $cpuusr
echo $cpusys
echo $UPtime
hostname
收集nginx连接数数据脚本
这里前提是nginx编译时添加了–with-http_stub_status_module 选项,添加后就可以监视nginx当前的连接数。或者可以是用淘宝的 Tengine (默认就带了这个编译参数)

在nginx中配置如下:

  location ~ ^/nginx_status {
    stub_status on;
    access_log off;
  }配置加上这个后,你就可以通过

http://localhost/nginx_status

这种方式来获取nginx的实时连接数信息。

例如访问http://localhost/nginx_status:

Active connections: 55
server accepts handled requests
 154905 154905 393798
Reading: 0 Writing: 1 Waiting: 54 但是这还不够,因为mrtg需要的是纯数据,我们同样还需要一个脚本将数据提取出来,

我们使用curl将数据获取到并使用awk将数据提取出来存到临时文件中。

将如下代码保存为/home/mrtg/nginx_status,并赋予可执行权限(755)

curl http://localhost/nginx_status | grep Active | awk '{print $3 }'  > /home/mrtg/mrtg-2/ngx.active
curl http://localhost/nginx_status | grep Waiting | awk '{print $6 }' > /home/mrtg/mrtg-2/ngx.waiting将如下代码保存为/home/mrtg/mrtg.ngx,并赋予可执行权限(755)

#!/usr/bin/perl -W
`/home/mrtg/nginx_status`;
$hostname=`hostname`;
$hostname=~s/\s+$//;
$nginx_active_conn=`tail /home/mrtg/ngx.active`;
$nginx_waiting_conn=`tail /home/mrtg/ngx.waiting`; 
$nginx_active_conn=~s/\n$//;
$nginx_waiting_conn=~s/\n$//;
$nginx_active_conn=~s/^\s+|\s+$//;
$nginx_waiting_conn=~s/^\s+|\s+$//;
$gettime=`uptime|awk '{print \$1" "\$3" "\$4}'`;
$gettime=~s/\,|\n$//g;
print("$nginx_active_conn\n");
print("$nginx_waiting_conn\n");
print("$gettime\n");
print("$hostname\n");

linux
相关资讯       MRTG  nginx监控 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款