几个常用监控工具的使用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

Cacti:监控服务器多个性能指标(磁盘使用率,CPU使用率等等),并将数据保存下来利用rrdtool实现绘图功能

Nagios:监控主机状态,有强大的报警功能

Ntop: 监控网络流量

Cacti:

RRDtools

使用RRDtool来存储和处理通过SNMP收集到的数据开始。这些数据很可能是某个网络或计算机接收或发送的字节数(比特数)。它也可以用来显示潮水的波浪、阳光射线、电力消耗、展会的参观人员、机场附近的噪音等级、你喜欢的度假区的温度、电冰箱的温度、以及任何你可以想象的东西。

你最需要一个度量数据,以及能够提供这些数据给RRDtool的感应器就可以了。RRDtool会让你创建数据库、存储数据、提取数据、创建用于在Web浏览器中显示的PNG格式的图像。这些PNG图像以来于你收集的数据,它可以是网络平均使用率、峰值。

RRD

Round Robin Database环状数据

常见应用:

服务器资源:CPU、内存、磁盘、进程、连接数等

服务器类型:WEB、Mail、FTP、数据库、中间件

网络接口:流量、转发速度、丢包率

设备运行状态:风扇、电源、温度

机房运行环境:电流、电压、湿温度

优点:开源、图形界面、跨平台监控、可扩展性

具体过程:

[root@station39~]yum -y install httpd php php-mysql php-snmp mysql mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby ruby-devel

wps_clip_image-21656

[root@station39 cacti]# yum -y localinstall --nogpgcheck rrdtool-*.rpm

[root@station39 cacti]# cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

[root@station39 cacti]# vim /etc/snmp/snmpd.conf

com2sec notConfigUser  127.0.0.1       //** public  line 41 update

access  notConfigGroup ""  any noauth  exact all systemview none none  //** line 62 update

view all    included  .1                               80  //** line 85

[root@station39 cacti]# service snmpd start

[root@station39 cacti]# service mysqld start

[root@station39 cacti]# service httpd start

[root@station39 cacti]# mysql

mysql> create database cacti;

mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cati';

mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cati';

mysql> grant all privileges on cacti.* to cacti@192.168.1.0 identified by 'cati';

mysql> flush privileges;

mysql> quit

[root@station39 cacti]# mkdir /var/www/html/cacti

[root@station39 cacti]# tar zxvf cacti-0.8.7g.tar.gz -C /var/www/html/

[root@station39 cacti]# cd /var/www/html/

[root@station39 html]# mv cacti-0.8.7g  cacti

[root@station39 html]# cd cacti

[root@station39 cacti]# mysql -ucacti  -pcati cacti < cacti.sql

[root@station39 cacti]# vim include/config.php

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "cati";

$database_port = "3306";

[root@station39 cacti]# useradd cacti

[root@station39 cacti]# passwd cacti

[root@station39 cacti]# chown -R cacti rra/ log/

[root@station39 cacti]# crontab -e

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

使用浏览器访问192.168.1.200/cacti就可以看到如下界面:

wps_clip_image-3543

用户名和密码都为admin,登陆之后要求改密码。

wps_clip_image-1667

wps_clip_image-18937

下面开始插件的安装:

要安装别的插件前,先要安装cacti的一个patch--Plugin Architecture,才能支持插件

[root@station39 cacti]# tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

[root@station39 cacti]# cp -R cacti-plugin-arch/* /var/www/html/cacti/

[root@station39 cacti]# cd /var/www/html/cacti/

[root@station39 cacti]# mysql -ucacti -pcati cacti < pa.sql

[root@station39 cacti]# patch -p1 -N &lt; cacti-plugin-0.8.7g-PA-v2.8.diff

[root@station39 cacti]# vim include/config.php

$url_path = "/cacti/";   //line 42

保存退出,在浏览器中打开192.168.1.200/cacti 进行配置:

Console----->User Management------> admin ------> Realm Permissions-----> plugin Management 启用插件管理。

常用插件安装:

Monitor, Settings, thold

wps_clip_image-26389

[root@station39 cacti]# tar zxvf settings-latest.tgz

[root@station39 cacti]# tar zxvf monitor-latest.tgz

[root@station39 cacti]# tar zxvf thold-latest.tgz

