ezhttp统计分析网络流量

对于线上的服务器,当发现服务器流量比平常大很多,造成了线上服务访问缓慢的问题,这时候我们希望查清为什么会出现这样的问题。我们希望了解流量的分布情况,即服务器上各个端口占用流量多少,哪些客户端IP占用流量最多等。使用ezhttp可以快速地统计出流量的分布情况。在开始之前,请先查看ezhttp介绍
ezhttp的流量统计分析提供了4个方面的统计:

  • 1) real time traffic.
  • 2) tcp traffic and connection overview.
  • 3) udp traffic overview
  • 4) http request count
  • 第1项为实时流量,显示指定网卡的入站和出站实时流量。
    第2项为统计tcp流量及连接概览。主要显示服务端IP,端口,客户端IP的流量占用情况。
    第3项为udp流量的统计。
    第4项为http请求的统计,将统计http url的请求分布情况。
    下面介绍1,2,4的使用方法。首先先进入Some Useful Tools -》 Network_analysis菜单项。

    real time traffic

    1) 输入1回车选择此实时流量选项
    2) 选择要统计的网卡,输入网卡名称对应的数字
    3) 将实时显示流量速率
    如图:
    未分类

    tcp traffic and connection overview

    1) 输入2选择此选项
    2) 选择要统计的网卡,输入网卡名称对应的数字
    3) 等待10s将显示这10s内的统计信息
    如图:
    未分类

    http request count

    1) 输入4回车选择此选项
    2) 选择要统计的网卡,输入网卡名称对应的数字
    3) 等待10s将显示这10s内的http url统计情况

    ezhttp设置时区和同步时间

    新装好系统的机器,时区和时间可能都是错乱的,这时候第一步得设置正确的时区和时间,否则可能会导致部分程序运行出错。使用ezhttp可以非常容易的设置时区和时间,并定时同步时间。在开始之前,请先查看ezhttp介绍

    1.Set_timezone_and_sync_time

    进入Some Useful Tools -> Set_timezone_and_sync_time菜单项

    2.设置时区

    此时将列出目前的时区和时间,并提示是否要更改时区,如果上面列出的时区正确了,可以输入n跳过此步,否则输入y。
    输入y之后,将进入时区设置流程。如要设置时间为东8区,首先是选择ocean(洋)为Asia,输入对应的数字5。
    接着选择country(国家)China,输入9。
    然后选择一个时区区域,这里选Beijing Time,输入1。
    最后查看设置是否正确,如果正确,输入1,否则输入2返回重新设置。

    3.自动设置同步时间

    完成时区设置之后,ezhttp将自动设置时区和同步时间,并把同步时间命令添加到计划任务中。
    如图:

    ezhttp启用和禁用php扩展

    由于ezhttp编译php时默认把大多数php扩展编译成了共享扩展形式,且没有全部启用,这时可以使用ezhttp来管理这部分扩展。在开始之前,请先查看ezhttp介绍

    1.进入Enable_disable_php_extension菜单项

    进入Some Useful Tools -》 Enable_disable_php_extension菜单项

    2.输入php-config路径

    直接回车使用默认路径/usr/local/php/bin/php-config,可以输入其它的,如/opt/php/bin/php-config

    3.输入要启用或禁用的扩展名

    到此步将列出所有编译为共享扩展的状态,disabled或enabled。输入扩展名称对其进行启用或禁用设置。

    4.最后输入n退出扩展管理

    当提示“do you want to continue enable or disable php extensions[Y/n]:”时,输入n退出扩展管理,将自动重启php。输入y继续管理扩展。
    如图:
    未分类

    ezhttp配置防火墙iptables

    对于在外网的服务器iptables非常的重要,它可以设置网络权限到最小以增强服务器安全性。不过手工配置iptables有点繁琐,且需要记住不少用法。这里我们使用ezhttp来轻松快速地配置iptables。在开始之前,请先查看ezhttp介绍

    进入Iptables_settings菜单选项

    进入Some Useful Tools -》 Iptables_settings

    选择要操作的项目

    有5个选项:

  • 1) clear all record,setting from nothing.
  • 2) add a iptables rule.
  • 3) delete any rule.
  • 4) backup rules and stop iptables.
  • 5) rescore iptables
  • 6) list iptables rules
  • clear all record,setting from nothing

    “clear all record,setting from nothing”,是初始化iptables表,将清空iptables表,设置INPUT和OUTPUT的默认策略为ACCEPT,然后提示输入要开放的端口,多个端口以空格分隔。如图将开放22 80 443端口:
    未分类
    输入端口回车之后将设置INPUT链默认策略为DROP,然后开放输入的端口。
    初始化完成后将提示是否继续设置iptables,y则继续设置,n则退出并保存iptables表到文件。

    add a iptables rule

    在INPUT链添加一条规则。
    1) 选择匹配的协议。
    1为tcp,2为udp,3为所有。直接回车为tcp。
    2) 设置匹配的来源IP
    可以默认单个IP或一个网段,留空直接回车则匹配所有来源IP
    3) 输入匹配的目的端口
    只支持输入一个,如3306。留空直接回车则匹配所有端口。
    4)选择匹配后的行为
    1为ACCEPT,2为DROP。直接回车默认为ACCEPT。如图:
    未分类

    delete any rule

    删除一条指定规则。输入左侧对应的规则序号回车删除此规则。如图:
    未分类

    backup rules and stop iptables

    备份规则到一个文件并清空所有规则。

    rescore iptables

    从文件恢复iptables规则

    ezhttp更改sshd端口

    默认的sshd端口是22,经常会收到来自世界各地的机器的尝试登录请求。为避免留下安全隐患,我们可以使用ezhttp快速地更改端口。在开始之前,请先查看ezhttp介绍

    1.进入Change_sshd_port菜单

    进入Some Useful Tools -> Change_sshd_port菜单

    2.输入新的sshd端口

    将列出目前监听的sshd端口以及sshd_config配置文件中的配置的端口。建议输入大于1024的端口,如26000。
    未分类

    ezhttp设置系统swap

    本文介绍使用ezhttp设置系统的swap。在开始之前,请先查看ezhttp介绍

    1.进入System_swap_settings

    输入2选择Some Useful Tools,再输入1进入System_swap_settings设置。

    2.选择设置swap的大小

    一般设置与物理内存同样大小。

    3.输入swap文件所在的位置

    如果有ssd,建立放置在ssd的目录。默认为/swapfile。
    稍等片刻ezhttp就会自动设置好swap,如图:
    未分类

    ezhttp添加虚拟主机

    本文介绍使用ezhttp的ez命令添加虚拟主机。这里我们以添加lnmp虚拟主机为例,其它类似。在开始之前,请先查看ezhttp介绍

    1.ez vhost add

    在终端执行添加虚拟主机命令:

    1. ez vhost add

    2.输入虚拟主机域名

    多个域名使用空格分隔,如devops.webres.wang webres.wang

    3.设置网站根目录

    默认为/home/{上面的首个的域名},如/home/devops.webres.wang。可以输入其它位置的目录,如/data/devops.webres.wang

    4.选择重写规则

    输入y则选择重写规则,输入n则跳过此步。我们输入y。
    接着将列出可选的重写规则,比如我们使用的是wordpress,则输入wordpress对应的数字2。

    5.是否设置支持php

    如果程序是php程序,输入y,如果全是静态文件,输入n。

    6.是否支持pathinfo

    像thinkphp等的框架可能需要支持pathinfo,这时输入y,否则输入n
    如图:
    未分类

    ezhttp安装php模块

    本文介绍在已经安装有php的机器上安装php模块。在开始之前,请先查看ezhttp介绍

    选择安装php使用的套件

    首先先进入安装php使用的套件,如lnmp。如图:
    未分类

    选择不安装nginx,mysql,php

    因为我们只需要安装php模块,所以我们在提示安装nginx,mysql,php时,直接回车选择不安装。如图:
    未分类

    安装php模块

    1) 输入y安装php模块
    2) 输入php config的路径,默认为{php路径}/bin/php-config,如果php路径为/opt/php,php-config则为/opt/php/bin/php-config。
    3) 将列出可选的php模块,这时输入模块的对应数字,多个数字用空格分隔,如2 4。如图:
    未分类
    后面的提示安装软件直接回车不安装即可。

    ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境

    本文介绍使用ezhttp一键安装配置lnmp lamp lnamp(apache nginx php mysql)环境,在开始之前,请先查看ezhttp介绍
    这里以安装lnmp为例,其它的安装类似。

    交互安装

    1.选择安装lnmp

    1) 输入1回车进入Installation of stack.
    2) 输入1回车选择LNMP(Nginx MySQL PHP)安装.
    如图:
    未分类

    2.nginx安装设置

    1)首先是nginx版本选择。
    这里有5个选项:

  • 1) nginx-1.8.0
  • 2) tengine-2.1.0
  • 3) openresty-1.9.7.3
  • 4) custom_version
  • 5) do_not_install
  • 输入一个1-5的数字或直接回车,直接回车默认选择5。
    第1-3个选项是选择指定nginx,包含nginx官方版本,淘宝的tengine和整合nginx luajit的openresty。
    第4个选项是指定版本号,输入的规则为nginx-1.4.1 tengine-1.4.6 ngx_openresty-1.2.8.3。
    第5个选择是
    这里我们选择nginx-1.8.0。
    2)然后是输入安装路径
    直接回车默认是/usr/local/nginx。我们可以更改其安装路径,如输入/opt/nginx。 这里我们直接回车使用默认值。
    3)接着将会显示安装nginx使用的编译参数
    且提示是否更改编译参数,直接回车默认是不更改。输入y是更改参数,n为不更改参数。这里我们直接回车,即不更改。
    4)最后是提示是否安装nginx模块
    默认为不安装,即n。输入y则安装,n为不安装。我们这里输入y,安装模块。接着将显示可安装的nginx模块,比如

  • 1) lua-nginx-module-0.10.0
  • 2) nginx-http-concat-1.2.2
  • 3) nginx-upload-module-2.2
  • 4) ngx_http_substitutions_filter_module-0.6.4
  • 5) do_not_install
  • 输入对应的数字选择安装的模块或输入5不安装。这里我们输入2安装nginx-http-concat-1.2.2模块。
    如图:
    未分类

    3.mysql安装配置

    1) 选择安装的mysql版本
    1-4选项为mysql5.1,mysql5.5,mysql5.6,mysql5.7版本,5为libmysqlclient18,6为自定义版本,格式为mysql-5.1.71 mysql-5.5.32 mysql-5.6.12 mysql-5.7.9。这里我们输入3安装mysql5.6。
    2)输入mysql安装路径
    直接回车默认路径为/usr/local/mysql,可以输入其它安装路径。这里我们直接回车选择默认的/usr/local/mysql。
    3) 输入mysql数据目录
    直接回车为默认的{上面设置的mysql安装路径}/data。可以输入其它的,如/data/mysql。我们直接回车选择默认的/usr/local/mysql/data。
    4) 输入mysql端口
    直接回车默认使用3306端口。可以输入任意一个有效的端口,如3307。我们直接回车选择默认的3306端口。
    5) 设置mysql root用户密码
    直接回车默认设置密码为root。可以输入任意字符串的密码,这里我们输入mysqlpwd。
    6)设置mysql编译参数
    直接回车默认不更改。可以输入y进行更改或n不更改。
    如图:
    未分类

    4.php安装配置

    1) 选择安装的php版本
    支持php5.2,php5.3,php5.4,php5.5,php5.6,php7.1的版本。输入对应的数字安装对应的版本。也可以选择custom_version自定义版本。这里输入5安装php5.6版本。
    2) 设置安装路径
    直接回车默认选择/usr/local/php路径,可以输入其它的路径,如/opt/php。这里直接驾车。
    3) 更改编译参数
    直接回车选择不更改。
    4)安装php模块
    将会列表可安装的php模块,安装多个模块输入以空格分隔的数字,如1 2 3。这里输入2 4安装memcache和redis模块。
    如图:
    未分类

    5.其它软件安装

    将会列出可安装的软件,安装多个软件输入以空格分隔的多个数字,如1 2 3。这里输入1 4安装memcached和redis。
    然后接着要求输入各自的安装路径,这里我们直接回车使用默认值。
    如图:
    未分类

    6.检查设置

    最后将列出以上的所有设置。直接回车和输入y开始安装或输入n返回重新设置。如图:
    未分类

    非交互安装

    非交互安装即不需要手动选择或输入各种配置进行安装,可需要一个命令就行。
    可以执行./start.sh -h查看帮助。以上的lnmp配置参数可以使用如下命令进行非交互安装。

    1. ./start.sh –stack=lnmp –package=nginx,php5.6,mysql5.6,memcached,redis –nginx-module=nginx-http-concat –mysql-root-pwd=mysqlpwd –redis-maxmem=2g

    ez命令介绍

    ezhttp提供了一个ez命令来对环境进行操作。用法如下:

    虚拟主机管理

  • ez vhost add:创建虚拟主机
  • ez vhost list: 列出所有虚拟主机
  • ez vhost del: 删除虚拟主机
  • mysql管理

  • ez mysql reset:重置mysql root用户密码
  • ez mysql add:创建mysql用户
  • ez mysql mod:更新mysql用户
  • ez mysql del:删除mysql用户
  • ftp管理

  • ez ftp add:添加ftp用户
  • ez ftp list:列出所有ftp用户
  • ez ftp del:删除ftp用户
  • ez ftp mod:更改ftp用户
  • 进程管理

  • nginx:/etc/init.d/nginx (start|stop|restart)
  • apache:/etc/init.d/httpd (start|stop|restart)
  • php-fpm:/etc/init.d/php-fpm (start|stop|restart)
  • mysql:/etc/init.d/mysqld (start|stop|restart)
  • Linux一键配置工具ezhttp介绍

    简介

    ezhttp是一个Linux一键配置工具,采用bash脚本语言编写。支持自动配置LAMP,LNMP,LNAMP环境,以前提供各种其它的配置工具,如自动配置swap,配置iptables等。项目托管在github,地址为https://github.com/centos-bz/ezhttp

    支持的系统

    理论上支持所有Linux系统,但推荐的系统有centos、ubuntu、debian。

    功能

    支持的套件安装

  • LNMP:Nginx PHP MySQL
  • LAMP: Apache PHP MySQL
  • LNAMP:Nginx Apache PHP MySQL
  • Nginx: Nginx官方版本,Tengine,OpenResty
  • Apache: Apache-2.2,Apache-2.4
  • PHP: PHP-5.2,PHP-5.3,PHP-5.4,PHP-5.5,PHP-5.6,PHP-7.1
  • PHP模块:ZendOptimizer, ZendGuardLoader, xcache, eaccelerator, php_imagemagick, ionCube, php_memcache, php_memcached, php_redis, php_mongo, xdebug, mssql, fileinfo, php-gmp, swoole
  • MySQL: MySQL-5.1,MySQL-5.5,MySQL-5.6,MySQL-5.6
  • 额外的可选软件:memcached, PureFTPd, phpMyAdmin, redis, mongodb, phpRedisAdmin, memadmin, rockmongo, jdk7, jdk8, tomcat7, tomcat8
  • 支持的其它一键配置

  • 配置Swap
  • 生成MySQL my.cnf配置文件
  • 生成RPM包
  • Percona_xtrabackup安装
  • 更改SSH端口
  • Iptables配置
  • 开启和关闭PHP扩展
  • 配置系统时区及日期
  • 初始化MySQL
  • 添加chroot系统用户
  • 网络流量分析
  • 配置apt或yum仓库源
  • 安装配置rsync server
  • 一键配置备份
  • 统计进程访问的文件
  • 安装dotnet core
  • 安装Docker
  • 安装Docker Compose
  • 特性

  • 支持非交互配置,真正地一个命令配置
  • 三个下载节点智能测速选择,加快软件下载速度
  • 可自定义版本安装
  • 自动使用screen安装,再也不怕断网导致的安装中断
  • 自动检测软件md5,保证软件的完整性及安全性
  • 如何使用

    1. wget –no-check-certificate webres.wang/ezhttp.zip?time=$(date +%s) -O ezhttp.zip
    2. unzip ezhttp.zip
    3. cd ezhttp-master
    4. chmod +x start.sh

    交互安装:

    1. ./start.sh

    如图:
    未分类
    非交互安装(查看参数):

    1. ./start.sh -h

    如图:
    未分类

    FAQ

    安装出错

    请发送/root/ezhttp.log文件到[email protected]

    网络问题断开

    安装过程中由于网络原因导致终端断开,ezhttp默认使用screen安装,可以使用screen -r ezhttp命令恢复终端。

    如何赞助

    请在下面的打赏按钮处微信扫一扫支付。

    更多ezhttp教程

    1. 一键安装lnmp lamp lnamp
    2. 添加虚拟主机
    3. 启用和禁用php扩展
    4. 配置防火墙iptables
    5. 安装php模块
    6. 设置定时备份文件和数据库
    7. 更改sshd端口
    8. 设置时区和同步时间
    9. 设置系统swap
    10. 配置yum或apt仓库镜像
    11. 统计分析网络流量