运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • 操作系统

  • 域名解析

  • 公有云

  • CI&CD

  • 数据库

  • 负载均衡&反向代理

  • 存储系统

  • 容器&容器编排

  • 批量管理

  • 邮件系统

  • 监控系统

    • prometheus
    • prometheus自定义监控项
    • zabbix-4.0部署
    • zabbix监控jvm
    • zabbix自定义监控项
    • nagois+cacti+ntop组合监控
      • Cacti
      • Nagios
      • cacti和nagios的优缺点
      • Ntop
  • Web服务

  • 虚拟化

  • 防火墙

  • 压测

  • 文件同步

  • 私有云

  • 日志系统

  • 代码仓库&版本管理

  • 安全审计

  • 远程拨号

  • 大数据

  • 统一认证

  • 消息队列

  • Apollo

  • 运维杂记
  • 监控系统
lyndon
2022-06-12
目录

nagois+cacti+ntop组合监控

# 概述

# Cacti

cacti 其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。

网络设置

主机系统

  • (1)网络接口流量(进与出的带宽)
  • (2)监控CPU的负载、内存等等
  • (3)监控磁盘的空间、进程数等等

cacti常见的检测对象

  • (1)服务器资源:CPU、内存、磁盘、进程、连接数等
  • (2)服务器类型:Web、Mail、FTP、数据库、中间件
  • (3)网络接口:流量、转发速度、丢包率
  • (4)网络设备性能、配置文件、路由数
  • (5)安全设备性能、连接数、攻击数
  • (6)设备运行状态:风扇、电源、温度
  • (7)机房运行环境:电流、电压、温湿度

rrdtool的优点:

  • 1、使用rrd的存储格式,数据能重复使用,比如可以将一个rrd的文件的数据与另一个rrd文件文件中的数据相加;
  • 2、可以定义任意时间段画图,即你可以画出一张半年来的数据的图,也可以画出一张半小时以来的图;
  • 3、能画出任意个DS;
  • 4、CDEF能让你任意摆弄数据。

rrdtool的缺点:

  • 1、rrdtool的作用只是存储数据和画图,它没有mrtg中集成的数据采集功能;
  • 2、在命令行的使用非常复杂,参数极多;
  • 3、无管理功能。

# Nagios

Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。

Nagios更进一步的特征包括:

  • 1)网络监控服务(SMTP、POP3、HTTP、NNTP、PING等)
  • 2)监控主机资源(处理器负荷、磁盘利用等)
  • 3)简单地插件设计使得用户可以方便地扩张自己服务的检测方法
  • 4)并行服务检测机制
  • 5)具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可能状态
  • 6)当服务或主机问题产生与解决时将告警发送给联系人(通过Email、短信、用户定义方式)可以通过飞信,等方式实现,即可传递给管理员,可高效的保证服务器的维护
  • 7)具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位
  • 8)自动的日志回滚
  • 9)可以支持并实现对主机的冗余监控
  • 10)可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等。

Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、NSClient++ 和 NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。

  • (1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控
  • (2)NSCA:用来让被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)
  • (3)NSClient++:用来监控Windows主机时安装在Windows主机上的组件
  • (4)NDOUtils:用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理

这四个ADDON中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端。

# cacti和nagios的优缺点

cacti:在监控方面有良好的绘图,cacti在流量和图形塑造上要强于nagios,但是在故障分析上有些略逊,而且报警机制也有待完善,这时nagios就派上用场了。

nagios:适合监视大量服务器上面的大批服务是否正常,重点并不在图形化的监控,其集成的很多功能例如报警,都是cacti没有或很弱的。但在绘图以及图形塑造方面精细度比cacti要弱。

# Ntop

Ntop提供以下一些功能:

  • 1)自动从网络中识别有用的信息;
  • 2)将截获的数据包转换成易于识别的格式;
  • 3)对网络环境中的通信失败进行分析
  • 4)探测网络环境下的通信瓶颈;
  • 5)记录网络通信时间和过程;
  • 6)自动识别客户端正在使用的操作系统;
  • 7)可以在命令行和web两种方式下运行。

