zoukankan      html  css  js  c++  java
  • nginx的https配置与状态页面监控

    nginx的https配置与状态页面监控


    https配置

    申请证书

    访问https://freessl.cn,注册并登录

    在证书列表中,选择申请证书

    1

    输入域名,创建证书

    2

    输入邮箱,点击创建

    3

    下载KeyManager,官网为:https://keymanager.org/

    4

    下载安装后,打开KeyManager,设置密码

    5

    点击创建测试证书

    6

    配置证书

    7

    导出证书

    8

    9

    将证书导入nginx主机

    [root@nginx ~]# ls
    anaconda-ks.cfg  itbaozi-net-cn-nginx-0531203109.zip
    [root@nginx ~]# mkdir /usr/local/nginx/ssl
    [root@nginx ~]# unzip itbaozi-net-cn-nginx-0531203109.zip -d /usr/local/nginx/ssl/
    [root@nginx ~]# ls /usr/local/nginx/ssl/
    itbaozi.net.cn_chain.crt  itbaozi.net.cn_key.key
    

    修改配置文件

    [root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
    ······
    //取消注释并修改域名和证书位置
        # HTTPS server
        #
        server {
            listen       443 ssl;
            server_name  *.itbaozi.net.cn;
    
            ssl_certificate      /usr/local/nginx/ssl/itbaozi.net.cn_chain.crt;
            ssl_certificate_key  /usr/local/nginx/ssl/itbaozi.net.cn_key.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    ······
    
    [root@nginx ~]# nginx -s reload
    [root@nginx ~]# ss -antl
    State     Recv-Q     Send-Q         Local Address:Port         Peer Address:Port    
    LISTEN    0          128                  0.0.0.0:443               0.0.0.0:*       
    LISTEN    0          128                  0.0.0.0:80                0.0.0.0:*       
    LISTEN    0          128                  0.0.0.0:22                0.0.0.0:*       
    LISTEN    0          128                     [::]:22                   [::]:* 
    

    配置域名和IP的映射关系

    Windows:

    用管理员权限打开记事本,并打开C:WindowsSystem32driversetc中的hosts文件

    # 添加如下内容并保存
    192.168.100.1 www.itbaozi.net.cn itbaozi.net.cn
    

    访问测试

    访问 https://itbaozi.net.cn

    10


    开启状态界面

    开启status:

    [root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
    ······
                location /status {
                stub_status on;
                allow 192.168.100.1;
                deny all;
            }
    ······
    
    [root@nginx ~]# nginx -s reload
    

    访问测试

    访问 192.168.100.1/status

    11

    状态页面信息详解:

    状态码 表示的意义
    Active connections 2 当前所有处于打开状态的连接数
    accepts 总共处理了多少个连接
    handled 成功创建多少握手
    requests 总共处理了多少个请求
    Reading nginx读取到客户端的Header信息数,表示正处于接收请求状态的连接数
    Writing nginx返回给客户端的Header信息数,表示请求已经接收完成, 且正处于处理请求或发送响应的过程中的连接数
    Waiting 开启keep-alive的情况下,这个值等于active - (reading + writing), 意思就是Nginx已处理完正在等候下一次请求指令的驻留连接

    状态界面监控

    本次环境为:

    系统信息 主机名 IP
    RHEL 8 nginx 192.168.100.1
    RHEL 8 zabbix 192.168.100.6

    准备工作:

    zabbix监控配置详情见:监控服务Zabbix部署 Zabbix配置

    nginx主机安装zabbix客户端

    #nginx
    //关闭防火墙和SELINUX
    [root@nginx ~]# systemctl disable --now firewalld
    [root@nginx ~]# sed -ri 's/^(SELINUX=).*/1disabled/g' /etc/selinux/config
    [root@nginx ~]# setenforce 0
    
    //安装依赖包
    [root@nginx ~]# yum -y install gcc gcc-c++ bzip2 pcre* make
    [root@nginx ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.6.tar.gz
    [root@nginx ~]# tar xf zabbix-5.2.6.tar.gz 
    [root@nginx ~]# useradd -r -M -s /sbin/nologin zabbix
    [root@nginx ~]# cd zabbix-5.2.6/
    [root@nginx zabbix-5.2.6]# ./configure --enable-agent
    [root@nginx zabbix-5.2.6]# make install
    
    //修改配置文件
    [root@nginx ~]# vim /usr/local/etc/zabbix_agentd.conf
    ······
    Server=192.168.100.6			#修改成服务端IP
    ······
    ServerActive=192.168.100.6		#修改成服务端IP
    ······
    Hostname=nginx
    
    [root@nginx ~]# zabbix_agentd 
    [root@nginx ~]# ss -antl
    State     Recv-Q    Send-Q         Local Address:Port          Peer Address:Port    
    LISTEN    0         128                  0.0.0.0:443                0.0.0.0:*       
    LISTEN    0         128                  0.0.0.0:10050              0.0.0.0:*       
    LISTEN    0         128                  0.0.0.0:80                 0.0.0.0:*       
    LISTEN    0         128                  0.0.0.0:22                 0.0.0.0:*       
    LISTEN    0         128                     [::]:22                    [::]:*      
    

    编写监控脚本

    #nginx
    [root@nginx ~]# mkdir /scripts
    [root@nginx ~]# cd /scripts
    [root@nginx scripts]# chown zabbix.zabbix /scripts
    [root@nginx scripts]# ll / | grep scripts
    drwxr-xr-x    2 zabbix zabbix   35 May 31 21:44 scripts
    [root@nginx scripts]# vim check_nginx_status.sh
    #!/bin/bash
    
    nginx_server=192.168.100.1
    
    requests(){
        requests=`curl -s http://${nginx_server}/status | awk 'NR==3{print $3}'`
        echo ${requests}
    }
    Reading(){
        Reading=`curl -s http://${nginx_server}/status | awk 'NR==4{print $2}'`
        echo ${Reading}
    }
    Writing(){
        Writing=`curl -s http://${nginx_server}/status | awk 'NR==4{print $4}'`
        echo ${Writing}
    }
    Waiting(){
        Waiting=`curl -s http://${nginx_server}/status | awk 'NR==4{print $6}'`
        echo ${Waiting}
    }
    
    main(){
        case $1 in
            requests)
               requests;
               ;;
            Reading)
                Reading;
                ;;
            Writing)
                Writing;
                ;;
            Waiting)
                Waiting;
                ;;
        esac
    }
    main $1
    
    [root@nginx scripts]# chmod +x check_nginx_status.sh
    
    //开启自定义监控并添加指标
    [root@nginx ~]# vim /usr/local/etc/zabbix_agentd.conf
    ······
    #在最后面添加以下内容
    UnsafeUserParameters=1
    UserParameter=check_nginx_status[*],/scripts/check_nginx_status.sh $1
    
    //重启zabbix
    [root@nginx ~]# pkill zabbix_agentd
    [root@nginx ~]# zabbix_agentd
    
    
    #zabbix
    //测试是否能获取客户端的指标
    [root@zabbix ~]# zabbix_get -s 192.168.100.1 -k check_nginx_status['requests']
    121
    [root@zabbix ~]# zabbix_get -s 192.168.100.1 -k check_nginx_status['Reading']
    0
    [root@zabbix ~]# zabbix_get -s 192.168.100.1 -k check_nginx_status['Writing']
    1
    [root@zabbix ~]# zabbix_get -s 192.168.100.1 -k check_nginx_status['Waiting']
    0
    

    网页配置

    添加主机组

    Configuration —— Host groups —— 右上角 Create host group

    12

    添加主机

    Configuration —— Hosts —— 右上角 Create host

    13

    添加监控项

    Configuration --- Hosts --- 客户机的Items --- 右上角Create Items

    填加第一项:requests

    14

    填加第二项:Reading

    15

    填加第三项:Writing

    16

    填加第四项:Waiting

    17

    添加graph

    Configuration --- Hosts --- 客户机的Graphs --- 右上角Create graph

    18

    在Screens上添加图表方便监控

    Monitoring --- Screens --- 右上角Edit screen

    19

    添加监控图表

    20

    监控nginx状态成功

    21

  • 相关阅读:
    TcxComboBoxProperties下拉框填充
    Delphi用QJSON解析JSON格式的数据 【转】
    Delphi的idhttp报IOHandler value is not valid错误的原因[转]
    RelayCommand
    ViewModelBase && ObservableObject
    MvvmLight ToolKit 教程
    WPF中的数据验证
    MvvmLight ToolKit .Net4.5版本 CanExecute不能刷新界面bug
    微软虚拟学院MVA 字幕获取方法
    WPF Binding INotifyPropertyChanged 多线程 深入理解
  • 原文地址:https://www.cnblogs.com/yuqinghao/p/14833802.html
Copyright © 2011-2022 走看看