[root@station39 cacti]# mv settings-0.6/  /var/www/html/cacti/plugins/settings

[root@station39 cacti]# mv monitor-0.9/  /var/www/html/cacti/plugins/monitor

[root@station39 cacti]# mv thold-0.41/  /var/www/html/cacti/plugins/thold

OK!Console----->plugin Management 进行安装:

wps_clip_image-18808

PS:在安装thold时,可能会出现 You are missing a dependency for thold, please install the 'Settings' plugin. 这样的警告。只需要先安装settings插件就OK。

启用报警功能:

Console------> Utilitie------>Altering/Thold

wps_clip_image-25759

Mail/DNS

wps_clip_image-15847

wps_clip_image-7365

wps_clip_image-16186

MSN 实现报警:

[root@station39 cacti]# cp sendMsg.zip /var/www/html

[root@station39 cacti]# cd /var/www/html

[root@station39 html]# unzip sendMsg.zip

wps_clip_image-23839

使用浏览器进行访问:

wps_clip_image-27726

使用脚本实现自动化报警:

修改/var/www/html/cacit/plugins/thold目录下的thold_functions.php文件

[root@station39 thold]# vim thold_functions.php

exec("echo $subject >>/var/www/html/cacti/plugins/thold/alert.log");

exec("sh /var/www/html/cacti/plugins/thold/sendmessage.sh");    //** line 560-561

保存退出!

脚本

#!/bin/sh

echo `echo -n "date:"&&date +%Y-%m-%d-%H:%M` >> /var/www/html/sendMsg/msn.txt.1

cat /var/www/html/cacti/plugins/thold/alert.log >>/var/www/html/sendMsg/msn.txt.1

now=`date +%Y-%m-%d-%H:%M`

SA=(test)

msnaddr=(lyp_zzu@hotmail.com)

sendMsg()

{

num=0

while [ $num -lt 1 ];

do

wget —post-data "sender=lyp_zzu@hotmail.com&password=123456&recipient=${1}&message=${2}" http://127.0.0.1/sendMsg/index.php -O /var/www/html/sendMsg/index.php.1 >/dev/null 2>&1

if [ -f /var/www/html/sendMsg/index.php.1 ]; then

if cat /var/www/html/sendMsg/index.php.1 |grep -i successfully >/dev/null 2>&1;then

num=1

elif cat /var/www/html/sendMsg/index.php.1 |grep -i "The user appears to be offline" >/dev/null 2>&1;then

num=1

echo "The user is offline."

exit 0

elif cat /var/www/html/sendMsg/index.php.1 |grep -i "Something went wrong trying to connect to the server" >/dev/null 2>&1;then

num=1

echo "MSN server is online."

exit 0

else

num=0

fi

rm -f /var/www/html/sendMsg/index.php.1

else

num=0

fi

done

}

mv /var/www/html/sendMsg/msn.txt /var/www/html/sendMsg/bak/msn$now.txt -f 1>/dev/null 2>&1

mv /var/www/html/sendMsg/msn.txt.1 /var/www/html/sendMsg/msn.txt -f 1>/dev/null 2>&1

rm /var/www/html/cacti/plugins/thold/alert.log -f 1>/dev/null 2>&1

for i in 0

do

if cat /var/www/html/sendMsg/msn.txt ; then

messages=`cat /var/www/html/sendMsg/msn.txt `

sendMsg "${msnaddr[$i]}" "$messages"

else

continue

fi

done

使用飞信报警:

[root@station39 html]# cp -r /root/cacti/linuxso_20101113 sendsms/linuxso

[root@station39 html]# cp -r /root/cacti/fetion sendsms/linuxso/fetion

[root@station39 html]# chmod 777 -R sendsms/linuxso

修改/var/www/html/cacit/plugins/thold目录下的thold_functions.php文件

[root@station39 thold]# vim thold_functions.php

exec("echo $subject >>/var/www/html/cacti/plugins/thold/alert.log");

exec("/var/www/html/cacti/plugins/thold/sendsms.sh");     //** line 562

脚本:

#!/bin/sh

#send sms by fetion

#Write by pingsun2010@hotmail.com

if [ ! -e "/var/www/html/cacti/plugins/thold/alert.log" ];then

echo "Usage:alert.log does not exist"

exit

fi

