月考复习内容

1 .LNMP环境一键安装脚本

1.1 要求

  • 可编译也可yum安装,最终显示phpinfo信息:
  • 修改nginx默认端口为8000
  • 修改nginx的连接数为10240
  • 修改nginx的默认首页
  • 启动每个服务前,需要先检测服务是否存在

1.2 脚本内容如下:

#!/bin/bash
nginx_install() {
     
    if [ -f /root/nginx-1.18.0.tar.gz ];then
        echo "nginx源码包存在,开始解压..."
        cd /root && tar xzf nginx-1.18.0.tar.gz
        echo "开始安装nginx编译所需环境"
        yum -y install gcc pcre-devel openssl-devel > /dev/null
        echo "开始检测编译安装nginx"
        cd nginx-1.18.0 && ./configure > /dev/null && make > /dev/null && make install > /dev/null
        echo "开始修改nginx配置文件"
        #修改默认端口
        sed -i '36 s/80/8000/' /usr/local/nginx/conf/nginx.conf
        #修改连接数
        sed -i '13 s/1024/10240/' /usr/local/nginx/conf/nginx.conf
        #修改默认首页
        sed -i '45 s/index.html/index.php/' /usr/local/nginx/conf/nginx.conf
        sed -i '65,71 s/#//' /usr/local/nginx/conf/nginx.conf
        sed -i '69 s/\/scripts/$document_root/' /usr/local/nginx/conf/nginx.conf
        echo "创建测试页面"
        echo "" > /usr/local/nginx/html/index.php
    else
        echo "nginx源码包不存在,请先上传!!!"
        exit
    fi
}
mysql_insatll() {
     
    rpm -qa|grep -q mariadb-server
    if [ $? -eq 0 ];then
        echo "mysql服务已经安装"
    else
        echo "mysql服务未安装,现在开始安装"
        yum -y install mariadb mariadb-server > /dev/null
    fi
}
php_install() {
     
    num=$(rpm -qa|grep -c php)
    if [ $num -eq 7 ];then
        echo "php组件已经全部安装"
    else
        echo "缺少PHP组件,现在开始安装"
        yum -y install php php-mysql php-fpm php-gd  > /dev/null
    fi
}
start_nginx() {
     
    ss -ntlp|grep -wq 8000
    if [ $? -eq 0 ];then
        echo "8000端口已经被占用,请查看确认"
    else
        echo "正在开启nginx服务"
        /usr/local/nginx/sbin/nginx
    fi
}
start_mysql() {
     
    ss -ntlp|grep -wq 3306
    if [ $? -eq 0 ];then
        echo "mysql服务已经存在,请查看确认"
    else
        echo "正在启动mysql服务"
        systemctl start mariadb
    fi
}
start_php() {
     
    ss -ntlp|grep -wq 9000
    if [ $? -eq 0 ];then
        echo "php-fpm服务已经存在,请查看确认"
    else
        echo "正在启动php-fpm服务"
        systemctl start php-fpm
    fi
}
IP=$(ifconfig |awk '/broadcast/{print $2}')
echo "--------------开始安装nginx---------------"
nginx_install
echo "--------------开始安装mysql---------------"
mysql_insatll
echo "--------------开始安装php-----------------"
php_install
echo "--------------开启nginx服务---------------"
start_nginx
echo "--------------开启mysql服务---------------"
start_mysql
echo "--------------开启php服务-----------------"
start_php

echo "一键部署lnmp脚本已经执行完成,请在浏览器输入 http://$IP:8000 访问测试页面"

1.3 执行过程:

[root@host-135 ~]# ./lnmp.sh 
--------------开始安装nginx---------------
nginx源码包存在,开始解压...
开始安装nginx编译所需环境
开始检测编译安装nginx
开始修改nginx配置文件
创建测试页面
--------------开始安装mysql---------------
mysql服务未安装,现在开始安装
--------------开始安装php-----------------
缺少PHP组件,现在开始安装
--------------开启nginx服务---------------
正在开启nginx服务
--------------开启mysql服务---------------
正在启动mysql服务
--------------开启php服务-----------------
正在启动php-fpm服务
一键部署lnmp脚本已经执行完成,请在浏览器输入 http://192.168.153.135:8000 访问测试页面

1.4 浏览器访问测试

月考复习内容_第1张图片

2. 批量增加用户

2.1 要求

  • 批量增加用户,并设置密码,把用户和密码保存到 /root/www.txt
  • 添加用户前需要检查用户是否存在

2.2 脚本内容如下:

#!/bin/bash
read -p "请输入要创建的用户的个数:" num
for i in `seq 1 $num`
do
    id user$i
    if [ $? -eq 0 ];then
        echo "user$i 用户已经存在"
    else
        echo "user$i 用户不存在,开始创建并设定密码"
        pwd=$(openssl rand -hex 4)
        useradd user$i && echo "$pwd" |passwd --stdin user$i
        [ -f /root/www.txt ] || touch /root/www.txt
        grep -wq user$i /root/www.txt
        if [ $? -eq 0 ];then
            echo "user$i 用户已经存在于/root/www.txt中"
        else
            echo "user$i $pwd" >> /root/www.txt
        fi
    fi
done

2.3 执行过程如下