ntop在监控方面,它的角度是从分析网络流量来确定网络上存在的各种问题,说白了就类似个抓包监控工具,只不过通过归纳绘图实现更多的功能。

# 部署准备

关闭防火墙和selinux

service iptables stop
setenforce 0
1
2

# 搭建LAMP环境

yum方式安装lamp

yum -y install httpd mysql mysql-server php php-mysql

vim /etc/httpd/conf/httpd.conf

276 ServerName www.example.com:80

402 DirectoryIndex index.php index.html index.html.var

httpd -t

/etc/init.d/httpd start

/etc/init.d/mysqld start

mysqladmin -uroot password '123123'

vim /var/www/html/mysql.php

<?php

phpinfo ();

?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

客户端访问http://192.168.1.11/test.php

img

LAMP环境准备成功

# 安装cacti

安装net-snmp-utils

用于提供snmpget,snmpwalk等snmp数据采集命令

yum -y install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel
/etc/init.d/snmpd start
chkconfig snmpd on
1
2
3

安装rrdtool

安装依赖包

yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN
1

上传rrdtool-1.4.8.tar.gz

tar xf rrdtool-1.4.8.tar.gz -C /usr/src/
cd /usr/src/rrdtool-1.4.8
./configure --prefix=/usr/local/ && make && make install
1
2
3

部署cacti

将上传的cacti源码包释放至web服务器的网页目录

tar xf cacti-0.8.8b.tar.gz
mv cacti-0.8.8b /var/www/html/cacti
1
2

添加一个用来读写检测数据的用户账号,并调整目录的属主,以便正常读取及写入数据

useradd -M -s /sbin/nologin cacti
chown -R cacti:cacti /var/www/html/cacti/
1
2

创建用于cacti监测平台的数据库,并授权一个数据库用户,使用cacti目录下的cacti.sql脚本,导入预设的各种数据表

mysql -uroot -p123123

mysql> create database cactidb default character set utf8;

mysql> grant all on cactidb.\* to 'cacti'@localhost identified by 'cacti';

mysql> flush privileges;

mysql> quit

cd /var/www/html/cacti/

mysql -ucacti -pcacti cactidb < cacti.sql
1
2
3
4
5
6
7
8
9
10
11
12
13

调整cacti配置文件:修改include/config.php 设置正确的数据库连接参数

cd include/
vim config.php

26 $database_type = "mysql";

27 $database_default = "cactidb";

28 $database_hostname = "localhost";

29 $database_username = "cacti";

30 $database_password = "cacti";

31 $database_port = "3306";

32 $url_path = "/";    #指定cacti目录相对于网站根目录的位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

修改 httpd.conf 文件,使其支持自动查找索引页 index.php 并将utf-8 作为默认的中文页面字符集,开放web用户对cacti目录的访问权限。

vim /etc/httpd/conf/httpd.conf

136 Listen 80

292 DocumentRoot "/var/www/html/cacti"

293 <Directory "/var/www/html/cacti">

294     Options none

295     AllowOverride none 

296     Order allow,deny 

297     allow from all 

298 </Directory>

service httpd restart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

使用客户端访问http://192.168.1.11,开始初始化cacti

img

img

检查命令安装路径,如未找到需要手工指定

img

首次登录用户名密码均为 admin

img

首次登录强制用户修改密码:admin123

img

进入到cacti的管理页面

img

# 安装ntop

查看系统中是否存在安装ntop支持的软件

rpm -q libcap libpcap-devel libpng gdbm gdbm-devel gd libtool

libcap-2.16-5.5.el6.x86_64
package libpcap-devel is not installed
libpng-1.2.49-2.el6_7.x86_64
gdbm-1.8.0-39.el6.x86_64
gdbm-devel-1.8.0-39.el6.x86_64
gd-2.0.35-11.el6.x86_64
package libtool is not installed
1
2
3
4
5
6
7
8
9

libpcap-devel、libtool未安装,其中libtool可以yum方式安装

yum -y install libtool
1

