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.fcgicd /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. Spring Boot 2.0:Docker Compose + Spring Boot + Nginx + Mysql 实践

    Spring Boot 2.0:Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中最常 ...

  2. Nginx学习实践总结

    目录 1. 简介 2. 安装 3. 运行 4. Nginx 的典型配置: 典型配置示例 全局变量 5. 反向代理 6. 跨域问题 6.1.使用反向代理解决跨域 6.2. 配置 header 解决跨域 ...

  3. 【站在微笑的肩上】Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    文章目录 前言 原文章 1. Spring Boot 案例 1.1 配置信息 1.2 核心代码 1.2.1 entity 1.2.2 repository 1.2.3 controller 2. Do ...

  4. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  5. (转)Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    http://www.ityouknow.com/springboot/2018/03/28/dockercompose-springboot-mysql-nginx.html 我知道大家这段时间看了 ...

  6. 阿里云域名解析网络和服务架构设计(四) 之阿里云ECS服务器Nginx代理实践

    一.回顾 阿里云域名解析网络和服务架构设计总概览(一)_飞鸽FlyGo的博客-CSDN博客云解析DNS.负载均衡SLB.阿里云ECS服务器.阿里云ECS服务器Nginx代理https://flygo. ...

  7. Nginx使用ngx_http_realip模块获取用户真实IP实践

    一个典型的WEB应用拓扑如下图. client - proxy1 - proxy2 - proxyn - web server 由于client并不直接和Web server建立TCP连接,所以WEB ...

  8. 鹅厂二面,Nginx回忆录

    上周二面鹅厂,面试官问出了"nginx你了解吗?"这样宽泛直白的句式,我一时抓不到重点,一时语噻. 下班想了一下,平时潜移默化用到不少nginx的能力,但在面试的时候没有吹成对应的 ...

  9. 2.2.1 Nginx高性能负载均衡器

    目录 2.2.1.1 Nginx负载均衡 1.Nginx简介 1.1.Nginx作为负载均衡的8个原因 2.正向代理和反向代理 2.1.正向代理 2.2.反向代理(Reverse Proxy) 2.3 ...

最新文章

  1. [零基础学JAVA]Java SE面向对象部分-10.面向对象基础(05)
  2. 如何针对产品销售设计一套有效的奖励和惩罚销售措施?
  3. spring 事物合并_Spring系列合并
  4. Python学习---django知识补充之CBV
  5. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
  6. LeetCode 695. Max Area of Island javascript解决方案
  7. 去除tabbar的灰线
  8. r语言中对向量求条件语句_R中的条件语句
  9. 环一维数组最大子数组问题
  10. java循环隔行变色_c:foreach标签详解----(隔行换背景颜色的问题)
  11. jquey知识点整理
  12. 设置vim默认显示行号
  13. 人工智能白皮书(2022年) 附下载
  14. eeupdate使用说明_使用eeupdate修改重写IBM网卡MAC-BIOS维修网站www.biosrepair.com
  15. IRQL Ring0实现
  16. 移动APP自动化测试框架对比
  17. 2022中国大学python语言程序设计测试六答案(北理工嵩天 、黄天羽 、礼欣)
  18. 安装calico网络插件后K8s集群节点间通信找不到主机路由(no route to host)
  19. InvalidKeyException: Illegal key size异常解决方案
  20. 牛皮癣的肠-脑-皮轴

热门文章

  1. Java 同步机制浅谈(转贴) http://www.yuanma.org/data/2007/0523/article_2619.htm 中国源码网
  2. S7-300 400 PLC 系统软件冗余调试的常见问题
  3. unity HTC眨眼效果
  4. python初始教程 打印字符串
  5. 龙族幻想无法获取服务器端文件,龙族幻想无法进入怎么办?无法进入解决办法一览...
  6. 自制面膜让你轻松美容 - 生活至上,美容至尚!
  7. 全国计算机二级各个省份报名时间定了
  8. 点成分享|器官芯片——小白鼠的拯救者?
  9. Low Power Design in SoC Using Arm IP
  10. RPI-Wireless-Hotspot