[root@host-135 ~]# ./adduser.sh 
请输入要创建的用户的个数:5
id: user1: no such user
user1 用户不存在,开始创建并设定密码
Changing password for user user1.
passwd: all authentication tokens updated successfully.
id: user2: no such user
user2 用户不存在,开始创建并设定密码
Changing password for user user2.
passwd: all authentication tokens updated successfully.
id: user3: no such user
user3 用户不存在,开始创建并设定密码
Changing password for user user3.
passwd: all authentication tokens updated successfully.
id: user4: no such user
user4 用户不存在,开始创建并设定密码
Changing password for user user4.
passwd: all authentication tokens updated successfully.
id: user5: no such user
user5 用户不存在,开始创建并设定密码
Changing password for user user5.
passwd: all authentication tokens updated successfully.

2.4 查看 www.txt 文件的内容

[root@host-135 ~]# cat www.txt 
user1 88319848
user2 a327cf95
user3 fbc70938
user4 55baa243
user5 96404845

3. 服务器巡检脚本:

3.1 要求

  • 输出服务器系统版本
  • 输出服务器CPU核心数
  • 输出服务器内存总数和剩余内存
  • 输出硬盘使用相关信息
  • 输出网卡IP地址

3.2 脚本内容如下:

#!/bin/bash
os=$(cat /etc/redhat-release)
cpu_cores=$(grep -c processor /proc/cpuinfo)
mem_total=$(free -h|awk '/Mem/{print $2}')
mem_free=$(free -h|awk '/Mem/{print $4}')
disk_total=$(lsblk |awk '/disk/{print $4}')
disk_use=$(df -h|awk '/root/{
      print $(NF-1)}')
ip=$(ifconfig |awk '/broadcast/{
     print $2}')
echo "服务器系统版本为:$os"
echo "服务器CPU核心数为:$cpu_cores"
echo "服务器内存总数为:$mem_total"
echo "剩余内存为:$mem_free"
echo "磁盘总大小为:$disk_total"
echo "磁盘使用率为:$disk_use"
echo "网卡ip地址为:$ip"

3.3 执行过程如下

[root@host-134 ~]# sh system.sh 
服务器系统版本为:CentOS Linux release 7.7.1908 (Core)
服务器CPU核心数为:4
服务器内存总数为:1.8G
剩余内存为:1.4G
磁盘总大小为:40G
磁盘使用率为:4%
网卡ip地址为:192.168.153.134

4. zabbix监控nginx状态,关闭nginx触发告警

4.1 搭建zabbix 5.0

搭建教程链接>> https://blog.csdn.net/m0_46674735/article/details/112971571

4.2 nginx服务搭建

参考一键安装LNMP脚本即可

4.3 在nginx服务端安装配置zabbix-agent

4.3.1 上传zabbix5.0的阿里云的源到/etc/yum.repos.d/

在这里插入图片描述

4.3.2 安装agent

yum -y install zabbix-agent

4.3.3 编写脚本,自定义监控项

创建脚本目录

mkdir /etc/zabbix/scripts

编写nginx.sh脚本

vim /etc/zabbix/scripts/nginx.sh

脚本内容如下

#!/bin/bash
num=$(ps -ef|grep "nginx: master process"|grep -cv grep)
echo $num

给脚本增加执行权限

chmod +x  /etc/zabbix/scripts/nginx.sh

4.3.3 修改agent配置文件

vim /etc/zabbix/zabbix_agentd.conf

修改如下四行内容

117 Server=192.168.153.139    #zabbix-server的ip地址
158 ServerActive=192.168.153.139   #zabbix-server的ip地址
328 UnsafeUserParameters=1    # 开启自定义监控项
337 UserParameter=nginx.status,/etc/zabbix/scripts/nginx.sh  

4.3.4 启动agent服务

systemctl start zabbix-agent

4.4 在zabbix-server端安装zabbix-get工具测试

安装工具

yum -y install zabbix-get

测试自定义监控项设置成功

[root@host-139 ~]# zabbix_get -s 192.168.153.135 -k nginx.status
1

4.5 在zabbix web端添加nginx服务主机

1) 创建主机
月考复习内容_第2张图片
2) 主机内容
月考复习内容_第3张图片

4.6 主机添加成功,添加监控项

1)
月考复习内容_第4张图片
2)
月考复习内容_第5张图片
3)
月考复习内容_第6张图片
4) 添加成功
月考复习内容_第7张图片

4.7 配置报警媒介

4.7.1 上传报警脚本到server端的 /usr/lib/zabbix/alertscripts目录下,并增加执行权限

月考复习内容_第8张图片

4.7.2 配置媒体类型

1)
月考复习内容_第9张图片
2)
月考复习内容_第10张图片
3) 添加信息模板
月考复习内容_第11张图片
4) 点击更新
月考复习内容_第12张图片

5) 添加成功
月考复习内容_第13张图片

4.8 添加管理员邮箱

1)
月考复习内容_第14张图片
2)
月考复习内容_第15张图片

3)
月考复习内容_第16张图片
4)
月考复习内容_第17张图片
5)
月考复习内容_第18张图片

4.9 创建触发器

1)
月考复习内容_第19张图片

2)
月考复习内容_第20张图片

3) 添加成功
月考复习内容_第21张图片

4.10 创建动作

1)
月考复习内容_第22张图片

2)
月考复习内容_第23张图片

3)
月考复习内容_第24张图片

4)
月考复习内容_第25张图片

5) 添加成功
月考复习内容_第26张图片

4.11 测试邮件报警

停掉 nginx服务

/usr/local/nginx/sbin/nginx -s stop

成功收到报警邮件

月考复习内容_第27张图片

你可能感兴趣的:(#,Zabbix,Shell脚本)