if [ -n "`cat /var/www/html/cacti/plugins/thold/alert.log`" ]; then

admin="158XXXX"

echo "sms $admin "`cat /var/www/html/cacti/plugins/thold/alert.log` >>/var/www/html/cacti/plugins/thold/sms.txt

echo "exit" >> /var/www/html/cacti/plugins/thold/sms.txt

else

echo "Usage:no alert"

exit

fi

if [ -n "`cat /var/www/html/cacti/plugins/thold/sms.txt`" ] ; then

LD_LIBRARY_PATH=/var/www/html/sendsms/linuxso /var/www/html/sendsms/linuxso/fetion --mobile=158XXXXXX --pwd=123xxx --to=$admin --file-utf8=/var/www/html/cacti/plugins/thold/sms.txt

rm -f /var/www/html/cacti/plugins/thold/sms.txt 1>/dev/null 2>&1

rm -f /var/www/html/cacti/plugins/thold/alert.log 1>/dev/null 2>&1

else

echo "Usgae:no message to send"

exit

fi

Ntop

ntop是一款网络监控工具,类似于网络嗅探器,可以监视网络流量,甚至可以列出每个节点计算机的网络带宽利用率。

它可以通过分析网络流量来确定网络上存在的各种问题;也可以用来判断是否有黑客正在攻击网络系统;还可以很方便地显示出特定的网络协议、占用大量带宽的主机、各次通信的目标主机、数据包的发送时间、传递数据包的延时等详细信息。通过了解这些信息,网管可以对故障做出及时的响应,对网络进行相应的优化调 整,以保证网络运行的效率和安全。

主要功能:

自动从网络中识别有用的信息;

◆ 将截获的数据包转换成易于识别的格式;

◆ 对网络环境中通信失败的情况进行分析;

◆ 探测网络环境中的通信瓶颈;

◆ 记录网络通信的时间和过程;

◆ 自动识别客户端正在使用的操作系统

所需软件包:ntop-4.0.1.tar.gz

辅助软件

库文件支持:libpcap、libcap-devel、libpng、gdbm、gd

GeoIP-1.4.7-0.1.20090931cvs.el5.i386.rpm

GeoIP-devel-1.4.7-0.1.20090931cvs.el5.i386.rpm

RRDtool: rrdtool-1.4.4.tar.gz

过程:安装所依赖的辅助文件:

[root@station39 ~]# yum install libpcap libpcap-devel libpng gdbm gdbm-devel glib libxml2-devel pango pango-devel gd -y

wps_clip_image-23068

[root@station39 ntop]# yum localinstall --nogpgcheck GeoIP-1.4.7-0.1.20090931cvs.el5.i386.rpm GeoIP-devel-1.4.7-0.1.20090931cvs.el5.i386.rpm -y

源代码编译安装rrdtool:

[root@station39 ~]# cd rrdtool-1.4.4

[root@station39 rrdtool-1.4.4]# ./configure --prefix=/usr/local

[root@station39 rrdtool-1.4.4]# make && make install

安装Ntop

[root@station39 ~]# tar xvf ntop-4.0.1.tar.gz

[root@station39 ~]# cd ntop-4.0.1

[root@station39 ntop-4.0.1]# ./autogen.sh --with-tcpwrap

[root@station39 ntop-4.0.1]# make && make install

[root@station39 ntop-4.0.1]# chown -R nobody /usr/local/var/ntop

使用TCPWrapper禁止其他主机访问:

[root@station39 ntop-4.0.1]# vim /etc/hosts.allow

ntop: 192.168.1.13

[root@station39 ntop-4.0.1]# vim /etc/hosts.deny

ntop:ALL

[root@station39 ntop-4.0.1]# ntop -d -i eth0   //**以后台守护进程方式(-d)运行ntop服务, 

                                          并监测eth0网卡所连接的流量

使用浏览器访问http://192.168.1.15:3000 :

wps_clip_image-31956

wps_clip_image-21660

Ntop相关参数说明:

-d : 放入后台执行。 常用 
    -L : 输出讯息写入系统记录文件。  
    -r : 设定页面的自动更新频率,预设每 3 秒更新一次. 。 
    -w : 使用其它端口 (预设是 3000) 。 
    -W : 同 -w , 不过这个是使用 SSL 联机 。 
    -u : 指定使用其它身份执行 。 
    -i : 指定 ntop 监听的网卡,"," 隔开多个网卡。 
    -M : 使用 -i 指定多张网卡时, 预设是合并统计.

