配置 SNMP 可以参考以下步骤:

1. 首先定义一个共同体名称(community),这里是 public ,及可以访问这个 public 的用户名(sec name),这里是 notConfigUser 。public 相当于用户 notConfigUser 的密码。

# sec.name                source      communitycom2sec notConfigUser  default       public

2. 定义一个组名(groupName)这里是 notConfigGroup,及组的安全级别,把 notConfigGroup 这个用户加到这个组中。

#  groupName         securityModel    securityName
group   notConfigGroup   v1           notConfigUser
group   notConfigGroup   v2c          notConfigUser

3. 定义一个可操作的视图(view)名, 这里是 all,范围是 .1。

# name           incl/excl     subtree         mask(optional)view  all      included        .1

4. 定义 notConfigUser 这个组在 all 这个视图范围内可做的操作,这时定义了 notConfigUser 组的成员可对 .1 这个视图做只读操作。

# group        context sec.model sec.level prefix read   write  notifaccess  notConfigGroup ""      any       noauth    exact  all  none none

这样对 snmpd.conf 文件就基本完成了,用service snmpd restart重启 snmpd 服务。

之后,我们需要一个测试,验证 SNMP 配置的正确性。在监控主机中执行以下命令:

[root@chenyi Packages]# snmpwalk -v 1 192.168.1.220 -c public system
Timeout: No Response from 192.168.1.220
[root@chenyi Packages]# snmpwalk -v 1 192.168.1.220 -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux chenyi 2.6.32-279.el6.i686 #1 SMP Fri Jun 22 10:59:55 UTC 2012 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (797) 0:00:07.97
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: chenyi
.....................

上述信息说明 SNMP 已经正常工作了。

################################################################################################

其实配制一个 snmpd.conf 文件不算太难,

1,首选是定义一个共同体名 (community) ,这里是 public ,及可以访问这个 public 的用户名( sec name ),这里是 notConfigUser 。 Public 相当于用户 notConfigUser 的密码:)

#sec.name  source                         community

com2sec notConfigUser  default       public

2,定义一个组名( groupName )这里是 notConfigGroup ,及组的安全级别,把 notConfigGroup 这个用户加到这个组中。

groupName          securityModel    securityName

group   notConfigGroup   v1           notConfigUser

group   notConfigGroup   v2c           notConfigUser

3,定义一个可操作的范围 (view) 名,   这里是 all ,范围是  .1

#       name           incl/excl     subtree         mask(optional)

view  all             included     .1

4,定义 notConfigUser 这个组在 all 这个 view 范围内可做的操作,这时定义了 notConfigUser 组的成员可对.1 这个范围做只读操作。

#       group          context sec.model sec.level prefix read   write  notif

access  notConfigGroup ""      any       noauth    exact  all  none none

ok, 这样我们的 snmpd.conf 文件就基本配成了,用 service  snmpd  restart 重启 snmpd 服务。

################################################################################################

现在我们在目标主机上来写一些脚本来获取 Memory、CPU、DiskIO 等状态。

Memory 脚本:

#!/bin/sh
/usr/bin/free -m | grep Mem |awk '{print $4}'
/usr/bin/free -m | grep Mem |awk '{print $2}'
[root@chenyi ~]# sh memory.sh
809
1006

CPU 脚本:

#!/bin/sh
idle=`sar  -u 1 3 | grep Average | awk '{print $6}'`
used=`echo "101 - $idle" | bc -l -s`
echo $used
echo $idle

Disk I/O 脚本:

#!/bin/sh
used1=`sar -d 1 3 | tail -1 | awk '{print $4}'`
used2=`echo "$used1 / 2" | bc -l`
echo $used2
echo $used2

现在我们已经能得到这数据了,怎么才能让监控主机通过 snmpd 得到这些数据呢?可以在目标主机的/etc/snmp/snmpd.conf文件中加入这些配置:

exec .1.3.6.1.4.1.2021.53 memory /bin/sh /root/memory.sh
exec .1.3.6.1.4.1.2021.54 cpu /bin/sh /root/cpu.sh
exec .1.3.6.1.4.1.2021.55 disk /bin/sh /root/disk.sh
[root@chenyi ~]# service snmpd restart
停止 snmpd:                                               [确定]
正在启动 snmpd:                                           [确定]

这样在监控主机上运行:

[root@chenyi ~]# snmpwalk -v 1 192.168.1.220 -c public .1.3.6.1.4.1.2021.53
UCD-SNMP-MIB::ucdavis.53.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.53.2.1 = STRING: "memory"
UCD-SNMP-MIB::ucdavis.53.3.1 = STRING: "/bin/sh /root/memory.sh"
UCD-SNMP-MIB::ucdavis.53.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.53.101.1 = STRING: "442"
UCD-SNMP-MIB::ucdavis.53.101.2 = STRING: "1006"
UCD-SNMP-MIB::ucdavis.53.102.1 = INTEGER: 0