上传libpcap-devel-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm

rpm -ivh libpcap-devel-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm
1

安装GeoIP

所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息,关键在于有个精准的数据库

tar xf GeoIP.tar.gz -C /usr/src/
cd /usr/src/GeoIP-1.4.8/
./configure && make && make install
1
2
3

安装ntop

tar xf ntop-4.1.0.tar.gz -C /usr/src/
cd /usr/src/ntop-4.1.0/
./autogen.sh –-prefix=/usr/local
make
make install
1
2
3
4
5

出现下面报错

img

原因:在make install时需要联网自动下载etter.finger.os

解决方法有两种:

方法一:手动下载etter.finger.os,模拟互联网环境

cd /var/www/html/
mkdir –p ettercap/ettercap_ng/share
cd ettercap/ettercap_ng/share/
1
2
3

在此路径下上传etter.finger.os文件,修改hosts文件以模拟互联网服务器

vim /etc/hosts
192.168.1.11  ettercap.cvs.sourceforge.net
vim /etc/httpd/conf/httpd.conf
修改292行内容
292 DocumentRoot "/var/www/html"
1
2
3
4
5

重启apache服务

/etc/init.d/httpd restart
1

方法二:连接到互联网

配置ntop

添加ntop用户

useradd ntop
passwd ntop
chown -R ntop:ntop /usr/local/var/ntop/
1
2
3

ntop默认没有配置文件,需要从源码包中复制

cp /usr/src/ntop-4.1.0/packages/RedHat/ntop.conf.sample /etc/ntop.conf
vim /etc/ntop.conf
注意一下参数:
--userntop //运行ntop的用户
--db-file-path /usr/local/ntop/share/ntop  //数据存放目录
--interface-eth0 //监控的网卡
--http-server 3000 //运行的端口
1
2
3
4
5
6
7

给管理员设置密码

ntop –A
1

修改密码使用ntop **–A --set-admin-password=“新密码”

启动ntop

cd /usr/local/var/ntop/
chmod 766 prefsCache.db
ntop -d -p /usr/local/var/ntop/
netstat -tupln |grep 3000
tcp    0   0 0.0.0.0:3000        0.0.0.0:\*          LISTEN   67908/ntop    
1
2
3
4
5

客户端访问http://192.168.1.11:3000,出现以下页面

img

# Cacti与ntop结合

安装结合插件

上传ntop-v0.2-1.tgz

tar xf ntop-v0.2-1.tgz -C /var/www/html/cacti/plugins/

vim /var/www/html/cacti/include/config.php
添加一行内容
34 $plugins[]='ntop';

vim /etc/httpd/conf/httpd.conf
修改292行的内容
292 DocumentRoot "/var/www/html/cacti"
1
2
3
4
5
6
7
8
9

重启apache服务

/etc/init.d/httpd restart
1

web页面整合

使用客户端访问http://192.168.1.11

img

控制面板—》插件管理(Plugin Management)--》ntop安装和启用

img

控制面板—》用户管理(User Management)--》admin—选上View Ntop—》保存

img

img

控制面板—》设置(Settings)--》Misc—添加ntop的链接地址—》保存

img

点击ntop图标,即可访问ntop

img

Cacti和ntop结合成功

# 安装nagios

为nagios准备用户

useradd nagios
groupadd nagcmd
usermod -G nagcmd nagios
usermod -G nagcmd apache
1
2
3
4

编译安装nagios,上传nagios-3.3.1.tar.gz

tar xf nagios-3.3.1.tar.gz

cd nagios

./configure --with-command-group=nagcmd --with-gd-lib=/usr/lib

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf

cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

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

/etc/init.d/nagios start

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

service httpd restart

chkconfig nagios on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

安装nagios插件,上传nagios-plugins-1.4.15.tar.gz

tar xf nagios-plugins-1.4.15.tar.gz 
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios && make && make install
1
2
3

安装NDOUtils,NDOUtils用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理,上传ndoutils-1.4b9.tar.gz