Ntop网页说明:

About: 在线手册。 
o Summary : 目前网络的整体概况

Traffic : 流量

Hosts : 所有主机使用概况

Network Load : 各时段的网络负载

Netflows : 网络流量图。

o IP Summary : 各主机的流量状况与排名明细

Traffic : 所有主机的流量明细

Multicast : 多点传送情况。

Domain : 域名

Distribution : 通讯量状况

Local >>Local 本地流量。

Local>>Remote : 所有主机对外的明细

Remote>>Local :

Remote>>Remote :

o All Protocols : 查看各主机占用的频宽与各时段网络使用者等的明细

Traffic : 流量。

Throughput : 频宽使用明细表 (点选主机,可以看到该主机详细的信息及使用状况)

Activity : 各时段所有主机使用流量(状况). (点选主机,可以看到该主机详细的信息及使用状况)

o Local IP : 局域网络内各主机使用状况.

Routers : 路由器状况。3.2版的ntop中已经好像没有这一项了

Ports Used : 端口使用情况。

Active TCP Sessions : 目前正在进行的联机 。

Host Fingerprint : 主机快照情况。

Host Characterization : 主机描述。

Local Matrix : 局域网络内各主机间的流量明细。

o Media: 高级货,一般人用不到的东西

Fibre Channel  光纤通道,企业级存储时使用的东西

o Utils 日志一类的东西 
oPlugins 一些插件

Nagios

wps_clip_image-14291

[root@station39 ~]# rpm -q httpd gcc glibc glibc-common gd gd-devel

[root@station39 ~]# groupadd nagcmd

[root@station39 ~]# useradd -m nagios

[root@station39 ~]# usermod -a -G nagcmd nagios

[root@station39 ~]# usermod -a -G nagcmd apache

wps_clip_image-19531

[root@station39 nagios]# tar zxvf nagios-3.2.1.tar.gz

[root@station39 nagios-3.2.1]# ./configure --with-command-group=nagcmd

[root@station39 nagios-3.2.1]# make all

[root@station39 nagios-3.2.1]# make install

[root@station39 nagios-3.2.1]# make install-init

[root@station39 nagios-3.2.1]# make install-config

[root@station39 nagios-3.2.1]# make install-commandmode

[root@station39 nagios-3.2.1]# vim /usr/local/nagios/etc/objects/contacts.cfg

email           nagios@localhost   //**line 35 x修改接收警告信息的邮件地址

[root@station39 nagios-3.2.1]# make install-webconf   //**在httpd的配置文件目录(conf.d)中

创建Nagios的Web程序配置文件

[root@station39 nagios-3.2.1]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

//** 创建登录nagios web程序的用户

[root@station39 nagios-3.2.1]# service httpd restart

[root@station39 nagios]# tar zxvf nagios-plugins-1.4.15.tar.gz

[root@station39 nagios]# cd nagios-plugins-1.4.15

[root@station39 nagios-plugins-1.4.15]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

[root@station39 nagios-plugins-1.4.15]# make && make install

[root@station39 nagios-plugins-1.4.15]# make && make install

[root@station39 nagios-plugins-1.4.15]# chkconfig --add nagios

[root@station39 nagios-plugins-1.4.15]# chkconfig nagios on

检查配置文件语法是否正确:

[root@station39 nagios-plugins-1.4.15]# /usr/local/nagios/bin/nagios

-v /usr/local/nagios/etc/nagios.cfg

[root@station39 nagios-plugins-1.4.15]# service nagios start

使用浏览器访问192.168.1.15/nagios :

wps_clip_image-10233

安装配置Nagios基于web的管理接口fruity(第三方工具)

#tar zxf fruity-1.0-rc2.tar.gz

# mv fruity-1.0-rc2  /var/www/html/fruity

# cd /var/www/html/fruity

mysql> create database fruity;

mysql> use fruity;

mysql> source sqldata/fruity-mysql.sql 
mysql>GRANT SELECT,INSERT,DROP,EMPTY ON fruity.* TO fruity@localhost IDENTIFIED BY '123456';

