基于ubuntu的mrtg配置,实现监控多台服务器系统资源

文章是参考他人博客整合、改动得出!!

实验结果为监控两台虚拟机的cpu、内存、流量、nginx,简称server端,client端。(为了省事,只用两个,实际操作完成后,会发现数量上的增加很简单)

安装包 server端 mrtg snmp sysstat curl nginx

client端 snmp sysstat curl

server端配置

编辑server端/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

shell脚本存放目录/home/mrtg (路径可选,和后边保持一致)

mrtg.ram

#!/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

mtrg.cpu

#!/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_status

curl http://localhost/nginx_status | grep Active | awk ‘{print $3 }‘  > /home/mrtg/ngx.active

curl http://localhost/nginx_status | grep Waiting | awk ‘{print $6 }‘ > /home/mrtg/ngx.waiting

mrtg.ngx

#!/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");

在nginx中添加模块 (nginx配置目录中,/sites-enabled/default,包含在server中,否则会报错)

location ~ ^/nginx_status {

stub_status on;

access_log off;

}

重启nginx

生成配置文件

cfgmaker [email protected] --output /root/mrtg.cfg

修改配置

WorkDir: /home/mrtg/mrtg (工作目录)

并向其添加内容

Target[cpu]: `/home/mrtg/mrtg.cpu`

MaxBytes[cpu]: 100

Options[cpu]: gauge, nopercent, growright

YLegend[cpu]: CPU loading (%)

ShortLegend[cpu]: %

LegendO[cpu]:   CPU us;

LegendI[cpu]:   CPU sy;

Title[cpu]: CPU Loading

PageTop[cpu]: <H1>CPU Loading</H1>

Target[ram]: `/home/mrtg/mrtg.ram`

#Unscaled[ram]: dwym

MaxBytes[ram]:  1642472   #这里的数值为服务器内存的最大值,可通过free命令查看。

Title[ram]:Memory

ShortLegend[ram]: &

kmg[ram]:kB,MB

kilo[ram]:1024

YLegend[ram]:   Memory Usage :

Legend1[ram]:   Swap Memory :

Legend2[ram]:   Used Memory :

LegendI[ram]:   Swap Memory :

LegendO[ram]:   Used Memory :

Options[ram]: growright,gauge,nopercent

PageTop[ram]:<H1>Memory</H1>

Target[nginx_conn]: `/home/mrtg/mrtg.ngx`

Options[nginx_conn]: gauge,nopercent,growright

Directory[nginx_conn]: nginx_conn

MaxBytes[nginx_conn]: 8000

YLegend[nginx_conn]: nginx_conn

ShortLegend[nginx_conn]:

LegendI[nginx_conn]: Active connections:

LegendO[nginx_conn]: Waiting:

Title[nginx_conn]: Nginx

PageTop[nginx_conn]:<h1>nginx</h1>

接着配置client端

编辑/etc/snmp/snmpd.conf

将agentAddress udp:127.0.0.1:161注释掉

将#agentAddress udp:161,udp6:[::1]:161去掉注释

这样便可以实现snmp的远程监听。

但修改后服务器还是无法监测到CPU、内存、流量的数据,所以需要再做如下修改:

找到下面的内容

view   systemonly  included   .1.3.6.1.2.1.1

view   systemonly  included   .1.3.6.1.2.1.25.1

在下面加上一行

view   systemonly  included   .1   80

这样就允许监听所有设备。

完成所有修改后,重启snmp

service snmpd restart

本地测试SNMP是否监测各类指标的方法:运行如下命令

snmpwalk -v 2c -c public localhost

如果有很多内容输出,代表成功。

然后在server端生成client的配置文件

建立client的目录 /home/mrtg1   (在server端执行)

将/home/mrtg内的文件拷至/home/mrtg1

cfgmaker [email protected] --output /root/mrtg1.cfg (192.168.51.236为client端ip)

同样将上边的添加内容加入配置文件,但会报错,提示有同样的名字,修改下即可,例如:

Target[cpu]: `/home/mrtg/mrtg.cpu`    → Target[cpu1]: `/home/mrtg1/mrtg.cpu`

建立client端的目录 /home/mrtg1

将/home/mrtg内的文件拷至/home/mrtg1

将配置文件合并

cat  mrtg.cfg mtrg1.cfg > mrtg.cfg

并移至/etc

分别在mrtg mrtg1中建立子文件夹mrtg

生成mrtg首页

indexmaker /etc/mrtg.cfg > /home/mrtg/mrtg/index.html

