美文网首页
第十四周

第十四周

作者: 是小何同学 | 来源:发表于2019-02-13 15:02 被阅读0次

    1、搭建时间服务器,日志服务器并简述sudo安全切换。

    server端

    [root@zabbix ~]# hostnamezabbix[root@zabbix ~]# hostname -I10.0.0.120 172.16.1.120

    先说下环境,我这里是用ansible批量执行的。server端为外网为10.0.0.120。

    目标是让客户端四台机器做到时间同步,一秒不差

    小提示:在利用ansible批量分发文件的时候,覆盖文件是一件很危险的事,如果原文件存在,最好先备份。其实不管是ansible还是其它操作,覆盖都是很危险的

    [root@zabbix ~]# cat /etc/ansible/hosts[client]172.16.1.51172.16.1.52172.16.1.53172.16.1.250

    防火墙关闭:

    [root@zabbix ~]# systemctl status firewalld.service ???firewalld.service - firewalld - dynamic firewall daemon  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)  Active: inactive (dead)

    selinux关闭:

    [root@zabbix ~]# getenforce Disabled

    [root@localhost ~]#systemctlstatuschrony●chrony.serviceLoaded:not-found(Reason: No such file or directory)Active:inactive(dead)

    ========================服务端=========================

    1.安装chrony(所有机器)

    yum install chrony -y

    2.启动chrony

    [root@zabbix ~]# systemctl start chronyd.service [root@zabbix ~]# systemctl status chronyd.service ???chronyd.service - NTP client/server  Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)  Active: active (running) since Sat 2017-05-27 11:47:43 CST; 4s ago

    3.编辑配置文件(注意:现在是服务器端的修改)

    22 allow 10.0.0.0/24      23        24# Listen for commands only on localhost.  25 bindcmdaddress 127.0.0.1      26 bindcmdaddress ::1      27        28# Serve time even if not synchronized to any NTP server.  29localstratum 10#第22行设置为本网段#第29行的注释取消

    4.查看配置文件如下

    [root@zabbix ~]# egrep -v "#|^$" /etc/chrony.conf server ntp1.aliyun.comserver time1.aliyun.comstratumweight 0driftfile /var/lib/chrony/driftrtcsyncmakestep 10 3allow 10.0.0.0/24bindcmdaddress 127.0.0.1bindcmdaddress ::1localstratum 10keyfile /etc/chrony.keyscommandkey 1generatecommandkeynoclientloglogchange 0.5logdir /var/log/chrony

    5.重启时间同步服务

    [root@zabbix ~]# systemctl restart chronyd.service

    ======================客户端=====================

    方法一

    客户端的配置文件是同一个文件(/etc/chrony.conf)

    1.删掉哪些没用的server xxxxxxxxxx iburst

    1 # Use public servers from the pool.ntp.org project. 

    2 # Please consider joining the pool (http://www.pool.ntp.org/j    oin.html). 

    3 server  10.0.0.120      iburst 

    4 # Ignore stratum in source selection. 

    2.在server端把配置文件编辑好然后用ansible批量分发过去

    [root@zabbix ~]# ansible client -m copy -a "src=/root/chrony.conf dest=/etc/"

    172.16.1.250 | SUCCESS => {

        "changed": true,

        "checksum": "52bda81d895de3c7c54886d342e5eec074df757e",

        "dest": "/etc/chrony.conf",

        "gid": 0,

        "group": "root",

        "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1",

        "mode": "0644",

        "owner": "root",

        "size": 1038,

        "src": "/root/.ansible/tmp/ansible-tmp-1495860905.35-183232559888238/source",

        "state": "file",

        "uid": 0

    }

    172.16.1.53 | SUCCESS => {

        "changed": true,

        "checksum": "52bda81d895de3c7c54886d342e5eec074df757e",

        "dest": "/etc/chrony.conf",

        "gid": 0,

        "group": "root",

        "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1",

        "mode": "0644",

        "owner": "root",

        "size": 1038,

        "src": "/root/.ansible/tmp/ansible-tmp-1495860905.34-134007063835838/source",

        "state": "file",

        "uid": 0

    }

    172.16.1.51 | SUCCESS => {

        "changed": true,

        "checksum": "52bda81d895de3c7c54886d342e5eec074df757e",

        "dest": "/etc/chrony.conf",

        "gid": 0,

        "group": "root",

        "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1",

        "mode": "0644",

        "owner": "root",

        "size": 1038,

        "src": "/root/.ansible/tmp/ansible-tmp-1495860905.43-104570916452677/source",

        "state": "file",

        "uid": 0

    }

    172.16.1.52 | SUCCESS => {

        "changed": true,

        "checksum": "52bda81d895de3c7c54886d342e5eec074df757e",

        "dest": "/etc/chrony.conf",

        "gid": 0,

        "group": "root",

        "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1",

        "mode": "0644",

        "owner": "root",

        "size": 1038,

        "src": "/root/.ansible/tmp/ansible-tmp-1495860905.43-40575778655199/source",

        "state": "file",

        "uid": 0

    }

    3.启动同步服务,防火墙也需要关闭

    [root@zabbix ~]# ansible client -m shell -a "systemctl start chronyd.service"

    172.16.1.53 | SUCCESS | rc=0 >>

    172.16.1.250 | SUCCESS | rc=0 >>

    172.16.1.52 | SUCCESS | rc=0 >>

    172.16.1.51 | SUCCESS | rc=0 >>

    4.注意客户端时间同步定时任务关闭

    [root@zabbix ~]# ansible client -m shell -a "crontab -l"

    172.16.1.51 | SUCCESS | rc=0 >>

    172.16.1.250 | SUCCESS | rc=0 >>

    172.16.1.53 | SUCCESS | rc=0 >>

    172.16.1.52 | SUCCESS | rc=0 >>

    5.Centos7依然可以用ntpdate命令同步时间

    [root@zabbix ~]# ansible client -m shell -a "ntpdate 10.0.0.120"

    172.16.1.53 | SUCCESS | rc=0 >>

    27 May 13:05:57 ntpdate[26817]: adjust time server 10.0.0.120 offset -0.001686 sec

    172.16.1.250 | SUCCESS | rc=0 >>

    27 May 13:05:57 ntpdate[17419]: adjust time server 10.0.0.120 offset -0.004419 sec

    172.16.1.52 | SUCCESS | rc=0 >>

    27 May 13:05:57 ntpdate[50111]: adjust time server 10.0.0.120 offset -0.004410 sec

    172.16.1.51 | SUCCESS | rc=0 >>

    27 May 13:05:57 ntpdate[114089]: adjust time server 10.0.0.120 offset -0.000597 sec

    6.查看时间,现在已经都同步了,一秒不差

    [root@zabbix ~]# ansible client -m shell -a "date"

    172.16.1.250 | SUCCESS | rc=0 >>

    Sat May 27 13:06:04 CST 2017

    172.16.1.51 | SUCCESS | rc=0 >>

    Sat May 27 13:06:04 CST 2017

    172.16.1.53 | SUCCESS | rc=0 >>

    Sat May 27 13:06:04 CST 2017

    172.16.1.52 | SUCCESS | rc=0 >>

    Sat May 27 13:06:04 CST 2017

    方法二:放入定时任务

    [root@zabbix ~]# ansible client -m cron -a "name='time sync' minute=*/5 job='/usr/sbin/ntpdate 10.0.0.120 &>/dev/null'"

    172.16.1.51 | SUCCESS => {

        "changed": true,

        "envs": [],

        "jobs": [

            "time sync"

        ]

    }

    172.16.1.52 | SUCCESS => {

        "changed": true,

        "envs": [],

        "jobs": [

            "time sync"

        ]

    }

    172.16.1.53 | SUCCESS => {

        "changed": true,

        "envs": [],

        "jobs": [

            "time sync"

        ]

    }

    172.16.1.250 | SUCCESS => {

        "changed": true,

        "envs": [],

        "jobs": [

            "time sync"

        ]

    }

    [root@zabbix ~]# ansible client -m shell -a "crontab -l"

    172.16.1.51 | SUCCESS | rc=0 >>

    #Ansible: time sync

    */5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

    172.16.1.52 | SUCCESS | rc=0 >>

    #Ansible: time sync

    */5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

    172.16.1.53 | SUCCESS | rc=0 >>

    #Ansible: time sync

    */5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

    172.16.1.250 | SUCCESS | rc=0 >>

    #Ansible: time sync

    */5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

    centos7默认已经安装:

    [root@QFQLDl155405 2018-07-31]#  rpm -qa | grep rsys

    rsyslog-8.24.0-12.el7.x86_64

    1

    2

    配置主配置文件/etc/rsyslog.conf

    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)

    $ModLoad imjournal # provides access to the systemd journal

    $ModLoad imtcp  #开启tcp

    $InputTCPServerRun 514  #端口

    $FileCreateMode 0644    #文件创建权限

    $DirCreateMode 0755    #目录权限

    $Umask 0022

    $EscapeControlCharactersOnReceive off  #字符集调整

    $template LogFormat,"%msg%\n"          #定义模板

    $template DayPerProgram_AccessLogs,"/opt/logs/%programname:1:320%/%fromhost-ip%/%$year%-%$month%-%$day%/%programname%.%$year%-%$month%-%$day%-%$hour%.log" #定义日志位置模板

    if ($programname contains 'nginx' ) then -?DayPerProgram_AccessLogs;LogFormat #设置触发条件

    $WorkDirectory /var/lib/rsyslog

    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

    $IncludeConfig /etc/rsyslog.d/*.conf

    $OmitLocalLogging on

    $IMJournalStateFile imjournal.state

    *.info;mail.none;authpriv.none;cron.none;local3.none;local4.none                /var/log/messages

    authpriv.*                                              /var/log/secure

    mail.*                                                  -/var/log/maillog

    cron.*                                                  /var/log/cron

    *.emerg                                                :omusrmsg:*

    uucp,news.crit                                          /var/log/spooler

    local7.*                                                /var/log/boot.log

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    配置客户端文件:/etc/rsyslog.d/nginx.conf

    $ModLoad imfile

    $InputFileName /alidata/nginx/logs/default.log  #日志路径

    $InputFileTag nginx_skynet                      #日志标签

    $InputFileStateFile nginx_log                 

    $InputFileFacility local4

    $InputFileSeverity notice

    $InputFilePersistStateInterval 1

    $InputRunFileMonitor

    $InputFilePollInterval 1

    if ($programname contains 'nginx')  then @@127.0.0.1:514    #@@是tcp,@是UDP

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    启动:systemctl start rsyslog

    root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令

    su或su-切换用户需要输入切换目标用户的密码

    2、详解nginx模块使用方法。

      一、Nginx介绍

        Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能,Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站都已使用Nginx作为Web应用服务器。下面我简单介绍一下:

        nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性;

        作为Web服务器;相比较与Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤为受到虚拟主机提供商的欢迎,能够支持高达50000个并发的连接数的响应。

        作为负载均衡服务器器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外惊醒服务,Nginx用C语言编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

        作为邮件代理服务器,Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm描述了成功并且美妙的使用经验。

    Nginx安装非常简单,配置文件非常简介(还能够支持perl语法),Bugs非常少的服务器:Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数月也不需要重新启动。还能够在不间断服务的情况下进行软件版本平滑升级。

    二、软件获得及帮助文档

        官方地址:http://nginx.org

        下载稳定版本:http://nginx.org/download/nginx-1.8.0.tar.gz

        帮助文档:http://nginx.org/en/docs

        编译参数说明:http://nginx.org/en/docs/configure.html

    三、Nginx的功能

      1、Nginx的特性

      模块化设计、较好的扩展性

      高可靠性:一个master启动一或多个worker,每个worker响应多个请求

      低内存消耗:10000个keepalive连接在Nginx中仅消耗2.5MB内存(官方数据)

      支持热部署:不停机更新配置文件、更新日志文件、更新服务器程序版本

    2、Nginx的基本功能

      静态web资源服务器,能够缓存打开的文件描述符

      支持http/imap/pop3/smtp的反向代理;支持缓存、负载均衡

      支持fastcgi(fpm)

      模块化,非DSO机制,支持过滤器zip压缩,SSI以及图像大小调整

      支持SSL

    3、Nginx的扩展功能

      基于名称和IP的虚拟主机

      支持keepalive的保持机制

      支持平滑升级

      定制访问日志,支持使用日志缓存区提高日志存储性能

      支持url rewrite

      支持路径别名(root或alias指定)

      支持基于IP以及用户的访问控制

      支持传输速率限制,并发限制

    4、Nginx的基本架构

      一个master进程,生成一个或者多个worker进程,每个worker响应多个请求

      事件驱动:epoll,kqueue,poll,select,rt signals

      支持sendfile,sendfile64

      支持AIO

      支持mmap

    5、Nginx模块类型

      Nginx core module: nginx的核心模块

      Standard HTTP modules:nginx的标准模块

      Optional HTTP modules:nginx的可选模块

      Mail modules :nginx的邮件模块

      3rd party modules:nginx的第三方模块

    6、Nginx进程详解

      主进程主要完成如下工作:

          读取并验正配置信息;

          创建、绑定及关闭套接字;

          启动、终止及维护worker进程的个数;

          无须中止服务而重新配置工作特性;

          控制非中断式程序升级,启用新的二进制程序并在需要时回滚至老版本;

          重新打开日志文件,实现日志滚动;

          编译嵌入式perl脚本;

          worker进程主要完成的任务包括:

          接收、传入并处理来自客户端的连接;

          提供反向代理及过滤功能;

          nginx任何能完成的其它任务;

      cache loader进程主要完成的任务包括:

          检查缓存存储中的缓存对象;

          使用缓存元数据建立内存数据库;

      cache manager进程的主要任务:

          缓存的失效及过期检验;

    相关文章

      网友评论

          本文标题:第十四周

          本文链接:https://www.haomeiwen.com/subject/oytdeqtx.html