其中UCD-SNMP-MIB::ucdavis.53.101.1 = STRING: "442"中的 442 就是 mem.sh 输出的第一个数据,1006 是 mem.sh 输出的第二个数据。

略作修改:(此处参照其他文章)

[root@chenyi ~]# snmpwalk -v 1  192.168.1.220 -c public .1.3.6.1.4.1.2021.53 | grep 53.101 | awk -F\" '{print $2}'
443
1006

我们已经通过 snmpd 从监控主机上得到了目标主机上内存使用状态的两个参数,其它脚本也是一样的。

转载于:https://blog.51cto.com/xiangpang/1711939

简单配置snmpd.conf相关推荐

  1. Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)

    Centos 6.5下一个SNMP简单配置(snmp protocol v3.监控宝) jom_ch@2014/7/25 1,安装 >yum -y install net-snmp net-sn ...

  2. python snmp 交换机 配置文件_编译安装SNMP,snmpd.conf配置文件说明

    一.编译安装net-snmptar -xzvf net-snmp-5.4.1.tar.gz//解压 cd /net-snmp-5.4.4 ./configure --prefix=/usr/local ...

  3. 简单配置nginx反向代理,实现跨域请求

    简单配置nginx去做反向代理,实现跨域请求 简单介绍nginx的nginx.conf最核心的配置,去做反向代理,实现跨域请求. 更多详细配置,参考nginx官方文档 先介绍几个nginx命令 打开n ...

  4. Apache简单配置(4)搭建Discuz 7.0.0论坛

    Apache简单配置(4)搭建Discuz 7.0.0论坛 RHEL5.3 基本网络配置 一. 1.RHEL5 U3:如图1 (如图1) 2.#hostname //查看当前主机的主机名:如图2 (如 ...

  5. DNS服务器之简单配置(一)

    名词解释: 域名: 域名是域名系统名字空间中,从当前节点到根节点的路径上所有节点标记的点分顺序连接. 域: 域是指域名系统名字空间中的一个子集,也就是树形结构名字空间中的一颗子树.这个子树根节点的域名 ...

  6. squid介绍及其简单配置

    1.Squid是什么? Squid是一种用来缓冲Internet数据的软件.它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一we ...

  7. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  8. nginx负载均衡简单配置

    nginx负载均衡简单配置 准备三台虚拟机来做这个实验: 172.16.160.99        web服务器 172.16.160.103      web服务器 172.16.160.98    ...

  9. Linux上搭建nginx,及简单配置

    在上家公司都是运维安装nginx,到新公司后代码开发完成部署测试服务器要求自己装nginx,研究了好久安装好之后,到正式上线还要自己安装,索性把安装步骤自己记载下来(好大一部分都是在网站找的). 一, ...

最新文章

  1. python2中的unicode_在python2中的编码
  2. 用户方式中线程的同步——Windows核心编程学习手札之八
  3. java动态sql执行数据
  4. 判断两条链表是否交叉,若有交叉,返回交叉节点的指针。
  5. 每日一小练——按字典顺序列出全部子集
  6. 搜索---广度优先遍历、深度优先遍历、回溯法
  7. Rails 3:提高Ajax应用速度
  8. python进程池win出错_解决windows下python3使用multiprocessing.Pool出现的问题
  9. 【word使用技巧】删掉某一行参考
  10. Mate 30 不预装任何谷歌应用;阿里巴巴发布新“六脉神剑”;VS Code 1.38 发布 | 极客头条...
  11. LeetCode 852. Peak Index in a Mountain Array
  12. php解决01背包问题,PHP动态规划解决0-1背包问题实例分析_PHP教程
  13. GCC vector 叠加示例
  14. WPE下载 WPE 各版本下载 及 教程
  15. Windows 关闭端口号
  16. 记一次笔记本win键失灵 不能用 windows 徽标键失灵
  17. 【R语言】创建空的dataframe
  18. arm我的世界linux,Minecraft (简体中文)
  19. POJ 3693 Maximum repetition substring (后缀数组)
  20. Linux终端出现:To run a command as administrator (user “root“), use “sudo <command>“.

热门文章

  1. 【工业互联网】全球工业互联网十大最具成长性技术展望(2019-2020年)
  2. 一文看懂人脸识别技术发展脉络
  3. 2019年深度学习的十大预测
  4. 中心化,去中心化?关乎互联网未来命运的重要选
  5. 2018新年感谢,写在互联网类脑架构研究十年的前夜
  6. 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁!
  7. NHibernate 2.0 Beta 1 Released和一些工具
  8. Mrtg搭建流量监控服务器
  9. 【SQL 代码】Sql分页(自用)
  10. Android 读取meta-data元素的数据