绘制图表

env LANG=C mrtg /etc/mrtg.cfg

配置cron计划执行任务,每分钟采集一次 /etc/crontab

*/1 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

重启cron服务

在nginx中添加模块

location ~ ^/mrtg {

root /home/mrtg;

}

重启nginx

访问http://serverIP/mrtg

时间: 2024-11-07 12:36:41

基于ubuntu的mrtg配置,实现监控多台服务器系统资源的相关文章

zabbix 创建主机、主机群组、监控第一台服务器

前面介绍了zabbix服务器和zabbix agent的安装配置,今天使用zabbix监控第一台服务器. 1. 安装zabbix agent 在被监控的服务器上安装zabbix agent . 参考<<zabbix agent安装配置>>. 2. zabbix监控服务器 2.1 创建主机 configuration(组态,配置)–>Hosts(主机)–>Create host(创建主机) 属性 描述 主机名 Host name 主机名,只允许数字,空格,句号,下划线,非

监控多台服务器

主要分系统监控和业务监控两类 系统监控就是每台主机的CPU,内存网络带宽等使用情况以及Mysql, Redis, Nginx等服务的核心指标等这是比较基本的监控必须得有如果这块监控做的好生产环境可以提前发现很多问题防患于未然. 业务监控就是业务相关的指标如某API每秒调用次数每分钟该API的平均响应时间服务的在线人数甚至一些运营相关的数据如七日留存率啦每日新增用户每日流失用户等.这些数据也很重要他是你整个业务的晴雨表为你做一些重要决策提供依据. 对于系统监控有很多开源软件可以拿来用如比较出名的n

Zabbix 三、Zabbix监控第一台服务器

一.zabbix-server添加被监控主机  1.Node1节点安装zabbix-agent,zabbix-sender并修改配置文件 [[email protected] ~]# yum install zabbix-agent zabbix-sender Dependencies Resolved =================================================================================================

ZABBIX监控一台服务器上多实例memcache落地经验步骤

大家好!我是系统运维工程师: 李超  上一次给大家分享了工作中监控多实例tomcat的自发现zabbix做法,今天带给大家的就是一台服务器上监控多memcache的一个落地经验. 首先我带大家看一下多实例memcache做法,话不多说,咱们开工: 由于是多实例,所以就需要用到zabbix的自动发现功能(LLD)基本思路如下: 1.写自动发现脚本. 2.写状态取值脚本. 3.添加配置文件. 4.添加权限. 5.配置zabbix web. zabbix我采用yum安装所以路径是/etc/zabbix

如何高效的监控多台服务器,该做哪些方面的监控?

这次主要给大家介绍一下从几十台到几千台服务器的运维过程中,监控系统的变迁经历.常说一千个人心中有一千个哈姆雷特,一千个运维的心中有一千种运维的方法,没有一个方法是万能的.可以适用所有的场景,具体问题还得具体分析 一. 服务器数量小于200台的阶段 这个时期一般需要满足基础监控需求,我们主要考虑的是简单易用. 稳定运行. 监控报警三个方面. 云帮手资源监控系统全程可视化界面,一键傻瓜式操作,新手小白也能快速上手:能够从CPU.内存.磁盘.网络四个方面对服务器进行24小时不间断基础监控,并可自主设置

zabbix监控第一台服务器

客户机的IP是192.168.0.80,主机名是wls12c 1. 安装客户端, 1.1 新建zabbix的用户 groupadd zabbix useradd -g zabbix zabbix 1.2 安装客户端 ./configure --prefix=/usr/local/zabbix-3.6.2/ --enable-agent make make install 1.3 配置文件 vim etc/zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.

ZABBIX(二) zabbix 监控第一台服务器

一.搭建一台测试服务器 1.安装一台centos7操作系统 本次测试我在虚拟机上安装了一台centos7.2的操作系统: 2.在Centos7.2的操作系统上安装zabbix 的angent服务: (1)导入软件安装源 rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm (2)安装zabbix-agent客户端服务 yum -y install zabbix-ag

sqlserver配置接口实现两台服务器互访

在本地服务器能够访问Damein_xym-PC: 在本地服务器master下执行 --需要添加数据库链 EXEC sp_addlinkedserver @server='XYM',--被访问的服务器别名 @srvproduct='', @provider='SQLOLEDB', @datasrc='Damein_xym-PC' --要访问的服务器 EXEC sp_addlinkedsrvlogin 'XYM', --被访问的服务器别名 'false', NULL, 'sa', --帐号 'sa'

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装