tar xf ndoutils-1.4b9.tar.gz 
cd ndoutils-1.4b9
./configure --enable-mysql --with-mysql-lib=/usr/lib64/mysql --with-mysql-inc=/usr/include/mysql --disable-pgsql
make
cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin
1
2
3
4
5

以上复制的文件中前两项是版本相关的,即如果您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.o和ndo2db-2x的两个文件。后两项是通用文件,无论哪个版本都需要复制

为NDOUtils创建数据库

mysql -uroot -p
mysql> create database ndodb;
mysql> GRANT ALL PRIVILEGES ON ndodb.\* TO ‘ndouser’@% IDENTIFIED BY '123456';
mysql> flush privileges;
1
2
3
4

下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:

 cd db
./installdb -u ndouser -p 123456 -h localhost -d ndodb
1
2

说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。

cd ..

cp -v config/{ndo2db.cfg-sample,ndomod.cfg-sample} /usr/local/nagios/etc

mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg

mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg

chmod 644 /usr/local/nagios/etc/ndo\*

chown nagios:nagios /usr/local/nagios/etc/\*

chown nagios:nagios /usr/local/nagios/bin/\*

vim /usr/local/nagios/etc/nagios.cfg

在247行添加

247 broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

219 event_broker_options=-1        //为Nagios开启event broker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

编辑ndo2db守护进程和ndomod的配置文件

vim /usr/local/nagios/etc/ndo2db.cfg

socket_type=tcp

db_servertype=mysql

db_host=localhost

db_port=3306

db_name=ndodb

db_prefix=nagios_

db_user=ndouser

db_pass=123456
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim /usr/local/nagios/etc/ndomod.cfg

output_type=tcpsocket

output=127.0.0.1
1
2
3
4
5

启动ndo2db守护进程

/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
1

说明:

建议此时查看系统日志(/var/log/messages)中是否有错误出现。

如果此时Nagios进程已启动,则需要停止并重新启动nagios:

# killall -SIGHUP nagios
# rm -f /usr/local/nagios/var/nagios.lock
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
1
2
3
  • 此处停止Nagios必须通过向Nagios发送SIGHUP信号的方式进行;
  • 建议此时查看nagios日志文件中是否表明ndomod的模块加载是否正常,以及其是否能正常连接到data sink;查看日志,可以使用如下命令实现:
tail -30 /usr/local/nagios/var/nagios.log
1

排错信息:

  • 如果ndomod模块没能正常加载的话,建议重新检查nagios的配置文件中是否添加了所需的broker module条目;
  • 同时,如果ndomod没有正常连接到data sin,建议查看ndo2db.cfg文件中关于mysql连接项目的指定是否正确;
  • 确认一下在编译NDOUtils时是否指定了关于mysql库文件位置的选项。

# cacti与nagios的整合

安装NPC插件

作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来。

上传npc-2.0.4.tar.gz

tar xf npc-2.0.4.tar.gz
mv npc /var/www/html/cacti/plugins

vim /var/www/html/cacti/include/config.php
添加35行内容
35 $plugins[] = 'npc';
1
2
3
4
5
6

npc需要json来支持某些功能,所以需要安装json

上传json-1.2.1.tgz

tar xf json-1.2.1.tgz
cd json-1.2.1
/usr/bin/phpize		##如果没有phpize命令,需要安装php-devel。上传php-devel-5.3.3-47.el6.x86_64.rpm软件包,rpm安装rpm -ivh php-devel-5.3.3-47.el6.x86_64.rpm

./configure
make
make install
1
2
3
4
5
6
7

web页面整合

客户端访问http://192.168.1.11

控制面板—》插件管理(Plugin Management)--》Npc安装和启用

img

控制面板—》用户管理(User Management)--》admin—选上Plugin Management、NPC、NPC Global Commands—》保存

img

img

控制面板—》设置(Settings)--》NPC—添加相关内容—》保存

img

点击npc按钮

img

Cacti+nagois整合成功

上次更新: 2022/06/12, 15:48:09
zabbix自定义监控项
HTTP介绍

← zabbix自定义监控项 HTTP介绍→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式