首页 > 系统相关 >Centos7 nginx反向代理gitea和grafana&钉钉告警

Centos7 nginx反向代理gitea和grafana&钉钉告警

时间:2023-11-13 14:27:16浏览次数:41  
标签:ssl gitea grafana Centos7 nginx usr server local proxy

1 安装nginx

yum install -y gcc make pcre-devel zlib-devel openssl-devel
wget https://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
make install

vi /etc/systemd/system/nginx.service
=======================================================

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 

=======================================================

#设置权限和属主:
chmod 644 /etc/systemd/system/nginx.service
chown root:root /etc/systemd/system/nginx.service


2 创建nginx代理gitea和grafana的配置文件:不需要改nginx主配置文件,nginx会读取这个:

vi /etc/nginx/sites-available/gitea.conf
===================================================

server {
    listen 80;
    server_name gitea.sinsenliu.top;

    location / {
        return 301 https://$server_name$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name sinsenliu.top;
    access_log  /usr/local/nginx/logs/gitea_access.log;
    error_log   /usr/local/nginx/logs/gitea_error.log;
    ssl_certificate     /usr/local/keys/www.sinsenliu.top.pem;
    ssl_certificate_key /usr/local/keys/www.sinsenliu.top.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://192.168.238.10:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

  

===================================================


vi /etc/nginx/sites-available/grafana.conf
===================================================

server {
    listen 80;
    server_name granfana.sinsenliu.top;

    location / {
        return 301 https://$server_name$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name grafana.sinsenliu.top;
    access_log  /usr/local/nginx/logs/grafana_access.log;
    error_log   /usr/local/nginx/logs/grafana_error.log;
    ssl_certificate     /usr/local/keys/grafana.sinsenliu.top.pem;
    ssl_certificate_key /usr/local/keys/grafana.sinsenliu.top.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://192.168.238.11:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

===================================================

/usr/local/nginx/sbin/nginx -t #检查nginx配置文件语法

/usr/local/nginx/sbin/nginx -s reload # 企业环境一般不重启,而是reload

浏览器分别访问:
gitea.sinsenliu.top
granfana.sinsenliu.top

 

-----

 

 

-----------------------------------------------------------------------------------

3 监控上述https证书到期时间,剩余时间小于10天报警到钉钉:
vi /usr/local/scripts/certcheck.sh

#!/bin/bash

# 设置证书文件路径
CERT_FILE="/usr/local/keys/www.sinsenliu.top.pem"

# 设置域名
DOMAIN="sinsenliu.top"

# 设置钉钉机器人 Webhook
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=d5cf34808fecf21f2906fa1ef9b28b07cddda6ca4e20b6c858ea3d05eb394446"

# 获取证书到期时间(以秒为单位)
expiry_date=$(openssl x509 -noout -enddate -in $CERT_FILE | cut -d= -f 2)

# 打印证书到期时间
echo "Certificate for $DOMAIN expires on: $expiry_date"

# 将到期时间转换为时间戳
expiry_timestamp=$(date -d "$expiry_date" +%s)

# 获取当前时间(以秒为单位)
current_timestamp=$(date +%s)

# 计算到期时间与当前时间的差值(以天为单位)
days_until_expiry=$(( ($expiry_timestamp - $current_timestamp) / 86400 ))

# 如果到期时间小于 400 天,则触发钉钉告警
if [ $days_until_expiry -lt 400 ]; then
  # 发送钉钉告警,消息中包含关键词 "OMG"
  message="{\"msgtype\": \"text\",\"text\": {\"content\": \"域名 $DOMAIN 的证书 $CERT_FILE 到期时间小于 400 天,剩余天数:$days_until_expiry OMG\"}}"
  curl -H "Content-Type: application/json" -d "$message" $WEBHOOK_URL
fi

#赋权限:
chmod +x /usr/local/scripts/certcheck.sh

 

#创建定时任务
crontab -e #内容如下:

0 10 * * * /bin/bash /usr/local/scripts/certcheck.sh #每天上午10点运行脚本

#效果:(为让运行脚本后立刻报警,就设定400天)

 

标签:ssl,gitea,grafana,Centos7,nginx,usr,server,local,proxy
From: https://www.cnblogs.com/sinsenliu/p/17828970.html

相关文章

  • CentOS7编译安装openssl1.1.1
    Centos7默认提供的openssl版本是1.0.2的,想要升级openssl版本则需要手动进行编译一、下载openssl1.1.1cd/usr/local/src/wget--no-check-certificatehttps://www.openssl.org/source/openssl-1.1.1d.tar.gz二、创建安装目录mkdir-p/usr/local/openssl 三、解压......
  • 基于Grafana+Flowcharting的基础设施监控可视化实践
    一概述基础设施监控对于确保系统的稳定性和性能至关重要。而要有效地监控和管理基础设施,可视化是一种强大的工具。本文将介绍如何使用Grafana和Flowcharting来实现基础设施监控的可视化,包括监控指标的收集、数据展示和报警通知等方面。通过合理的设计和配置,我们可以快速建立起一个......
  • CentOS7安装Java8
    1.卸载系统自带的OpenJDK以及相关的java文件 键入命令java-version  键入命令rpm-qa|grepjava  把带openjdk的都删除  rpm-e--nodeps 验证是否删干净   2.解压java8到相应目录配置JDK环境变量键入命令 vim/etc/profile修改配置文件,记得要在root权限下修改e......
  • 【CentOS】CentOS7安装PostgreSQL
    1、安装PostgreSQL使用以下命令安装PostgreSQL:sudoyuminstallpostgresql-serverpostgresql-contrib 2、初始化数据库执行以下命令来初始化PostgreSQL数据库:sudopostgresql-setupinitdb 3、启动PostgreSQL服务启动PostgreSQL服务&& 设置PostgreSQL......
  • centos7 扩展硬盘
    新增硬盘后       注意,我这里用的xfs!!!注意,文件夹不能已存在的!!尽量不要把多个硬盘挂载在同一个文件夹上!!!  vi/etc/fstab 注意,用00即可  查看uuid=>blkid/dev/sdb1  df-h ......
  • Grafana监控Oracle数据库的表大小等信息
    Grafana监控Oracle数据库的表大小等信息方案oracledb_exporter以及prometheusgrafana使用的SQL以及配置文件[[metric]]context="table_sizeinfo"labels=["table_nameinfo","table_tablespace"]metricsdesc={table_rownum="tablerownum&q......
  • linux系统centos7安装docker
    1、Docker官网安装地址https://docs.docker.com/engine/install/centos/#prerequisites2、离线安装下载地址https://download.docker.com/linux/static/stable/x86_64/3、使用yum工具安装如果之前安装需要先卸载sudoyumremovedocker\docker-cl......
  • docker在centos7下的安装
    1.安装/升级Docker客户端#step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#Step3:更......
  • centos7.9安装kubernetes1.27.4版本
    ./etc/os-releasecolor(){RES_COL=60MOVE_TO_COL="echo-en\\033[${RES_COL}G"SETCOLOR_SUCCESS="echo-en\\033[1;32m"SETCOLOR_FAILURE="echo-en\\033[1;31m"SETCOLOR_WARNING="echo-en\\0......
  • centos7.6 安装MySQL 5.6
    1.添加MySQL5.6的Yum存储库:sudovim/etc/yum.repos.d/mysql56.repo[mysql56-community]name=MySQL5.6CommunityServerbaseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/enabled=1gpgcheck=02.安装MySQL5.6:sudoyuminstallmysql-server3......