# vi includes/config.inc

$sitedb_config['host'] = 'localhost';

$sitedb_config['username'] = 'fruity';

$sitedb_config['password'] = '123456';                         

$sitedb_config['database'] = 'fruity';                         

$sitedb_config['dbserv'] = 'mysql';  
使用浏览器访问192.168.1.15/fruity 就可以对nagios 进行管理。

NDOUtils的安装与设定

NDOUTILS ADDON主要用来将Nagios的配置信息和event产生的数据存入数据库以方便实现数据的快速检索和处理,并且为其它通过web接口程序来管理这些数据提供了保障。

wps_clip_image-3935

[root@station39 nagios]# tar zxvf ndoutils-1.4b9.tar.gz

[root@station39 nagios]# cd ndoutils-1.4b9

[root@station39 ndoutils-1.4b9]# ./configure --enable-mysql --with-mysql-lib=/usr/lib --with-mysql-inc=/usr/include  --disable-pgsql

[root@station39 ndoutils-1.4b9]# make

[root@station39 ndoutils-1.4b9]# cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo}  /usr/local/nagios/bin

mysql> create database ndodb;

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON ndodb.* TO ndouser@localhost IDENTIFIED BY '123456';

mysql> flush privileges;

[root@station39 ndoutils-1.4b9]# cd db

[root@station39 db]# ./installdb -u ndouser -p 123456 -h localhost -d ndodb

[root@station39 ndoutils-1.4b9]# cd config

[root@station39 config]# cp ndo2db.cfg-sample ndo2db.cfg

[root@station39 config]# cp ndomod.cfg-sample ndomod.cfg

[root@station39 ndoutils-1.4b9]#  cp -v config/{ndo2db.cfg,ndomod.cfg} /usr/local/nagios/etc

[root@station39 ndoutils-1.4b9]# vim /usr/local/nagios/etc/nagios.cfg

broker_module=/usr/local/nagios /bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg 
编辑ndo2db守护进程和ndomod的配置文件

[root@station39 ndoutils-1.4b9]# vim /usr/local/nagios/etc/ndo2db.cfg

socket_type=tcp     //** line 33

db_servertype=mysql  //** line 78

db_host=localhost     //** line 86

db_port=3306        //** line 95

db_prefix=nagios_    //** line 111

db_user=ndouser    //** line 121

db_pass=123456     //** line 122

[root@station39 ndoutils-1.4b9]# vim /usr/local/nagios/etc/ndomod.cfg

output_type=tcpsocket   //** line 26

output=127.0.0.1        //** line 39

启动ndo2db守护进程

[root@station39 ndoutils-1.4b9]# /usr/local/nagios/bin/ndo2db-3x

                              -c /usr/local/nagios/etc/ndo2db.cfg

停止并重新启动:

# killall -SIGHUP nagios

# rm -f /usr/local/nagios/var/nagios.lock

# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg










本文转自 490999122 51CTO博客,原文链接:http://blog.51cto.com/lyp0909/578843,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
Prometheus 监控 Cloud Native
服务器监控工具:选择与应用
服务器监控工具:选择与应用
92 0
|
1天前
|
Prometheus 监控 Kubernetes
监控工具
监控工具
18 12
|
2天前
|
存储 运维 Prometheus
都有什么报警监控工具
都有什么报警监控工具
8 1
|
监控 Java
|
数据采集 消息中间件 监控
系统监控+性能监控|学习笔记
快速学习系统监控+性能监控
系统监控+性能监控|学习笔记
|
存储 运维 Prometheus
6个好用的开源监控工具
  监控系统是整个 IT 架构中的重中之重,小到故障排查、问题定位,大到业务预测、运营管理,都离不开监控系统,可以说一个稳定、健康的 IT 架构中必然会有一个可信赖的监控系统。本文介绍了一些好用的开源监控工具,以供开发人员参考。   1.Prometheus   这是云原生应用程序最受认可的时间序列监控解决方案,由 CNCF 托管,使用 Go 语言开发,是 Google BorgMon 监控系统的类似实现。该方案使用的是 Pull 模型,Prometheus Server 通过 HTTP 的 pull 方式到各个目标拉取监控数据。
1230 0
|
监控 Cloud Native Prometheus
|
监控 Linux Python