Nginx+SmokePing 实践

Nginx+SmokePing安装配置


SmokePing是一款完全免费的可以用来监控IDC网络质量的工具,并且它有一个基于RRDTool绘图的前端展示界面,用户可以直观的通过浏览器查看各类监控信息。

SmokePing

安装epel源:

yum -y install epel-release

安装绘图工具:

yum -y install rrdtool perl-rrdtool

安装smokeping所需扩展:

yum -y install perl-core openssl-devel fping curl gcc-c++

下载SmokePing源码:

wget https://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz

编译安装:

tar xf smokeping-2.6.11.tar.gz
cd smokeping-2.6.11
./configure --prefix=/usr/local/smokeping 
会报错,然后根据提示运行SmokePing给我们准备的脚本,来自动帮我们安装依赖:
./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
重新编译:
./configure --prefix=/usr/local/smokeping
make install    #直接make install即可

配置smokeping:

cd /usr/local/smokeping/htdocs/     #进入到SmokePing的WEB目录
mkdir {cache,data,var}              #新建三个目录
mv smokeping.fcgi.dist smokeping.fcgi

cd /usr/local/smokeping/etc/        #进入到smokeping的etc目录内
chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist   #修改权限
cp config.dist config               #复制一份配置文件

编辑config文件,修改imgcache、datadir、piddir的路径
imgcache = /usr/local/smokeping/htdocs/cache
datadir  = /usr/local/smokeping/htdocs/data
piddir  = /usr/local/smokeping/htdocs/var

修改一个你准备监控的服务器或是VPSIP,
++ James
menu = James
title =James
alerts = someloss
slaves = boomer slave2
#host = james.address
host = 192.168.20.200

debug模式测试:

cd /usr/local/smokeping/bin/
./smokeping --config=/usr/local/smokeping/etc/config --debug

正式运行smokeping并开启日志记录:

/usr/local/smokeping/bin/smokeping --config=/usr/local/smokeping/etc/config --logfile=smoke.log

Nginx

通过Nginx来反向代理SmokePing的FCGI程序,以实现WEB访问:

yum -y install nginx

由于Nginx本身是不支持直接访问FCGI的,所以这里我们要安装一个spawn-fcgi:

yum -y install spawn-fcgi

修改SmokePing的WEB目录所有者改为Nginx:

chown -R nginx.nginx /usr/local/smokeping/htdocs/

用spawn-fcgi以nginx用户来启动SmokePing的FCGI程序:

spawn-fcgi -a 127.0.0.1 -p 9007 -P /var/run/smokeping-fastcgi.pid -u nginx -f /usr/local/smokeping/htdocs/smokeping.fcgi

在Nginx的conf.d目录内新建一个SmokePing的站点conf:

# cat /etc/nginx/conf.d/smokeping.conf
server {
        listen       81;
        server_name  localhost;
        location / {
            root   /usr/local/smokeping/htdocs/;
            index  index.html index.htm smokeping.fcgi;
        }
        location ~ .*\.fcgi$ {
            root  /usr/local/smokeping/htdocs/;
            fastcgi_pass   127.0.0.1:9007;
            include /etc/nginx/fastcgi_params;
        }
}   

修改nginx主配置文件:

# cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

启动nginx服务:

systemctl restart nginx

至此nginx+smokeping安装配置完毕,可以直接通过浏览器访问smokeping的web界面了。

支持中文

安装一个中文字体:

    yum -y install wqy-zenhei-fonts.noarch

编辑SmokePing的配置文件smokeping/etc/config 添加 charset = utf-8

...
*** Presentation ***
charset = utf-8         #添加
template = /usr/local/smokeping/etc/basepage.html.dist
+ charts
...

编辑/usr/local/smokeping/lib/Smokeping/Graphs.pm 文件插入如下代码:
‘–font TITLE:20:”WenQuanYi Zen Hei Mono”’,

if ($mode =~ /[anc]/){
        my $val = 0;
        for my $host (@hosts){
            my ($graphret,$xs,$ys) = RRDs::graph
            ("dummy",
            '--start', $tasks[0][1],
            '--end', $tasks[0][2],
            '--font TITLE:20:"WenQuanYi Zen Hei Mono"',   #添加

接着修改需要显示中文的监控项目名字,然后重启服务即可。重启SmokePing和FCGI:

ps -ef |grep smokeping
kill 进程号
/usr/local/smokeping/bin/smokeping --config=/usr/local/smokeping/etc/config --logfile=/var/log/smokeping.log
spawn-fcgi -a 127.0.0.1 -p 9007 -P /var/run/smokeping-fastcgi.pid -u nginx -f /usr/local/smokeping/htdocs/smokeping.fcgi

添加需要监控的网站和节点

在/usr/local/smokeping/etc/config中添加,添加完后需要重启
smokeping 会根据配置文件config在/usr/local/smokeping/htdocs/data之下添加moniter文件夹,其下包含website子文件夹
添加监控节点示例:注意+是第一层,++是第二层,+++ 是第三层
示例:

+ Test
menu= 三大网络监控
title = 监控统计

++ dianxin
menu = 电信网络监控
title = 电信网络监控列表
host = /Test/dianxin/dianxin-bj /Test/dianxin/dianxin-tj

+++ dianxin-bj
menu = 北京电信
title = 北京电信
alerts = someloss
host = 202.96.199.133

+++ dianxin-tj
menu = 天津电信
title = 天津电信
alerts = someloss
host = 219.150.32.132

++ liantong
menu = 联通网络监控
title = 联通网络监控列表
host = /Test/liantong/liantong-sc /Test/liantong/liantong-sh

+++ liantong-sc
menu = 四川联通
title = 四川联通
alerts = someloss
host = 119.6.6.6

+++ liantong-sh
menu = 上海联通
title = 上海联通
alerts = someloss
host = 210.22.84.3

++ yidong
menu = 移动网络监控
title = 移动网络监控列表
host = /Test/yidong/yidong-bj /Test/yidong/yidong-tj

+++ yidong-bj
menu = 北京移动
title = 北京移动
alerts = someloss
host = 221.130.33.52

+++ yidong-tj
menu = 天津移动
title = 天津移动
alerts = someloss
host = 211.137.160.5    

效果图:
Nginx+SmokePing 实践_第1张图片

你可能感兴趣的:(监控)