linux无登录框 suse_suse linux禁止用户远程登陆 - CSDN
  • suse linux 的硬盘安装

    2012-07-29 00:12:45
     SuSE 10.1 5CD (现在DVD暂时没有出,如果是DVD方法相同,本文以32位SuSE Linux为例:SUSE-Linux-10.1-GM-i386-CD1~5.iso)  Grldr  一、安装前期准备  1. 在硬盘里空出5G左右的空闲硬盘空间用来安装SuSE,...
    *需要软件
    

      Winrar 或者 UltraISO(推荐)

      SuSE 10.1 5CD (现在DVD暂时没有出,如果是DVD方法相同,本文以32位SuSE Linux为例:SUSE-Linux-10.1-GM-i386-CD1~5.iso)

      Grldr

      一、安装前期准备

      1. 在硬盘里空出5G左右的空闲硬盘空间用来安装SuSE,建议多一些。

      2. 在windows里某个磁盘(空闲空间在3.3G以上可以是NTFS格式)建立一个目录,比如D:suse。用Winrar 或者UltraISO 解压iso镜像到suse目录。

      3. 把D:suseooti386loader目录下的linux和initrd复制到根目录(比如D:)

      4. 把Grldr复制到C盘根目录并且修改C:/boot.ini,在 我的电脑 – 属性 – 高级 – 启动和故障恢复 – 编辑 或者直接在地址栏输入C:/boot.ini。在最后一行添加C:grldr="GRUB"

      二、 安装

      1. 重新启动,进入GRUB – Enter Command Line

      2. 输入 find /linux 得到解压镜像目录所在的磁盘比如(hd0,4)

      3. 输入 kernel (hd0,4)/linux 回车

      4. 输入 initrd (hd0,4)/initrd 回车

      5. 输入 boot 回车

      6. 如果正常的话进入蓝色的提示屏幕,选择语言、键盘类型、安装选项什么的,都是简单的英语,不做说明

      7.选择硬盘安装,本例是hda5,这里可能有不同,选择刚才解压的文件所在的目录。然后输入/suse回车

      8. 开始熟悉的图形界面了

      三、nvidia显卡驱动安装

      1. 下载

      http://download.nvidia.com/XFree ... 6-1.0-8756-pkg1.run

      2. 开终端init 3

      3. ./NVIDIA-Linux-x86-1.0-8756-pkg1.run -q

      4. sax2 -r -m 0=nvida(0是数字,不是字符)

      5. 配置,打开3d

      四、ati显卡驱动安装

      1. 到http://www.ati.com下载最新驱动,本文以移动x300为例,下载好的驱动是

      ati-dirvers-installer-8.24.8-x86.run

      2. ./ati-dirvers-installer-8.24.8-x86.run --get-supported,会生成一个支持平台/显卡的列表

      3. ./ati-driver-installer-8.23.7-i386.run --buildpkg SuSE/SUSE101-IA32 (最后一个参数根据实际平台/显卡从以上列表中选择)

      4. 生成类似fglrx_6_9_0_SUSE101-8.24.8-1.i386.rpm的rpm

      5. rpm -ivh fglrx_6_9_0_SUSE101-8.24.8-1.i386.rpm

      6. init 3

      7. sax2 -r -m 0=fglrx

      8. 配置。此处还是无法打开3D是正常的,实际已经打开,重启运行glxgears即可测试

      注意,ATI装完驱动不能直接开XGL

      五、开启xgl(前提是安装好驱动并打开3D加速)

      1. 以root登陆,开yast ,确定xgl和compiz已经安装

      2. 编辑/etc/X11/xorg.conf,找到如下:

    Section "Device"
    BoardName "GeForce 6600"
    BusID "5:0:0"
    Driver "nvidia"
    Identifier "Device[0]"
    VendorName "NVidia"
    Option "NoFlip" "True" #加上这一行
    EndSection

      然后在最后加上:

    Section "Extensions"
    Option "Composite" "off"
    EndSection

      3. 编辑/etc/sysconfig/displaymanager,找到DISPLAYMANAGER_XSERVER="Xorg",修改为:

    DISPLAYMANAGER_XSERVER="Xgl"
    DISPLAYMANAGER_XGL_OPTS="-accel glxbuffer -accel xvbuffer",修改为DISPLAYMANAGER_XGL_OPTS="-accel glxbuffer -accel xv:fbo"

      4. 运行SuSEconfig

      5. 运行rm /var/X11R6/bin/X

      ln -s /usr/X11R6/bin/Xgl /var/X11R6/bin/X

      6. 运行 gnome-session-properties ,在开始程序选项卡里点添加,添加compiz -replace ,确定后再添加gnome-window-decorator

      7. 运行 gconf-editor ,找到apps => compiz => general => allscreens => options,双击右边ACTIVE_PLUGINS 确认

    gconf
    decoration
    wobbly
    fade
    minimize
    cube
    rotate
    zoom
    scale
    move
    resize
    place
    switcher
    water

      在列表框,如果没有手动添加

      8. 注销OK

      9. kde配置,复制

    [Desktop Entry]
    Encoding=cp936
    Exec=compiz --replace decoration wobbly fade minimize cube rotate zoom scale move resize place switcher & gnome-window-decorator &
    GenericName[zh_CN]=
    StartupNotify=false
    Terminal=false
    TerminalOptions=
    Type=Application
    X-KDE-autostart-after=kdesktop

      另存为compiz.desktop,拷贝到/home/user/.kde/Autostart文件夹

      建议重启机器吧!

      六、添加安装源

      1. 开yast,添加安装源

      2. 如果有add on CD可以点添加,点本地iso,找到iso

      3. 添加http源,服务器添packman.iu-bremen.de,目录添suse/10.1,确定。中途可能会有警告,选择是就可以了

      4. 添加ftp源,服务器添ftp.gwdg.de,目录添pub/linux/misc/suser-guru/rpm/10.1,确定。

      5. 添加ftp源,服务器添download.opensuse.org,目录添distribution/SL-10.1/inst-source,确定。

      6. 添加ftp源,服务器添download.opensuse.org,目录添distribution/SL-10.1/non-oss-inst-source,确定。

      3、4、5、6几步以及最后的确定可能需要等待较长时间,请耐心等待。

      挖卡卡 ,可以更新kchmviewer,eclipse,tomcat,jboss等等了 :)

      
    展开全文
  • 了解服务器的运行状况是件非常重要的工作,尤其是一些关键数值的变化,不仅可以帮助我们解决一些隐患,而且还能分析服务器的瓶颈、性能等问题。在我维护的公司服务器群中,经常会遇到一些大大小小的问题,不是因为...

    了解服务器的运行状况是件非常重要的工作,尤其是一些关键数值的变化,不仅可以帮助我们解决一些隐患,而且还能分析服务器的瓶颈、性能等问题。在我维护的公司服务器群中,经常会遇到一些大大小小的问题,不是因为磁盘空间满,就是程序的BUG导致服务器负载过高而死机。所以,必须要有一套系统来维护、管理服务器群,但由于商业软件太昂贵,只能考虑一些免费的管理软件了,呵呵,我们的目标是零投入、高产出,是不是太……,唉,没办法啊,谁让商业软件太贵买不起。
    本文通过SNMP、rrdtool、cacti等免费工具打造了一套带有简单报警功能的监控系统,尽管是免费的,但其价值丝毫不逊于商业软件。开始工作前,我们需要了解一些基本概念,这将有助于我们更加全面的掌握、使用监控系统,也使我们在后期的维护及优化中更加游刃有余。

    一、SNMP简介

    虽然TCP/IP的管理协议SNMP(Simple Network Management Protocol)称为简单网络管理协议,但实际上SNMP相当复杂。所以这里只能给大家简单的描述一下,如果读者想深入SNMP协议,可以参阅http://www.faqs.org/rfcs/index.html中有关SNMP协议的详细介绍。
    SNMP主要由两部分组成:一部分是MIB(Management Information Base,管理信息结构)的定义,也就是我们访问的实体内容,如:系统信息、TCP信息等;另一部分是访问管理信息库的协议操作:get、get-next、set和trap,通过这些操作可以访问实体内容。
    管理信息库是一个树状的结构,如图1所示,OID(object identifiers)对象标识符用数字表示,MIB则用文字描述。其实这两个概念和IP地址ó域名相对应的原理是一样的,通过查询OID和MIB都可以获取我们想要的信息,但是使用OID更为方便一些,就像我们更喜欢域名一样。本文中所有使用的OID都是1.3.6.1.4.1,即enterprises。
    举个例子:查看系统正常运行时间的OID是1.3.6.1.2.1.1.3,也可以将这个OID写成iso.org.dod.internet.mgmt.mib-2.system.sysUpTime。

    图1:OID树状结构图

    SNMP目前有3个版本:

    SNMP Version 1: SNMP协议的首个版本,因为配置、使用很简单,所以也是最常用的。这个版本的安全策略使用的是限制IP访问和团体名的方式,而且数据传输也不加密,一旦被非法用户获取访问方法,服务器的所有信息将被一览无余。

    SNMP Version 2: SNMP的第二版本, 也称为v2c。SNMPv2在前一版本的基础上扩展了错误代码数量和计数器的大小,并且在查询大量数据信息时能够保证较高的效率。

    SNMP Version 3: 相对于前两个版本,v3提供了更为强大的安全机制和远程配置功能。它不再使用团体名和读写访问控制作为安全策略,而是加入了用户名和密码的机制。最重要的一点是v3版本支持SNMP数据传输和错误检测加密传输。并且可根据每个用户来单独设置访问OID值的权限。

    NET-SNMP就是基于上述原理开发的免费SNMP工具,这款工具的实现原理与设计同SNMP协议完全一致。当今几乎所有的Linux系统和网络设备(路由器、防火墙等)都支持SNMP协议,所以通过SNMP能够轻松的获取监控设备的信息。

    二、MRTG、RRDtool和cacti

    由于NET-SNMP收集的数据都是数值形式,不利于分析系统。需要有工具将收集到的数据画成连续的图形便于直观的了解、监控系统,而MRTG(多路由器流量记录仪)和RRDtool可以实现这个功能。
    MRTG是由crontab定时运行,负责从监控的主机采集数据,然后将这些实时数据保存并创建连续图形。MRTG有几项基本功能。首先,它保存着一个不需要维护大小的数据库:软件只保存实时的数据来创建图形,所以保存数据的文件大小一直不变,时间一长,就无法看到历史数据图形了;其次,虽然MRTG可以记录任何SNMP变量并绘制其图形,但很可惜,它的图形整合功能不强,如果想创建有多个数据源的监控,就得画多个图形,这样很不利于管理工作。为了解决上述问题,MRTG的作者编写了RRDtool。
    RRDtool在概念上类似于MRTG,但它具有改进的数据合并和图形整合功能。和MRTG不同的是,RRDtool不提供它自己的任何数据收集方法,而是必须由一个单独的软件来收集、保存数据,另外,RRDtool可以将不同的数据源画在一张图表上。
    因为RRDtool绘制图形极为复杂,且不易掌握,所以需要和Cacti的配合使用,Cacti是由PHP编写的功能强大的图形显示、配置工具。通过Cacti和这些软件的结合使用,将会展示给我们一个直观的结果。
    Cacti作为前端程序,不仅可以方便的监控任何运行SNMP协议的设备,而且加上Shell程序,将可以完成一些简单的报警机制,这对我们自动化监控有很大帮助。我们的目的是使所有的工作简单化,最好什么都不做就实现目标,呵呵,痴人说梦。下面就跟我开始真正的工作吧。

    1. 安装软件

    我选用了SLES9平台,即SuSE Linux Enterprise Server 9,SuSE这名字是德文“Software und System Entwicklung”的缩写,意思是“软件及系统开发”,目前SUSE公司已被Novell所收购。之所有选择SuSE的操作系统,不仅是因为它是全球第二大Linux厂商,更重要的是它在自动化方面很强大,通过SuSE的YaST(Yet another Setup Tool)图形管理工具不仅可以方便的安装大量软件,而且在配置系统硬件、网络服务时也很容易上手,这项功能对Linux初学者来说很重要。
    下面,我们就在已经安装好的系统环境中运行SuSE的强大工具YaST来安装以下繁多的软件吧。安装前有个小建议,请不要将时间浪费在安装软件上,也就是说,有了方便的RPM包,而且没有什么特殊需求,就不要从源代码直接编译安装了,呵呵,可不要像我当初一样,花了好几个小时安装软件,装完也没心情继续下面的工作了。


    图2:SLES9界面

    apache2-example-pages-2.0.49-27.29 apache2-2.0.49-27.38

    apache2-prefork-2.0.49-27.38
    apache2-doc-2.0.49-27.29

    Mod_php4-apache2-4.3.4-43.8
    apache2-mod_php4-4.3.4-43.46.3

    mysql-shared-4.0.18-32.1
    mysql-client-4.0.18-32.1

    mysql-4.0.18-32.20
    php4-mysql-4.3.4-43.46.3

    php4-4.3.4-43.46.3
    php4-snmp-4.3.4-43.8

    php4-mysql-4.3.4-43.46.3
    rrdtool-1.2.15

    libpng-devel-1.2.5-182.4
    libart_lgpl-devel-2.3.16-84.1

    tcl-devel-8.4.6-26.3
    python-devel-2.3.3-88.1

    Freetype2-devel-2.1.7-53.5
    zlib-devel-1.2.1-70.12

    net-snmp-5.1.3.1-0.6
    libxml-1.8.17


    软件表
    如果在安装软件时系统提示还需要别的软件,可根据提示来添加安装。
    启动“YaST安装和卸载软件”模块来安装表中软件包:
    【方法1】图形模式:单击工具栏“开始”->系统->YaST->系统->安装和卸载软件
    【方法2】图形模式:在命令行输入“yast2”->系统->安装和卸载软件
    【方法3】图形模式:在命令行输入“yast2 sw_single”
    【方法4】文字模式:输入“yast”->Software->Install and Remove Software
    【方法5】文字模式:输入“yast sw_single”
    利用“YaST安装和卸载软件”模块的搜索功能,输入软件列表中的软件包名,出现如下所示的界面,勾选这些软件包。可以同时将所有软件搜索、选择后再点击“接受(A)”安装。

    图3:YaST安装界面
    按下“接受(A)”后,这时会出现提示插入光盘的信息,根据提示插入光盘后便可顺利安装。SuSE的RPM软件包不仅多、全,而且还可通过一些SuSE的安装源或http://rpmfind.net查找不同平台、不同版本的RPM包。
    我也在其它版本的linux系统安装过这些软件,有时因为找不到相同版本的RPM包,导致包的依赖关系也不一样,所以安装很麻烦。包依赖关系的问题在SuSE系统中得到了比较好的解决。

    2. 安装配置cacti

    所有软件安装完毕后,接下来就来安装、配置本文的主角cacti。
    linux:~ # useradd cactiuser # 添加cacti需要的用户
    linux:~ # cd /srv/www/htdocs/ # SuSE的网页目录
    linux:/srv/www/htdocs # wget http://www.cacti.net/downloads/cacti-0.8.6h.tar.gz
    linux:/srv/www/htdocs # tar zxvf cacti-0.8.6h.tar.gz # 解压cacti软件包
    linux:/srv/www/htdocs # mv cacti-0.8.6h cacti
    linux:/srv/www/htdocs # chown –R wwwrun.www cacti
    linux:/srv/www/htdocs # cd cacti
    linux:/ # mysqladmin --user=root create cacti # 创建数据库cacti
    linux:/ # mysql cacti < cacti.sql # 导入数据
    linux:/ # mysql --user=root mysql # 进入数据库
    Mysql > GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
    # 创建cactiuser用户、设置密码“comepassword”并付予新创建的cacti数据库的所有权限
    Mysql > flush privileges; # 更新权限表
    编辑文件include/config.php,找到下列内容然后根据上面的信息进行修改。
    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cacti";
    设置权限:
    linux: ~ # chown -R cactiuser rra/ log/
    # 设置属主为cactiuser,这一步很重要,会影响cacti的正常运行
    linux:/ # crontab –e # 设置定时任务
    */5 * * * * php /srv/www/htdocs/cacti/poller.php > /dev/null 2>&1
    # 每5分钟使用命令php执行一次poller.php轮循文件,这一步主要将收集到的信息绘制成图表
    启动进程服务:
    linux:/ # insserv apache2 mysql snmpd # 设置开机时自动启动服务
    # 启动下列服务
    linux:~ # rcapache2 start
    Starting httpd2 (prefork) done
    linux:~ # rcmysql start
    Starting service MySQL done
    Cacti和系统环境配置完毕后,输入目标服务器IP访问Cacti。
    http://your-server/cacti/

    图4:Cacti登陆界面
    恭喜!看到上面的图片,说明cacti已经和mysql、apache结合成功并运行正常了。输入默认的用户名和密码“admin”后,系统将提示你设置新密码。


    图5:修改密码界面
    设置完新密码后,先别急着添加主机,因为SNMP还没配置好,即使进去了也看不到任何图形和数据,先进入下一环节,配置SNMP。

    三. 配置SNMP

    如果您在前面的基本概念环节还有模糊的地方,那么接下来的内容将使我们更加深入理解监控系统的工作原理。先来配置snmp。本文中cacti和snmp都配置在同一台主机环境中。

    1. 配置snmp文件

    linux:~ # cat /etc/snmpd.conf
    com2sec test 192.168.0.1 public
    group testgroup v1 test
    view all included .1 80
    access testgroup "" any noauth exact all none none

    disk / 95%
    disk /home 1048576
    includeAllDisks

    load 1 3 5
    proc apache 10 1
    swap 1048576
    exec .1.3.6.1.4.1.2021.53 link.sh /bin/sh /root/link.sh
    linux:~ #

    (1) com2sec NAME SOURCE COMMUNITY

    该指令定义了安全访问名、可访问监控主机的IP地址和团体字符串。安全访问名可任意取;第二个选项默认值是default,表示允许所有IP都可访问监控服务器,由于SNMPv1是明文传输数据,所以为了安全,需要将这项修改一下,192.168.0.1表示仅允许这个IP地址访问SNMP监控服务器,除了这种形式,还可将其设置为一个主机名或IP/MASK的形式;Public是系统设置的默认团体名,也得设置复杂些,安全第一嘛。

    (2) group NAME MODEL SECURITY

    定义一个组并映射com2sec设置的安全访问名,同时设定使用SNMPv1版本。

    (3) view NAME TYPE SUBTREE [MASK]

    本条指令用来创建可访问OID范围。NAME任取,TYPE包括“included”和“excluded”,表示监控内容包括或排除后边的SUBTREE;“SUBTREE”就是范围OID的范围了,“.1”表示最大权限,即从根部(ISO)访问的权限;“80”是掩码,用来起限制作用。

    (4)access NAME CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY

    access用来定义访问OID的权限

    (5) disk PATH [ MINSPACE | MINPERCENT% ]
    includeAllDisks MINPERCENT%
    为了使大家更容易理解这两条语句及下面的配置,请先将上面的配置信息写入/etc/snmpd.conf并启动snmp进程服务。然后运行命令:

    linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021.9
    这个OID是查看磁盘信息的,disk指令表示监控一个分区,第二条则监控全部分区,如果设置了最小使用率,一旦磁盘容量超出最小设定值时,OID中的“dskErrorFlag”的标志位将会置为“1”。磁盘使用率可以用百分比和kb的方式来表示。所有磁盘信息都包含在这个OID中。如果您忘了具体OID号,可以使用下面介绍到的snmp命令snmptranslate获取OID号。

    (6) load MAX1 [MAX5 [MAX15]]
    OID:1.3.6.1.4.1.2021.10
    系统的1、5、15分钟的系统负载变化,超过最大值后也会将相关错误标志位设为“1”

    (7)proc NAME [MAX [MIN]]
    OID:1.3.6.1.4.1.2021.2
    监控进程的数量。这里我设置监控apache的进程数,当进程多于10和少于1都将报错。

    (8)swap MIN
    OID:1.3.6.1.4.1.2021.4
    检测swap分区的状态。

    (9)exec [MIBOID] NAME PROG ARGS
    OID:1.3.6.1.4.1.2021.53
    该指令可以执行脚本程序,“MIBOID”是个自定义的OID,定义前先使用snmpwalk命令确定该OID不存在,NAME任取,“PROG”和“ARGS”表示执行的命令和脚本程序。

    link.sh脚本内容:
    linux:~ # vi link.sh
    netstat –an | wc -l # 显示当前系统的所有连接数
    w –h | wc –l # 当前登陆的用户数量。如果后半夜有人登陆系统,说明很有可能***光顾了
    wc –l < /root/suid
    wc –l < /root/sgid # 检测当前系统中所有设置了suid和sgid的文件的数量
    linux:~ # chmod 755 link.sh
    注意程序的内容必须都是以数值形式返回的,因为Cacti只能使用数值绘制图形。
    程序中最后两条指令用来统计系统中SUID和SGID文件的数量。有时,root用户会将一些自己的工作或一些特权指令分配给普通用户,通过SUID和SGID可以实现这项工作,本来是个非常有用的功能,但很可惜,成了***最喜欢的工具之一。当***攻破系统后,不仅可以通过设置了SUID和SGID的文件或命令轻易获得执行特权指令的权限,而且还有可能通过一些系统漏洞获取ROOT权限。举个例子:
    一般情况下,普通用户是无法用fdisk命令看到磁盘信息的,但经过设置suid就能查看了。
    linux:~ # ls -l /sbin/fdisk
    -rwxr-xr-x 1 root root 73792 2005-06-28 18:20 /sbin/fdisk
    sybase@linux:~> /sbin/fdisk -l
    Cannot open /dev/hda
    Cannot open /dev/sda
    sybase@linux:~>
    linux:~ # chmod 4755 /sbin/fdisk
    linux:~ # ls -l /sbin/fdisk
    -rwsr-xr-x 1 root root 73792 2005-06-28 18:20 /sbin/fdisk
    linux:~ # su - sybase
    sybase@linux:~>
    sybase@linux:~> /sbin/fdisk -l

    Disk /dev/hda: 81.9 GB, 81964302336 bytes
    16 heads, 63 sectors/track, 158816 cylinders
    Units = cylinders of 1008 * 512 = 516096 bytes

    Device Boot Start End Blocks Id System
    /dev/hda1 * 43693 60337 8389080 83 Linux
    /dev/hda2 41612 43692 1048824 82 Linux swap
    /dev/hda3 60338 158816 49633416 f W95 Ext'd (LBA)

    Partition table entries are not in disk order

    Disk /dev/sda: 18.2 GB, 18200739840 bytes
    255 heads, 63 sectors/track, 2212 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot Start End Blocks Id System
    /dev/sda1 1 13 104391 83 Linux
    sybase@linux:~>
    通过这个例子,我们了解到了SUID和SGID的优劣,所以最好不要用。为了系统运行在一个安全的环境中,监控这些权限位的文件数量的变化很重要,通过下面的方法实现。
    linux:~ # vi findsuid
    #!/bin/bash
    find / -perm -4000 -type f -print > /root/suid 2>&1
    find / -perm -2000 -type f -print > /root/sgid 2>&1 # 将suid和sgid的值保存在这两个文件中
    chmod 755 /root/suid
    chmod 755 /root/sgid # 设置可执行权限,为SNMP做准备
    linux:~ # chmod 755 findsuid
    linux:~ # crontab –e
    30 2 * * * /bin/bash /root/findsuid # 根据服务器负载来设置脚本的执行时间
    这段程序的结果存放在root目录的suid和sgid两个文件中,通过snmp读取这两个文件的统计结果便能实现监控目的。
    注意:这个程序运行时间较长,所以要和cacti设置的定时任务时间不能太接近。
    这些配置内容是我经过反复的测试、实践得来的,虽然很简单,但很实用,而且大部分的功能都实现了。还有一些高级的配置,可以参阅官方帮助文档或使用“man”命令查看手册。检测配置文件无误后,启动snmp服务:
    linux:~ # rcsnmpd start
    Starting snmpd done
    linux:~ #
    测试:
    linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021
    UCD-SNMP-MIB::prIndex.1 = INTEGER: 1
    UCD-SNMP-MIB::prNames.1 = STRING: httpd2-prefork
    UCD-SNMP-MIB::prMin.1 = INTEGER: 0
    UCD-SNMP-MIB::prMax.1 = INTEGER: 0
    UCD-SNMP-MIB::prCount.1 = INTEGER: 6
    UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrMessage.1 = STRING:
    UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrFixCmd.1 = STRING:
    ……
    linux:~ #
    如果“哗啦哗啦”显示一大堆的数据,说明配置已经生效,可以顺利的进入下一环节了,如果没有显示信息,请检测配置文件正常性以及网络状态和系统是否设置了防火墙。

    四、简单配置cacti

    现在继续接着第2环节的Cacti配置。先登陆http://your-server/cacti,然后输入前面设置的用户名和密码,这时cacti将提示用户配置监控环境。

    图6:Cacti安装向导(1)
    点击“Next”继续


    图7:Cacti安装向导(2)
    选择安装模式,有全新安装和从cacti老版本升级安装两项,根据环境来选择。

    图8:Cacti安装向导(3)

    这些设置比较重要,如果命令的位置和版本填写有误,cacti在后面将无法正常工作。如果不是很清楚命令的位置,可以使用“which”命令查找一下。
    linux:~ # which php
    /usr/bin/php
    linux:~ #
    (1)添加监控主机
    登陆到配置界面后,系统已经将localhost本机加到监控主机列表中,可以先删除它。然后重新将配置好SNMP的主机也,就是本机添加进来。开始前,注意先确定已经启动snmp进程。

    图9:Cacti配置主界面
    选择图9红框处“Devices”,进入下一界面后,点击右上角的“Add”。

    图10:添加监控服务器
    参考下列信息填写:

    Descritpion 对服务器的描述信息,任意取一个容易记的名称
    Hostname 监控主机的IP地址或主机名,如果使用主机名,别忘了设置/etc/hosts
    Host Template 根据监控主机的类型来选择,如果是Linux系统,通常选择“Local Linux Machine”和“ucd/net SNMP Host”。这里选择了“ucd/net SNMP Host”。
    SNMP Community 要和snmpd.conf中的团体名一致
    SNMP Version 如果选择Version 1,就不用设置SNMP Username和SNMP Password两项了,因为只有在Version 3中才会使用。
    SNMP Port 默认使用161端口
    SNMP Timeout 获取目标主机信息的超时时间
    信息填写完整无误后,点击“Create”创建。

    图11:监控服务器添加成功
    如果出现图11左上角的信息后,表明cacti已经检测到了当前主机的snmp信息。首台服务器添加成功,接着为它创建图形,按照图10的提示,点击“Create Graphs for the Host”。

    图12:创建监控图形
    创建监控图形是根据前面选择的模板“ucd/net SNMP Host”来创建的,这个模板包含主机的CPU使用率、系统负载、内存信息及网卡数据流量。选择好要创建的图形后,点击“Create”。

    图13:创建监控图形成功
    当我们看到图13红框框的信息时,说明第一台服务器已经成功添加。写到这里,监控系统的基本框架算是完成了,通过上面的步骤我们可以反复添加多台服务器。接下来,我们需要做一些完善工作。

    图14:创建显示图形
    为了使创建的图形让我们更容易监控、查看,可以将每台服务器的信息单独分类显示。根据图14依次点击“Graph Trees”->“Add”。

    图15:图形名称
    输入提示信息,“Name”是图形显示的名称。

    图16:选择服务器监控图形
    创建完毕后,点击“Graph Management”,Cacti会显示所有创建的图形,在“Filter by host”的下拉菜单中选择刚才我们填加的服务器。

    图17:选择服务器
    勾选所有图形信息,然后添加到刚才创建的“Graph Trees”中的名称。

    图18:确认添加
    单击“yes”添加。

    图19:显示监控图形
    点击“Graph”查看监控图形。

    图20:显示服务器监控图形
    不出意外的话,将会显示监控图片的信息。配置到这步,添加的主机应该可以正常工作了,如果觉得图形数据更新有些慢,可以手动执行前面crontab中定义的内容
    linux:~ # php /srv/www/htdocs/cacti/poller.php
    08/05/2006 12:36:27 PM - SYSTEM STATS: Time:1.3777 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:11 RRDsProcessed:10
    OK u:0.00 s:0.03 r:0.06
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.08
    OK u:0.00 s:0.03 r:0.08
    OK u:0.00 s:0.04 r:0.08
    linux:~ #

    五、监控远程局域网

    我们的服务器分布在全国各地,而且有的机房中是一台服务器带多台后台服务器,由于只有一个公网IP,所以远程内网的机器信息是无法直接获取的,如果想实现真正的全网监控,前面的配置无法满足要求。不过不用担心,强大的NET-SNMP已经考虑到这一点了,通过snmp v3的代理功能可以完成这项工作。
    代理的涵义很简单,如下图所示。

    图21:获取远程局域网信息
    实现代理功能需要对代理服务器和内网服务器分别配置。我们先来配置代理服务器。
    (1)创建用户
    创建一个名为snmpuser的用户,设置验证密码为“TESTADMIN”,并设置为只读模式。密码不能少于8位字符。添加用户前,要关闭snmp服务进程服务。
    linux:~ # net-snmp-config --create-snmpv3-user -ro -a " TESTADMIN " snmpuser
    adding the following line to /var/lib/net-snmp/snmpd.conf:
    createUser snmpuser MD5 "TESTADMIN" DES
    adding the following line to /usr/share/snmp/snmpd.conf:
    rouser snmpuser
    linux:~ #
    (2)配置文件
    添加完用户后,就可以配置snmpd.conf了。
    linux:~ # cat /etc/snmpd.conf
    rouser snmpuser auth # 设置snmpuser为只读用户,并设置认证
    proxy -Cn 100.hatest01 -v3 -u snmpuser -l authNoPriv -a MD5 -A TESTADMIN 172.16.0.100 .1.3
    # 100.hatest01为自定义名称,172.16.0.100是监控的内网服务器的IP,如果有多台机器,可依次添加。“.1.3”代表可访问内网服务器的OID范围
    view all included .1 80 # 设置访问代理服务器OID的权限
    其它的一些配置可以参考前面SNMPv1的内容,如:磁盘空间,执行脚本等。配置无误后,启动snmp进程服务。
    linux:~ # rcsnmpd start
    Starting snmpd done
    linux:~ #
    配置内网服务器:
    (1)添加用户(关闭snmp服务)
    必须和代理服务器用户信息内容一致。
    linux:~ # net-snmp-config --create-snmpv3-user -ro -a " TESTADMIN " snmpuser
    adding the following line to /var/lib/net-snmp/snmpd.conf:
    createUser snmpuser MD5 " TESTADMIN " DES
    adding the following line to /usr/share/snmp/snmpd.conf:
    rouser snmpuser
    linux:~ #
    (2)配置文件
    rouser snmpuser auth
    view all included .1 80
    启动snmp:
    linux:~ # rcsnmpd start
    Starting snmpd done
    linux:~ #

    测试方法:
    访问代理服务器:
    linux:~# snmpwalk -v3 -u snmpuser -l authNoPriv -a MD5 -A TESTADMIN 172.16.0.210 .1.3.6.1.4.1.2021
    上述参数请参阅相关帮助文档。
    访问后台监控机器:
    linux:~# snmpwalk -n 100.hatest01 -v3 -u snmpuser -l authNoPriv -a MD5 -A TESTADMIN 172.16.0.210 .1.3.6.1.4.1.2021
    访问内网的服务器只要多增加一个参数“-n”即可,100.hatest01是前面代理服务器snmp配置文件中设定的内网服务器名。如果有多台,可依次添加。
    通过命令行我们已经成功的获取远程局域网服务器的信息了,下面就通过Cacti来创建监控图形。先来添加代理服务器。步骤和上面添加设备的一样。

    图22:添加代理服务器
    根据配置文件输入图22的信息,然后点击“Create”。


    图23:添加成功
    创建图形以及图形分类的操作和前面的配置方法一样。接着添加远程局域网的服务器。

    图24:添加远程内网服务器
    刚开始我使用Cacti添加远程局域网服务器时,始终无法成功,因为不知道如何填写“Hostname”,还有就是多了一个参数“-n”。但是经过我不懈的努力、尝试,还分析了Cacti的源代码,终于让我找到了解决方法。
    通过这个方法,彻底实现了全网的服务器监控。图中“SNMP username”的信息非常重要,只有这种形式才能正常的获取远程局域网服务器信息。还有“Hostname”要填写代理服务器的IP地址。

    六、Cacti高级配置

    snmp配置环节中,我们自定义了一些OID值,但在Cacti的模板中不存在这些图形,所以需要我们自己来制作模板,这项操作不仅可以把所有数据源画在一张图表上,而且便于管理。
    现在我们就以前面snmpd.conf配置文件中的指令“exec”新创建的OID 1.3.6.1.4.1.2021.53作为实例,将该OID作为模板的数据源。

    图25:创建数据模板(1)
    首先,点击图25“Data Templates”

    图26:创建数据模板(2)
    参考如下内容来填写,其它值保持默认。

    Name 第一个Name是模板的名称,可自定义设置
    Name 第二个Name,“host_description”用来显示主机的IP地址,Test是新创建的模板名
    Data Input Method 获取数据的方法,选择“Get SNMP Data”
    Internal Data Source Name 数据源值的名称“Test”
    Minimum和Maximum这两个值如果不填写表示使用数据源的最大和最小值作为图形的上、下限值
    Data Source Type 选择“COUNTER”

    图27:设置OID
    输入OID值,这一步是定义数据源最关键的一个环节,不仅要确认OID真实存在而且保证是一个数值才行。点击“save”保存数据源。



    图28:创建图形模板
    为新的数据源创建图形模板。这部分仅设置两个值,其它默认不变。点击“create”

    图29:添加数据源
    当图形模板创建完毕后。下面就需要用前面定义的数据源创建我们需要显示的图形了。一个数据源至少需要定义四个数据值,分别是“区域图”、“当前值”、“平均值”和“最大值”,这些值分别显示了系统不同时段的图形状态。点击“Add”添加。

    图30:创建数据区域
    参考下列信息填写:

    Data Source 选择定义的数据源模板
    Color 只有“Graph Item Type”图形类型选择的是AREA, STACK, LINE1, LINE2, LINE3其中之一,才能够为数据源选择颜色。
    Graph Item Type 定义图形的模板类型,因为是首个图形模板,所以要选择“AREA”。
    Text Format 定义一个显示名称
    其它的数值保持默认,点击“create”。

    图31:当前值图形
    再次点击“Add”,创建当前运行值。

    Data Source 选择“Test”
    Graph Item Type 选择“GPRINT”图形类型,只有这个类型才能定义当前、平均和最大值,具体可查看图35。
    Consolidation Function 选择“LAST”,表示当前运行的值
    Text Format 定义图表中显示的名称

    图32:平均值图形
    创建平均值时,只需修改“Consolidation Function”和“Text Format”的内容即可。

    图33:最大值图形
    创建最大值,也是修改“Consolidation Function”和“Text Format”的内容,不过多了一项“Insert Hard Return”,表示插入一个硬回车,这是为了和其它新创建的图形不要重叠显示在一起。
    图34:第二数据源
    选择插入硬回车后,说明一个图形模板定义完成,可以继续在新图形模板中加入数据源。创建方法同上,只是注意要修改第一个图形类型为“STACK”,如图34,只有这样才能将所有数据源画在一张图表上。

    图35:已创建的图形模板
    图35中将两个数据源画在一张图表上。接下来可将新创建的图形模板添加到存在的模板中,这些工作很简单,我就不再多说。到目前为止,基于Cacti的监控、显示全部配置完成,但是还不具备报警功能,所以,下面就跟我来用一些简单的Shell程序实现报警功能吧。

    七、监控报警Shell程序

    虽然监控系统已经正常工作,但我们不可能时时刻刻都盯着这些图表,为了使监控工作自动化,我们可以通过下面的脚本程序来完成一些简单的报警工作。编写脚本前,先要启动mail服务器进程,因为报警是通过邮件的。SuSE系统的默认安装的是Postfix,直接启动即可,无须修改配置文件。
    linux:~ # rcpostfix start
    Starting postfix done
    linux:~ #
    创建脚本:
    linux:~ # mkdir -p /etc/shell # 创建目录
    linux:~ # touch /etc/shell/snmp-disk.sh # 生成文件
    linux:~ # chmod 755 /etc/shell/snmp-disk.sh # 设置权限
    linux:~ # cat /etc/shell/snmp-disk.sh
    #!/bin/sh

    disk=5 # 监控的磁盘空间数量
    up=95 # 设置的阀值,超过将报警
    ip="168.168.20.221 168.168.20.220 xxx.xxx.xxx.xxx" # 监控的所有目标服务器IP地址
    for k in $ip
    do
    {
    dir=`snmpwalk -v 1 -c fqofviqasdfasdfqer984rlks $k 1.3.6.1.4.1.2021.9.1.2|awk '{print $4}'`
    # 获取远程主机磁盘目录名
    n=1
    while [ $n -lt $disk ]
    do
    {
    for i in $dir
    do
    {
    num=`snmpwalk -v 1 -c fqofviqasdfasdfqer984rlks $k 1.3.6.1.4.1.2021.9.1.9.$n|awk '{print $4}'`;
    # 获取远程主机磁盘空间容量
    if [ $num -gt $up ]
    then
    echo "服务器 $k 的 \"$i\" 磁盘分区已达$num%,请检查!" | mail -s $k服务器磁盘$i空间已达$num% alex.li@haoxi.com
    # 当磁盘空间容量超过设定的阀值时,系统将给指定地址发送电子邮件报警
    fi
    n=`echo $n+1|bc`; # 累加操作,然后循环再判断其它分区
    }
    done
    }
    done
    }
    done
    程序编写无误后,接下来设定crontab定时任务,配置程序的执行时间。
    linux:~ # crontab -e
    30 0 * * * /bin/bash /etc/mrtg/snmp-disk.sh
    # 每天凌晨0点30分执行这个脚本,注意:bash命令要使用绝对地址才能正常运行
    如果需要增加监控的次数,可修改crontab设置。虽然这个脚本可以实现邮件报警,但如果我们在“梦中”(睡觉)或看不到邮件就无法收到服务器的报警信息了,一直想通过WAP来实现短信报警的功能,但是没有时间做,而且现在又找到了新工作,呵呵!希望哪位WAP高手有兴趣来试试。通过snmp协议还可以监控到更多的信息,这段小程序仅仅起到一个抛砖引玉的作用,希望大家多多研究,打造出安全、高效的监控、报警系统。因为只有想不到的,而没有做不到的。

    八、排错

    Cacti在使用过程中有时会遇到一些大大小小的问题,我总结了一下,希望对您有所帮助。
    (1)如果无法收到邮件,请检查linux系统上的邮件服务是否启动;
    (2)远程机器的snmp数据无法取到时,请先检查snmp服务是否开启,然后查看防火墙配置是否有限制;
    (3)当发现无法更新Cacti数据时,查看一下磁盘空间是否已满
    这套监控系统我已经安装、配置无数遍了,其中走了不少弯路,如果您是跟着本文中的配置一步步来的,那么,一遍就足够了,除非您想多练习几遍。当您决定要将这些内容配置在真正的应用环境时,我建议按照如下的步骤来做:

    确定监控主机数量。监控广域网的服务器是件比较麻烦的事,尤其是在服务器数量庞大、监控信息多、地理位置不同的环境中。如果一台监控服务器不够,可以配置多台来分担负载。
    确定要监控的信息。如果将每个信息画成一个图,那么看一遍,估计也头晕眼花了,更别说分析了,确定监控信息的数量主要是考虑到制作成模板,然后将这些数据源整合在一张图表中。
    确定snmpd.conf的内容。snmp的配置内容要经过反复测试后,再去修改所有服务器,最好几个系统管理员加上老总开个会,呵呵,这可不是开玩笑,如果有上百台服务器,全部改一遍是很麻烦的,别忘了还有snmp中运行脚本的内容。
    如果由一个系统管理员监控所有服务器,肯定是不切合实际的,毕竟一个人的能力有限。通过Cacti的安全配置可以将这些监控工作分配给每一个普通用户,至于如何设置,就由您自己在Cacti配置界面上找找吧。
    最后一点就是实施了,因为每个人的习惯不同,所以最好由一个人去修改,虽然累了些,但在后期的维护中将会避免很多麻烦
    附录:
    SNMP的相关命令使用方法:

    snmpdelta 一直监视SNMP变量中的变化

    linux:~ # snmpdelta -c public -v 1 -Cs -CT localhost IF-MIB:ifInUcastPkts.3 IF-MIB:ifOutcastPkts.3
    localhost ifInUcastPkts.3 ifOutUcastPkts.3
    [20:15:59 6/14] 184.00 184.00
    [20:16:00 6/14] 158.00 158.00
    [20:16:01 6/14] 184.00 184.00
    [20:16:02 6/14] 184.00 184.00
    [20:16:03 6/14] 158.00 158.00
    [20:16:04 6/14] 184.00 184.00
    [20:16:05 6/14] 184.00 184.00
    [20:16:06 6/14] 158.00 158.00

    snmpdf 通过SNMP监视远程主机的磁盘空间

    linux:~ # snmpdf -v 1 -c public localhost
    Description size (kB) Used Available Used%
    0 0 0 0%
    Real Memory 0 0 0 0%
    Swap Space 0 0 0 0%
    / 5734988 2462884 3272104 42%
    /dev/shm 138472 8 138464 0%
    /media/cdrecorder 0 0 0 0%
    /media/floppy 0 0 0 0%
    /proc/bus/usb 0 0 0 0%
    linux:~ #

    snmpget 从一个代理得到一个SNMP变量的值

    linux:~ # snmpget -v 1 -c public localhost 1.3.6.1.4.1.2021.2.1.5.1
    UCD-SNMP-MIB::prCount.1 = INTEGER: 6
    linux:~ #

    snmpgetnext 从序列中获得下一个变量

    linux:~ # snmpgetnext -v 1 -c public localhost 1.3.6.1.4.1.2021.2.1.5.1
    UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
    linux:~ #

    snmpset 设置代理上的一个SNMP变量

    linux:~ # snmpset -c private -v 1 test-hub system.sysContact.0 s dpz@noc.rutgers.edu ip.ipforwarding.0 = 2

    snmptable 得到一个SNMP变量表

    linux:~ # snmptable -c public -v 1 localhost 1.3.6.1.2.1.1.1
    Was that a table SNMPv2-MIB::system
    linux:~ #

    snmptranslate 搜索并说明MIB结构中的OID

    linux:~ # snmptranslate -On -IR sysDescr
    .1.3.6.1.2.1.1.1
    linux:~ #

    snmptrap 生成一次trap告警

    linux:~ # snmptrap -v 1 -c public manager enterprises.spider test-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1

    snmpwalk 从某个特定的OID开始遍历MIB

    linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021.2
    UCD-SNMP-MIB::prIndex.1 = INTEGER: 1
    UCD-SNMP-MIB::prNames.1 = STRING: httpd2-prefork
    UCD-SNMP-MIB::prMin.1 = INTEGER: 0
    UCD-SNMP-MIB::prMax.1 = INTEGER: 0
    UCD-SNMP-MIB::prCount.1 = INTEGER: 6
    UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrMessage.1 = STRING:
    UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrFixCmd.1 = STRING:
    linux:~ #

    转载:http://blogold.chinaunix.net/u1/42200/showart.php?id=328263

    展开全文
  • suse linux 10 安装

    2010-10-19 19:23:00
    1、 请将suse10第一张安装光盘插入光驱,进入安装界面图1-1-12、选择“installation”图1-1-23、安装程序会自动的加载必要的文件图1-1-34、选择系统默认语言,这里选择“简体中文”,点击“下一步”按钮继续下面的...

    1、    请将suse10第一张安装光盘插入光驱,进入安装界面

    1-1-1

    2、选择“installation

    1-1-2

    3、安装程序会自动的加载必要的文件

    1-1-3

    4、选择系统默认语言,这里选择“简体中文”,点击“下一步”按钮继续下面的安装

    1-1-4

    5、许可协议选项,选择“是,接受许可协议” ,点击“下一步”按钮继续下面的安装

    1-1-5

    6、系统检查当前机器的硬件配置,点击“下一步”按钮继续下面的安装

    1-1-6

    7.选择安装方式,选择“全新安装”,点击“下一步”按钮继续下面的安装

    1-1-7

    8、系统安装信息初始化,点击“下一步”按钮继续下面的安装

    1-1-8

    9、时区选择,这里选择“亚洲——>中国”,点击“下一步”按钮继续下面的安装

    1-1-9

    10、点击更改按钮,按照北京时间调整系统时间,击“应用”按钮,注意“硬件时钟设置”为“本地时间点”,再点击“下一步”按钮继续下面的安装

    1-1-10

    11、安装设置总揽,点击“软件”链接

    1-1-11

    12、打开软件包,选择“oracle服务器库”(最好也选上C++选项)

    1-1-12

    13、点击“细节”按钮,选择搜索

    1-1-13

    14、输入“motif”,点击“搜索”按钮,勾选openmotif-lib选项,点击“接受”按钮,再点击“继续”按钮。,点击“接受”按钮,再点击“继续”继续下面的安装

    1-1-14

    1-1-15

    15、安装确认,点击“安装”按钮,再点击“接受”按钮继续下面的安装

    1-1-16

    16、系统开始正式安装

    1-1-17

    17、第一张安装光盘安装过程中的提示信息

    1-1-18

    18、基本安装过程提示

    1-1-19

    19、基本安装过程完成提示,此时提示“系统将立即重引导”,不要插拔电源或其他外部设备,系统会自动重启

    1-1-20

    20、系统重启后出现下面的页面

    1-1-21

    21、安装程序提示插入下一张光盘,此时请把suse10的第二张安装光盘放入光驱

    1-1-22

    22、第二张suse10系统安装光盘在安装过程中的提示信息同第一张,随后安装程序提示插入第三张光盘,此时请把suse10的第三张安装光盘放入光驱

    1-1-23

    23、第三张suse10系统安装光盘在安装过程中的提示信息同第一张,随后安装程序提示插入第四张光盘,此时请把suse10的第四张安装光盘放入光驱

    1-1-24

    24、第四张盘安装完成后,系统初始化编目

    1-1-25

    25、进行系统配置,首先去掉DHCP分配主机名,其次“主机名和域名”框中主机名遵照约定填写,约定内容如下:国家填写nation,区域:region+区域代码,台站:station+台站代码。区域组织机构代码和台站代码见附件,域名不变。点击“下一步”按钮继续下面的安装

    1-1-26

    26、填写系统的用户名和密码,建立用户:root,输入密码,点击“下一步”按钮继续下面的安装

    1-1-27

    27、系统进行网络设置,点击“下一步”按钮继续下面的安装

    1-1-28

    1-1-29

    1-1-30

    注意:请把防火墙关闭,这里可以配置网络也可以不配置

    28、系统进行因特网测试链接,点击“下一步”按钮继续下面的安装(也可选择跳过)

    1-1-31

    29、系统进行安装设置,点击“下一步”按钮继续下面的安装

    1-1-32

    1-1-33

    30、用户身份验证,点击“下一步”按钮继续下面的安装

    1-1-34

    31、写入系统配置,点击“下一步”按钮继续下面的安装

    1-1-35

    1-1-36

    32、展示发行说明,点击“下一步”按钮继续下面的安装

    1-1-37

    33、系统硬件配置

    1-1-38

    1-1-39

    34、系统进行声卡配置,点击“下一步”按钮继续下面的安装

    1-1-40

    35、系统安装完成,勾掉“为autoyast复制此系统”前的选项。点击“完成”按钮完成suse10的安装。

    1-1-41

    36、安装完成后系统重启

    1-1-42

    37、系统重启后显示登陆页面

    1-1-43

    38、输入用户名root输入密码

    1-1-44

    1-1-45

    39、系统启动完成,显示桌面

    1-1-46

    1-1-47

    40、装好SUSE10root用户登录后,利用SUSE10自带的工具YaST2,选择安全和用户如图1-1-48所示,在右边选择用户和管理,进入图1-1-48

    1-1-48

    41、在图1-1-48中,在集合过滤器中选择系统用户,在用户中选择Oracle用户,在底侧选择编辑按纽,进入图1-1-49,输入密码,然后选择细节,如图1-1-50所示。

    1-1-49

    1-1-50

    1-1-51

    42、在图1-1-51中的登录壳层中选择/bin/ksh。然后点击接受即完成了安装Oracle所需要的系统。

    43、用root用户登录,修改文件 /etc/hosts,把127.0.0.2屏蔽。即:#127.0.0.2

    1-1-52

    1-1-53

    注意:检查系统时间是否正确,按北京时间较准。

    root用户登录,在/opt目录下建立temp文件夹。

     

    展开全文
  • 了解服务器的运行状况是件非常重要的工作,尤其是一些关键数值的变化,不仅能帮助我们解决一些隐患,而且还能分析服务器的瓶颈、性能等问题。在我维护的公司服务器群中,经常会遇到一些大大小小的问题,不是因为磁盘...

    了解服务器的运行状况是件非常重要的工作,尤其是一些关键数值的变化,不仅能帮助我们解决一些隐患,而且还能分析服务器的瓶颈、性能等问题。在我维护的公司服务器群中,经常会遇到一些大大小小的问题,不是因为磁盘空间满,就是程序的BUG导致服务器负载过高而死机。所以,必须要有一套系统来维护、管理服务器群,但由于商业软件太昂贵,只能考虑一些免费的管理软件了,呵呵,我们的目标是零投入、高产出,是不是太……,唉,没办法啊,谁让商业软件太贵买不起。
    本文通过SNMP、rrdtool、cacti等免费工具打造了一套带有简单报警功能的监控系统,尽管是免费的,但其价值丝毫不逊于商业软件。开始工作前,我们需要了解一些基本概念,这将有助于我们更加全面的掌握、使用监控系统,也使我们在后期的维护及优化中更加游刃有余。
    一、SNMP简介
    虽然TCP/IP的管理协议SNMP(Simple Network Management Protocol)称为简单网络管理协议,但实际上SNMP相当复杂。所以这里只能给大家简单的描述一下,如果读者想深入SNMP协议,可以参阅
    http://www.faqs.org/rfcs/index.html
    中有关SNMP协议的详细介绍。
    SNMP主要由两部分组成:一部分是MIB(Management Information Base,管理信息结构)的定义,也就是我们访问的实体内容,如:系统信息、TCP信息等;另一部分是访问管理信息库的协议操作:get、get-next、set和trap,通过这些操作可以访问实体内容。
    管理信息库是一个树状的结构,如图1所示,OID(object identifiers)对象标识符用数字表示,MIB则用文字描述。其实这两个概念和IP地址ó域名相对应的原理是一样的,通过查询OID和MIB都可以获取我们想要的信息,但是使用OID更为方便一些,就像我们更喜欢域名一样。本文中所有使用的OID都是1.3.6.1.4.1,即enterprises。
    举个例子:查看系统正常运行时间的OID是1.3.6.1.2.1.1.3,也可以将这个OID写成iso.org.dod.internet.mgmt.mib-2.system.sysUpTime。
    图1:OID树状结构图
    SNMP目前有3个版本:
    SNMP Version 1: SNMP协议的首个版本,因为配置、使用很简单,所以也是最常用的。这个版本的安全策略使用的是限制IP访问和团体名的方式,而且数据传输也不加密,一旦被非法用户获取访问方法,服务器的所有信息将被一览无余。
    SNMP Version 2: SNMP的第二版本, 也称为v2c。SNMPv2在前一版本的基础上扩展了错误代码数量和计数器的大小,并且在查询大量数据信息时能够保证较高的效率。
    SNMP Version 3: 相对于前两个版本,v3提供了更为强大的安全机制和远程配置功能。它不再使用团体名和读写访问控制作为安全策略,而是加入了用户名和密码的机制。最重要的一点是v3版本支持SNMP数据传输和错误检测加密传输。并且可根据每个用户来单独设置访问OID值的权限。
    NET-SNMP就是基于上述原理开发的免费SNMP工具,这款工具的实现原理与设计同SNMP协议完全一致。当今几乎所有的Linux系统和网络设备(路由器、防火墙等)都支持SNMP协议,所以通过SNMP能够轻松的获取监控设备的信息。
    二、MRTG、RRDtool和cacti
    由于NET-SNMP收集的数据都是数值形式,不利于分析系统。需要有工具将收集到的数据画成连续的图形便于直观的了解、监控系统,而MRTG(多路由器流量记录仪)和RRDtool可以实现这个功能。
    MRTG是由crontab定时运行,负责从监控的主机采集数据,然后将这些实时数据保存并创建连续图形。MRTG有几项基本功能。首先,它保存着一个不需要维护大小的数据库:软件只保存实时的数据来创建图形,所以保存数据的文件大小一直不变,时间一长,就无法看到历史数据图形了;其次,虽然MRTG可以记录任何SNMP变量并绘制其图形,但很可惜,它的图形整合功能不强,如果想创建有多个数据源的监控,就得画多个图形,这样很不利于管理工作。为了解决上述问题,MRTG的作者编写了RRDtool。
    RRDtool在概念上类似于MRTG,但它具有改进的数据合并和图形整合功能。和MRTG不同的是,RRDtool不提供它自己的任何数据收集方法,而是必须由一个单独的软件来收集、保存数据,另外,RRDtool可以将不同的数据源画在一张图表上。
    因为RRDtool绘制图形极为复杂,且不易掌握,所以需要和Cacti的配合使用,Cacti是由PHP编写的功能强大的图形显示、配置工具。通过Cacti和这些软件的结合使用,将会展示给我们一个直观的结果。
    Cacti作为前端程序,不仅可以方便的监控任何运行SNMP协议的设备,而且加上Shell程序,将可以完成一些简单的报警机制,这对我们自动化监控有很大帮助。我们的目的是使所有的工作简单化,最好什么都不做就实现目标,呵呵,痴人说梦。下面就跟我开始真正的工作吧。
    1. 安装软件
    我选用了SLES9平台,即SuSE Linux Enterprise Server 9,SuSE这名字是德文“Software und System Entwicklung”的缩写,意思是“软件及系统开发”,目前SUSE公司已被Novell所收购。之所有选择SuSE的操作系统,不仅是因为它是全球第二大Linux厂商,更重要的是它在自动化方面很强大,通过SuSE的YaST(Yet another Setup Tool)图形管理工具不仅可以方便的安装大量软件,而且在配置系统硬件、网络服务时也很容易上手,这项功能对Linux初学者来说很重要。
    下面,我们就在已经安装好的系统环境中运行SuSE的强大工具YaST来安装以下繁多的软件吧。安装前有个小建议,请不要将时间浪费在安装软件上,也就是说,有了方便的RPM包,而且没有什么特殊需求,就不要从源代码直接编译安装了,呵呵,可不要像我当初一样,花了好几个小时安装软件,装完也没心情继续下面的工作了。
    图2:SLES9界面
    apache2-example-pages-2.0.49-27.29 apache2-2.0.49-27.38
    apache2-prefork-2.0.49-27.38
    apache2-doc-2.0.49-27.29
    Mod_php4-apache2-4.3.4-43.8
    apache2-mod_php4-4.3.4-43.46.3
    mysql-shared-4.0.18-32.1
    mysql-client-4.0.18-32.1
    mysql-4.0.18-32.20
    php4-mysql-4.3.4-43.46.3
    php4-4.3.4-43.46.3
    php4-snmp-4.3.4-43.8
    php4-mysql-4.3.4-43.46.3
    rrdtool-1.2.15
    libpng-devel-1.2.5-182.4
    libart_lgpl-devel-2.3.16-84.1
    tcl-devel-8.4.6-26.3
    python-devel-2.3.3-88.1
    Freetype2-devel-2.1.7-53.5
    zlib-devel-1.2.1-70.12
    net-snmp-5.1.3.1-0.6
    libxml-1.8.17
    软件表
    如果在安装软件时系统提示还需要别的软件,可根据提示来添加安装。
    启动“YaST安装和卸载软件”模块来安装表中软件包:
    【方法1】图形模式:单击工具栏“开始”->系统->YaST->系统->安装和卸载软件
    【方法2】图形模式:在命令行输入“yast2”->系统->安装和卸载软件
    【方法3】图形模式:在命令行输入“yast2 sw_single”
    【方法4】文字模式:输入“yast”->Software->Install and Remove Software
    【方法5】文字模式:输入“yast sw_single”
    利用“YaST安装和卸载软件”模块的搜索功能,输入软件列表中的软件包名,出现如下所示的界面,勾选这些软件包。可以同时将所有软件搜索、选择后再点击“接受(A)”安装。
    图3:YaST安装界面
    按下“接受(A)”后,这时会出现提示插入光盘的信息,根据提示插入光盘后便可顺利安装。SuSE的RPM软件包不仅多、全,而且还可通过一些SuSE的安装源或
    http://rpmfind.net
    查找不同平台、不同版本的RPM包。
    我也在其它版本的linux系统安装过这些软件,有时因为找不到相同版本的RPM包,导致包的依赖关系也不一样,所以安装很麻烦。包依赖关系的问题在SuSE系统中得到了比较好的解决。
    2. 安装配置cacti
    所有软件安装完毕后,接下来就来安装、配置本文的主角cacti。
    linux:~ # useradd cactiuser # 添加cacti需要的用户
    linux:~ # cd /srv/www/htdocs/ # SuSE的网页目录
    linux:/srv/www/htdocs # wget
    http://www.cacti.net/downloads/cacti-0.8.6h.tar.gz

    linux:/srv/www/htdocs # tar zxvf cacti-0.8.6h.tar.gz # 解压cacti软件包
    linux:/srv/www/htdocs # mv cacti-0.8.6h cacti
    linux:/srv/www/htdocs # chown –R wwwrun.www cacti
    linux:/srv/www/htdocs # cd cacti
    linux:/ # mysqladmin --user=root create cacti # 创建数据库cacti
    linux:/ # mysql cacti  GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
    # 创建cactiuser用户、设置密码“comepassword”并付予新创建的cacti数据库的所有权限
    Mysql > flush privileges; # 更新权限表
    编辑文件include/config.php,找到下列内容然后根据上面的信息进行修改。
    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cacti";
    设置权限:
    linux: ~ # chown -R cactiuser rra/ log/
    # 设置属主为cactiuser,这一步很重要,会影响cacti的正常运行
    linux:/ # crontab –e # 设置定时任务
    */5 * * * * php /srv/www/htdocs/cacti/poller.php > /dev/null 2>&1
    # 每5分钟使用命令php执行一次poller.php轮循文件,这一步主要将收集到的信息绘制成图表
    启动进程服务:
    linux:/ # insserv apache2 mysql snmpd # 设置开机时自动启动服务
    # 启动下列服务
    linux:~ # rcapache2 start
    Starting httpd2 (prefork) done
    linux:~ # rcmysql start
    Starting service MySQL done
    Cacti和系统环境配置完毕后,输入目标服务器IP访问Cacti。
    http://your-server/cacti/
    图4:Cacti登陆界面
    恭喜!看到上面的图片,说明cacti已经和mysql、apache结合成功并运行正常了。输入默认的用户名和密码“admin”后,系统将提示你设置新密码。
    图5:修改密码界面
    设置完新密码后,先别急着添加主机,因为SNMP还没配置好,即使进去了也看不到任何图形和数据,先进入下一环节,配置SNMP。
    三. 配置SNMP
    如果您在前面的基本概念环节还有模糊的地方,那么接下来的内容将使我们更加深入理解监控系统的工作原理。先来配置snmp。本文中cacti和snmp都配置在同一台主机环境中。
    1. 配置snmp文件
    linux:~ # cat /etc/snmpd.conf
    com2sec test 192.168.0.1 public
    group testgroup v1 test
    view all included .1 80
    access testgroup "" any noauth exact all none none
    disk / 95%
    disk /home 1048576
    includeAllDisks
    load 1 3 5
    proc apache 10 1
    swap 1048576
    exec .1.3.6.1.4.1.2021.53 link.sh /bin/sh /root/link.sh
    linux:~ #
    (1) com2sec NAME SOURCE COMMUNITY
    该指令定义了安全访问名、可访问监控主机的IP地址和团体字符串。安全访问名可任意取;第二个选项默认值是default,表示允许所有IP都可访问监控服务器,由于SNMPv1是明文传输数据,所以为了安全,需要将这项修改一下,192.168.0.1表示仅允许这个IP地址访问SNMP监控服务器,除了这种形式,还可将其设置为一个主机名或IP/MASK的形式;Public是系统设置的默认团体名,也得设置复杂些,安全第一嘛。
    (2) group NAME MODEL SECURITY
    定义一个组并映射com2sec设置的安全访问名,同时设定使用SNMPv1版本。
    (3) view NAME TYPE SUBTREE [MASK]
    本条指令用来创建可访问OID范围。NAME任取,TYPE包括“included”和“excluded”,表示监控内容包括或排除后边的SUBTREE;“SUBTREE”就是范围OID的范围了,“.1”表示最大权限,即从根部(ISO)访问的权限;“80”是掩码,用来起限制作用。
    (4)access NAME CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY
    access用来定义访问OID的权限
    (5) disk PATH [ MINSPACE | MINPERCENT% ]
    includeAllDisks MINPERCENT%
    为了使大家更容易理解这两条语句及下面的配置,请先将上面的配置信息写入/etc/snmpd.conf并启动snmp进程服务。然后运行命令:
    linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021.9
    这个OID是查看磁盘信息的,disk指令表示监控一个分区,第二条则监控全部分区,如果设置了最小使用率,一旦磁盘容量超出最小设定值时,OID中的“dskErrorFlag”的标志位将会置为“1”。磁盘使用率可以用百分比和kb的方式来表示。所有磁盘信息都包含在这个OID中。如果您忘了具体OID号,可以使用下面介绍到的snmp命令snmptranslate获取OID号。
    (6) load MAX1 [MAX5 [MAX15]]
    OID:1.3.6.1.4.1.2021.10
    系统的1、5、15分钟的系统负载变化,超过最大值后也会将相关错误标志位设为“1”
    (7)proc NAME [MAX [MIN]]
    OID:1.3.6.1.4.1.2021.2
    监控进程的数量。这里我设置监控apache的进程数,当进程多于10和少于1都将报错。
    (8)swap MIN
    OID:1.3.6.1.4.1.2021.4
    检测swap分区的状态。
    (9)exec [MIBOID] NAME PROG ARGS
    OID:1.3.6.1.4.1.2021.53
    该指令可以执行脚本程序,“MIBOID”是个自定义的OID,定义前先使用snmpwalk命令确定该OID不存在,NAME任取,“PROG”和“ARGS”表示执行的命令和脚本程序。
    link.sh脚本内容:
    linux:~ # vi link.sh
    netstat –an | wc -l # 显示当前系统的所有连接数
    w –h | wc –l # 当前登陆的用户数量。如果后半夜有人登陆系统,说明很有可能***光顾了
    wc –l  /sbin/fdisk -l
    Cannot open /dev/hda
    Cannot open /dev/sda
    sybase@linux:~>
    linux:~ # chmod 4755 /sbin/fdisk
    linux:~ # ls -l /sbin/fdisk
    -rwsr-xr-x 1 root root 73792 2005-06-28 18:20 /sbin/fdisk
    linux:~ # su - sybase
    sybase@linux:~>
    sybase@linux:~> /sbin/fdisk -l
    Disk /dev/hda: 81.9 GB, 81964302336 bytes
    16 heads, 63 sectors/track, 158816 cylinders
    Units = cylinders of 1008 * 512 = 516096 bytes
    Device Boot Start End Blocks Id System
    /dev/hda1 * 43693 60337 8389080 83 Linux
    /dev/hda2 41612 43692 1048824 82 Linux swap
    /dev/hda3 60338 158816 49633416 f W95 Ext'd (LBA)
    Partition table entries are not in disk order
    Disk /dev/sda: 18.2 GB, 18200739840 bytes
    255 heads, 63 sectors/track, 2212 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot Start End Blocks Id System
    /dev/sda1 1 13 104391 83 Linux
    sybase@linux:~>
    通过这个例子,我们了解到了SUID和SGID的优劣,所以最好不要用。为了系统运行在一个安全的环境中,监控这些权限位的文件数量的变化很重要,通过下面的方法实现。
    linux:~ # vi findsuid
    #!/bin/bash
    find / -perm -4000 -type f -print > /root/suid 2>&1
    find / -perm -2000 -type f -print > /root/sgid 2>&1 # 将suid和sgid的值保存在这两个文件中
    chmod 755 /root/suid
    chmod 755 /root/sgid # 设置可执行权限,为SNMP做准备
    linux:~ # chmod 755 findsuid
    linux:~ # crontab –e
    30 2 * * * /bin/bash /root/findsuid # 根据服务器负载来设置脚本的执行时间
    这段程序的结果存放在root目录的suid和sgid两个文件中,通过snmp读取这两个文件的统计结果便能实现监控目的。
    注意:这个程序运行时间较长,所以要和cacti设置的定时任务时间不能太接近。
    这些配置内容是我经过反复的测试、实践得来的,虽然很简单,但很实用,而且大部分的功能都实现了。还有一些高级的配置,可以参阅官方帮助文档或使用“man”命令查看手册。检测配置文件无误后,启动snmp服务:
    linux:~ # rcsnmpd start
    Starting snmpd done
    linux:~ #
    测试:
    linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021
    UCD-SNMP-MIB::prIndex.1 = INTEGER: 1
    UCD-SNMP-MIB::prNames.1 = STRING: httpd2-prefork
    UCD-SNMP-MIB::prMin.1 = INTEGER: 0
    UCD-SNMP-MIB::prMax.1 = INTEGER: 0
    UCD-SNMP-MIB::prCount.1 = INTEGER: 6
    UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrMessage.1 = STRING:
    UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrFixCmd.1 = STRING:
    ……
    linux:~ #
    如果“哗啦哗啦”显示一大堆的数据,说明配置已经生效,可以顺利的进入下一环节了,如果没有显示信息,请检测配置文件正常性以及网络状态和系统是否设置了防火墙。
    四、简单配置cacti
    现在继续接着第2环节的Cacti配置。先登陆
    http://your-server/cacti
    ,然后输入前面设置的用户名和密码,这时cacti将提示用户配置监控环境。
    图6:Cacti安装向导(1)
    点击“Next”继续
    图7:Cacti安装向导(2)
    选择安装模式,有全新安装和从cacti老版本升级安装两项,根据环境来选择。
    图8:Cacti安装向导(3)
    这些设置比较重要,如果命令的位置和版本填写有误,cacti在后面将无法正常工作。如果不是很清楚命令的位置,可以使用“which”命令查找一下。
    linux:~ # which php
    /usr/bin/php
    linux:~ #
    (1)添加监控主机
    登陆到配置界面后,系统已经将localhost本机加到监控主机列表中,可以先删除它。然后重新将配置好SNMP的主机也,就是本机添加进来。开始前,注意先确定已经启动snmp进程。
    图9:Cacti配置主界面
    选择图9红框处“Devices”,进入下一界面后,点击右上角的“Add”。
    图10:添加监控服务器
    参考下列信息填写:
    Descritpion 对服务器的描述信息,任意取一个容易记的名称
    Hostname 监控主机的IP地址或主机名,如果使用主机名,别忘了设置/etc/hosts
    Host Template 根据监控主机的类型来选择,如果是Linux系统,通常选择“Local Linux Machine”和“ucd/net SNMP Host”。这里选择了“ucd/net SNMP Host”。
    SNMP Community 要和snmpd.conf中的团体名一致
    SNMP Version 如果选择Version 1,就不用设置SNMP Username和SNMP Password两项了,因为只有在Version 3中才会使用。
    SNMP Port 默认使用161端口
    SNMP Timeout 获取目标主机信息的超时时间
    信息填写完整无误后,点击“Create”创建。
    图11:监控服务器添加成功
    如果出现图11左上角的信息后,表明cacti已经检测到了当前主机的snmp信息。首台服务器添加成功,接着为它创建图形,按照图10的提示,点击“Create Graphs for the Host”。
    图12:创建监控图形
    创建监控图形是根据前面选择的模板“ucd/net SNMP Host”来创建的,这个模板包含主机的CPU使用率、系统负载、内存信息及网卡数据流量。选择好要创建的图形后,点击“Create”。
    图13:创建监控图形成功
    当我们看到图13红框框的信息时,说明第一台服务器已经成功添加。写到这里,监控系统的基本框架算是完成了,通过上面的步骤我们可以反复添加多台服务器。接下来,我们需要做一些完善工作。
    图14:创建显示图形
    为了使创建的图形让我们更容易监控、查看,可以将每台服务器的信息单独分类显示。根据图14依次点击“Graph Trees”->“Add”。
    图15:图形名称
    输入提示信息,“Name”是图形显示的名称。
    图16:选择服务器监控图形
    创建完毕后,点击“Graph Management”,Cacti会显示所有创建的图形,在“Filter by host”的下拉菜单中选择刚才我们填加的服务器。
    图17:选择服务器
    勾选所有图形信息,然后添加到刚才创建的“Graph Trees”中的名称。
    图18:确认添加
    单击“yes”添加。
    图19:显示监控图形
    点击“Graph”查看监控图形。
    图20:显示服务器监控图形
    不出意外的话,将会显示监控图片的信息。配置到这步,添加的主机应该可以正常工作了,如果觉得图形数据更新有些慢,可以手动执行前面crontab中定义的内容
    linux:~ # php /srv/www/htdocs/cacti/poller.php
    08/05/2006 12:36:27 PM - SYSTEM STATS: Time:1.3777 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:11 RRDsProcessed:10
    OK u:0.00 s:0.03 r:0.06
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.07
    OK u:0.00 s:0.03 r:0.08
    OK u:0.00 s:0.03 r:0.08
    OK u:0.00 s:0.04 r:0.08
    linux:~ #
    五、监控远程局域网
    我们的服务器分布在全国各地,而且有的机房中是一台服务器带多台后台服务器,由于只有一个公网IP,所以远程内网的机器信息是无法直接获取的,如果想实现真正的全网监控,前面的配置无法满足要求。不过不用担心,强大的NET-SNMP已经考虑到这一点了,通过snmp v3的代理功能可以完成这项工作。
    代理的涵义很简单,如下图所示。
    图21:获取远程局域网信息
    实现代理功能需要对代理服务器和内网服务器分别配置。我们先来配置代理服务器。
    (1)创建用户
    创建一个名为snmpuser的用户,设置验证密码为“TESTADMIN”,并设置为只读模式。密码不能少于8位字符。添加用户前,要关闭snmp服务进程服务。
    linux:~ # net-snmp-config --create-snmpv3-user -ro -a " TESTADMIN " snmpuser
    adding the following line to /var/lib/net-snmp/snmpd.conf:
    createUser snmpuser MD5 "TESTADMIN" DES
    adding the following line to /usr/share/snmp/snmpd.conf:
    rouser snmpuser
    linux:~ #
    (2)配置文件
    添加完用户后,就可以配置snmpd.conf了。
    linux:~ # cat /etc/snmpd.conf
    rouser snmpuser auth # 设置snmpuser为只读用户,并设置认证
    proxy -Cn 100.hatest01 -v3 -u snmpuser -l authNoPriv -a MD5 -A TESTADMIN 172.16.0.100 .1.3
    # 100.hatest01为自定义名称,172.16.0.100是监控的内网服务器的IP,如果有多台机器,可依次添加。“.1.3”代表可访问内网服务器的OID范围
    view all included .1 80 # 设置访问代理服务器OID的权限
    其它的一些配置可以参考前面SNMPv1的内容,如:磁盘空间,执行脚本等。配置无误后,启动snmp进程服务。
    linux:~ # rcsnmpd start
    Starting snmpd done
    linux:~ #
    配置内网服务器:
    (1)添加用户(关闭snmp服务)
    必须和代理服务器用户信息内容一致。
    linux:~ # net-snmp-config --create-snmpv3-user -ro -a " TESTADMIN " snmpuser
    adding the following line to /var/lib/net-snmp/snmpd.conf:
    createUser snmpuser MD5 " TESTADMIN " DES
    adding the following line to /usr/share/snmp/snmpd.conf:
    rouser snmpuser
    linux:~ #
    (2)配置文件
    rouser snmpuser auth
    view all included .1 80
    启动snmp:
    linux:~ # rcsnmpd start
    Starting snmpd done
    linux:~ #
    测试方法:
    访问代理服务器:
    linux:~# snmpwalk -v3 -u snmpuser -l authNoPriv -a MD5 -A TESTADMIN 172.16.0.210 .1.3.6.1.4.1.2021
    上述参数请参阅相关帮助文档。
    访问后台监控机器:
    linux:~# snmpwalk -n 100.hatest01 -v3 -u snmpuser -l authNoPriv -a MD5 -A TESTADMIN 172.16.0.210 .1.3.6.1.4.1.2021
    访问内网的服务器只要多增加一个参数“-n”即可,100.hatest01是前面代理服务器snmp配置文件中设定的内网服务器名。如果有多台,可依次添加。
    通过命令行我们已经成功的获取远程局域网服务器的信息了,下面就通过Cacti来创建监控图形。先来添加代理服务器。步骤和上面添加设备的一样。
    图22:添加代理服务器
    根据配置文件输入图22的信息,然后点击“Create”。
    图23:添加成功
    创建图形以及图形分类的操作和前面的配置方法一样。接着添加远程局域网的服务器。
    图24:添加远程内网服务器
    刚开始我使用Cacti添加远程局域网服务器时,始终无法成功,因为不知道如何填写“Hostname”,还有就是多了一个参数“-n”。但是经过我不懈的努力、尝试,还分析了Cacti的源代码,终于让我找到了解决方法。
    通过这个方法,彻底实现了全网的服务器监控。图中“SNMP username”的信息非常重要,只有这种形式才能正常的获取远程局域网服务器信息。还有“Hostname”要填写代理服务器的IP地址。
    六、Cacti高级配置
    snmp配置环节中,我们自定义了一些OID值,但在Cacti的模板中不存在这些图形,所以需要我们自己来制作模板,这项操作不仅可以把所有数据源画在一张图表上,而且便于管理。
    现在我们就以前面snmpd.conf配置文件中的指令“exec”新创建的OID 1.3.6.1.4.1.2021.53作为实例,将该OID作为模板的数据源。
    图25:创建数据模板(1)
    首先,点击图25“Data Templates”
    图26:创建数据模板(2)
    参考如下内容来填写,其它值保持默认。
    Name 第一个Name是模板的名称,可自定义设置
    Name 第二个Name,“host_description”用来显示主机的IP地址,Test是新创建的模板名
    Data Input Method 获取数据的方法,选择“Get SNMP Data”
    Internal Data Source Name 数据源值的名称“Test”
    Minimum和Maximum这两个值如果不填写表示使用数据源的最大和最小值作为图形的上、下限值
    Data Source Type 选择“COUNTER”
    图27:设置OID
    输入OID值,这一步是定义数据源最关键的一个环节,不仅要确认OID真实存在而且保证是一个数值才行。点击“save”保存数据源。
    图28:创建图形模板
    为新的数据源创建图形模板。这部分仅设置两个值,其它默认不变。点击“create”
    图29:添加数据源
    当图形模板创建完毕后。下面就需要用前面定义的数据源创建我们需要显示的图形了。一个数据源至少需要定义四个数据值,分别是“区域图”、“当前值”、“平均值”和“最大值”,这些值分别显示了系统不同时段的图形状态。点击“Add”添加。
    图30:创建数据区域
    参考下列信息填写:
    Data Source 选择定义的数据源模板
    Color 只有“Graph Item Type”图形类型选择的是AREA, STACK, LINE1, LINE2, LINE3其中之一,才能够为数据源选择颜色。
    Graph Item Type 定义图形的模板类型,因为是首个图形模板,所以要选择“AREA”。
    Text Format 定义一个显示名称
    其它的数值保持默认,点击“create”。
    图31:当前值图形
    再次点击“Add”,创建当前运行值。
    Data Source 选择“Test”
    Graph Item Type 选择“GPRINT”图形类型,只有这个类型才能定义当前、平均和最大值,具体可查看图35。
    Consolidation Function 选择“LAST”,表示当前运行的值
    Text Format 定义图表中显示的名称
    图32:平均值图形
    创建平均值时,只需修改“Consolidation Function”和“Text Format”的内容即可。
    图33:最大值图形
    创建最大值,也是修改“Consolidation Function”和“Text Format”的内容,不过多了一项“Insert Hard Return”,表示插入一个硬回车,这是为了和其它新创建的图形不要重叠显示在一起。
    图34:第二数据源
    选择插入硬回车后,说明一个图形模板定义完成,可以继续在新图形模板中加入数据源。创建方法同上,只是注意要修改第一个图形类型为“STACK”,如图34,只有这样才能将所有数据源画在一张图表上。
    图35:已创建的图形模板
    图35中将两个数据源画在一张图表上。接下来可将新创建的图形模板添加到存在的模板中,这些工作很简单,我就不再多说。到目前为止,基于Cacti的监控、显示全部配置完成,但是还不具备报警功能,所以,下面就跟我来用一些简单的Shell程序实现报警功能吧。
    七、监控报警Shell程序
    虽然监控系统已经正常工作,但我们不可能时时刻刻都盯着这些图表,为了使监控工作自动化,我们可以通过下面的脚本程序来完成一些简单的报警工作。编写脚本前,先要启动mail服务器进程,因为报警是通过邮件的。SuSE系统的默认安装的是Postfix,直接启动即可,无须修改配置文件。
    linux:~ # rcpostfix start
    Starting postfix done
    linux:~ #
    创建脚本:
    linux:~ # mkdir -p /etc/shell # 创建目录
    linux:~ # touch /etc/shell/snmp-disk.sh # 生成文件
    linux:~ # chmod 755 /etc/shell/snmp-disk.sh # 设置权限
    linux:~ # cat /etc/shell/snmp-disk.sh
    #!/bin/sh
    disk=5 # 监控的磁盘空间数量
    up=95 # 设置的阀值,超过将报警
    ip="168.168.20.221 168.168.20.220 xxx.xxx.xxx.xxx" # 监控的所有目标服务器IP地址
    for k in $ip
    do
    {
    dir=`snmpwalk -v 1 -c fqofviqasdfasdfqer984rlks $k 1.3.6.1.4.1.2021.9.1.2|awk '{print $4}'`
    # 获取远程主机磁盘目录名
    n=1
    while [ $n -lt $disk ]
    do
    {
    for i in $dir
    do
    {
    num=`snmpwalk -v 1 -c fqofviqasdfasdfqer984rlks $k 1.3.6.1.4.1.2021.9.1.9.$n|awk '{print $4}'`;
    # 获取远程主机磁盘空间容量
    if [ $num -gt $up ]
    then
    echo "服务器 $k 的 \"$i\" 磁盘分区已达$num%,请检查!" | mail -s $k服务器磁盘$i空间已达$num%
    alex.li@haoxi.com
    # 当磁盘空间容量超过设定的阀值时,系统将给指定地址发送电子邮件报警
    fi
    n=`echo $n+1|bc`; # 累加操作,然后循环再判断其它分区
    }
    done
    }
    done
    }
    done
    程序编写无误后,接下来设定crontab定时任务,配置程序的执行时间。
    linux:~ # crontab -e
    30 0 * * * /bin/bash /etc/mrtg/snmp-disk.sh
    # 每天凌晨0点30分执行这个脚本,注意:bash命令要使用绝对地址才能正常运行
    如果需要增加监控的次数,可修改crontab设置。虽然这个脚本可以实现邮件报警,但如果我们在“梦中”(睡觉)或看不到邮件就无法收到服务器的报警信息了,一直想通过WAP来实现短信报警的功能,但是没有时间做,而且现在又找到了新工作,呵呵!希望哪位WAP高手有兴趣来试试。通过snmp协议还可以监控到更多的信息,这段小程序仅仅起到一个抛砖引玉的作用,希望大家多多研究,打造出安全、高效的监控、报警系统。因为只有想不到的,而没有做不到的。
    八、排错
    Cacti在使用过程中有时会遇到一些大大小小的问题,我总结了一下,希望对您有所帮助。
    (1)如果无法收到邮件,请检查linux系统上的邮件服务是否启动;
    (2)远程机器的snmp数据无法取到时,请先检查snmp服务是否开启,然后查看防火墙配置是否有限制;
    (3)当发现无法更新Cacti数据时,查看一下磁盘空间是否已满
    这套监控系统我已经安装、配置无数遍了,其中走了不少弯路,如果您是跟着本文中的配置一步步来的,那么,一遍就足够了,除非您想多练习几遍。当您决定要将这些内容配置在真正的应用环境时,我建议按照如下的步骤来做:
    确定监控主机数量。监控广域网的服务器是件比较麻烦的事,尤其是在服务器数量庞大、监控信息多、地理位置不同的环境中。如果一台监控服务器不够,可以配置多台来分担负载。
    确定要监控的信息。如果将每个信息画成一个图,那么看一遍,估计也头晕眼花了,更别说分析了,确定监控信息的数量主要是考虑到制作成模板,然后将这些数据源整合在一张图表中。
    确定snmpd.conf的内容。snmp的配置内容要经过反复测试后,再去修改所有服务器,最好几个系统管理员加上老总开个会,呵呵,这可不是开玩笑,如果有上百台服务器,全部改一遍是很麻烦的,别忘了还有snmp中运行脚本的内容。
    如果由一个系统管理员监控所有服务器,肯定是不切合实际的,毕竟一个人的能力有限。通过Cacti的安全配置可以将这些监控工作分配给每一个普通用户,至于如何设置,就由您自己在Cacti配置界面上找找吧。
    最后一点就是实施了,因为每个人的习惯不同,所以最好由一个人去修改,虽然累了些,但在后期的维护中将会避免很多麻烦
    附录:
    SNMP的相关命令使用方法:
    snmpdelta 一直监视SNMP变量中的变化
    linux:~ # snmpdelta -c public -v 1 -Cs -CT localhost IF-MIB:ifInUcastPkts.3 IF-MIB:ifOutcastPkts.3
    localhost ifInUcastPkts.3 ifOutUcastPkts.3
    [20:15:59 6/14] 184.00 184.00
    [20:16:00 6/14] 158.00 158.00
    [20:16:01 6/14] 184.00 184.00
    [20:16:02 6/14] 184.00 184.00
    [20:16:03 6/14] 158.00 158.00
    [20:16:04 6/14] 184.00 184.00
    [20:16:05 6/14] 184.00 184.00
    [20:16:06 6/14] 158.00 158.00
    snmpdf 通过SNMP监视远程主机的磁盘空间
    linux:~ # snmpdf -v 1 -c public localhost
    Description size (kB) Used Available Used%
    0 0 0 0%
    Real Memory 0 0 0 0%
    Swap Space 0 0 0 0%
    / 5734988 2462884 3272104 42%
    /dev/shm 138472 8 138464 0%
    /media/cdrecorder 0 0 0 0%
    /media/floppy 0 0 0 0%
    /proc/bus/usb 0 0 0 0%
    linux:~ #
    snmpget 从一个代理得到一个SNMP变量的值
    linux:~ # snmpget -v 1 -c public localhost 1.3.6.1.4.1.2021.2.1.5.1
    UCD-SNMP-MIB::prCount.1 = INTEGER: 6
    linux:~ #
    snmpgetnext 从序列中获得下一个变量
    linux:~ # snmpgetnext -v 1 -c public localhost 1.3.6.1.4.1.2021.2.1.5.1
    UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
    linux:~ #
    snmpset 设置代理上的一个SNMP变量
    linux:~ # snmpset -c private -v 1 test-hub system.sysContact.0 s
    dpz@noc.rutgers.edu
    ip.ipforwarding.0 = 2
    snmptable 得到一个SNMP变量表
    linux:~ # snmptable -c public -v 1 localhost 1.3.6.1.2.1.1.1
    Was that a table SNMPv2-MIB::system
    linux:~ #
    snmptranslate 搜索并说明MIB结构中的OID
    linux:~ # snmptranslate -On -IR sysDescr
    .1.3.6.1.2.1.1.1
    linux:~ #
    snmptrap 生成一次trap告警
    linux:~ # snmptrap -v 1 -c public manager enterprises.spider test-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1
    snmpwalk 从某个特定的OID开始遍历MIB
    linux:~ # snmpwalk -v 1 -c public localhost 1.3.6.1.4.1.2021.2
    UCD-SNMP-MIB::prIndex.1 = INTEGER: 1
    UCD-SNMP-MIB::prNames.1 = STRING: httpd2-prefork
    UCD-SNMP-MIB::prMin.1 = INTEGER: 0
    UCD-SNMP-MIB::prMax.1 = INTEGER: 0
    UCD-SNMP-MIB::prCount.1 = INTEGER: 6
    UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrMessage.1 = STRING:
    UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0
    UCD-SNMP-MIB::prErrFixCmd.1 = STRING:
    linux:~ #

    本文来自ChinaUnix博客

    展开全文
  • Linux下开始SSH免密码登录--以window为例 1.在window下生成SSH密钥(创建SSH key) 打开运行窗口-WIN+R 输入cmd 或者 直接搜索运行以下命令 ssh-keygen -t rsa 在文件夹 C:\Users\Administrator\.ssh(默认...
  • 一、安装前期准备 1. 在硬盘里空出5G左右的空闲硬盘空间用来安装SuSE,建议多一些。 2. 在windows里某个磁盘(空闲空间在3.3G以上可以是NTFS... 把D:/suse/boot/i386/loader目录下的linux和initrd复制到根目录(比如D:/
  • suse linux enterprise 10 中安装 oracle 10g (带图说明)   Oracle10G 最低系统要求: 内存:推荐 1G,,在虚拟机中为 768M Swap分区: 1G,设为内存的 2倍 /tmp磁盘空间: 400...
  • (1)同时按下Ctrl Alt F2 进入命令行界面。 (2)root登录进去。  (3)执行init 3  (启动级别:init 0,1,2,3,4,5,6  0:停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system ... ...
  • 一周学会Linux实战

    2012-09-01 09:15:15
    为什么学习Linux? 1、Linux的性能卓越。 Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到...Linux内核:RedHat、红旗Linux、fedora、SUSE、ubuntu。 2、为工作 从目前看,软件公司迫切需
  • 一、 安装Suse Linux Enterprise 9(Sp3) 5如上图,点"下一步",进入设备配置界面,接受系统默认设置,再点"下一步",完成系统安装。 20系统设置: 20系统语言设置:yast-系统-选择语言-简体中文-细节-取消使用UTF...
  • 用root用户登陆 通过修改Yast——》系统——》语言-》简体中文-》细节去掉 使用UTF-8编码 前面的选定然后重新启动系统reboot 
  • 文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的...
  • 一周学会Linux

    2013-11-05 11:25:56
    为什么学习Linux? 1、Linux的性能卓越。 Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界...Linux内核:RedHat、红旗Linux、fedora、SUSE、ubuntu。 2、为工作 从目前看,软件公司迫切需
  • 一:安装部分一 安装前期准备1 在硬盘里空出5G左右的空闲硬盘空间用来安装SuSE,建议多一些。2 在windows里某个磁盘(空闲空间...3 把D:/suse/boot/i386/loader目录下的linux和initrd复制到根目录(比如D:/)4 把Grldr
  • 使用xshell登陆时,出现以上情况,那么这到底值咋回事呢?经过查询以后发现是服务器端设置问题,解决办法如下:vi /etc/ssh/sshd_config接着保存退出,然后重启sshd服务service sshd restart然后重新登陆此时,已经...
  • Linux实用教程(第三版)

    2020-03-20 13:28:43
    第一章 Linux系统初步了解 本章内容 1.1 Linux系统简介 1.2 Linux系统的特点和组成 1.3 Linux版本介绍 1.4 Red Hat Linux系统概述 1.1 Linux系统简介 1.1.1 什么是Linux 1.1.2 Linux系统的产生 1.1.3 Linux...
  • 新手SuSE Linux 10.1上手(硬盘安装等)(转)[@more@]  *需要软件  Winrar 或者 UltraISO(推荐)  SuSE 10.1 5CD (现在DVD暂时没有出,如果是DVD方法相同,本...
1 2 3 4 5 ... 20
收藏数 708
精华内容 283
关键字:

linux无登录框 suse