源码编译安装Redis

环境:

CentOS7.2

redis version:4.0.11

安装步骤:

# tar zxf redis-4.0.11.tar.gz

# cd redis-4.0.11

# make

# make install PREFIX=/usr/local/redis //指定安装目录

# mkdir /usr/local/redis/conf //建配置文件目录

# cp redis.conf /usr/local/redis/conf

# mkdir /usr/local/redis/log //建日志文件目录

# touch /usr/local/redis/log/redis_6379.log //建日志文件

# vi /usr/local/redis/conf/redis.conf

修改如下内容:

bind 0.0.0.0 //允许任何连接

daemonize yes

logfile /usr/local/redis/log/redis_6379.log  //指定日志文件

dir /usr/local/redis/bin //工作目录,备份文件也保存在此目录

requirepass <设置密码> //设置认证密码

#vi /etc/profile

export PATH=”$PATH:/usr/local/redis/bin” 

# 保存退出

# 让环境变量立即生效: 

source /etc/profile

配置启动脚本:

# 复制脚本文件到init.d目录下 

# cp /usr/local/src/redis-4.0.11/utils/redis_init_script /etc/init.d/redis

vi /etc/init.d/redis

修改如下内容:

EXEC=/usr/local/redis/bin/redis-server

CLIEXEC=/usr/local/redis/bin/redis-cli

CONF=”/usr/local/redis/conf/redis.conf”

$CLIEXEC -a “password” -p $REDISPORT shutdown

#此处passowrd应与上述设置密码保持一致。

注:若修改了redis.conf文件中的bind地址之后,重启redis出现Could not connect to Redis at 127.0.0.1:6379: Connection refused错误,需要修改脚本(例如/etc/init.d/redis),找到如下字符串$CLIEXE -p $REDISPORT shutdown,修改为$CLIEXEC -h ip -a “password” -p $REDISPORT shutdown(即添加-h ip,ip应与上述bind地址保持一致)

# chmod +x /etc/init.d/redis

# chkconfig –add redis

# chkconfig –level 2345 redis on

# systemctl start redis #或者 /etc/init.d/redis start

# systemctl stop redis #或者 /etc/init.d/redis stop

附录1:日志中存在告警及解决

告警1:

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

解决:

修改/etc/sysctl.conf文件,增加一行:

net.core.somaxconn = 1024

然后执行命令:sysctl -p

告警2:

2865:M 01 Nov 17:36:36.055 # WARNING overcommit_memory is set to 0! Background save may fail

 under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.

解决:

修改/etc/sysctl.conf文件,增加一行:

vm.overcommit_memory = 1

然后执行命令:sysctl -p

告警3:

2865:M 01 Nov 17:36:36.055 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

解决:

Create following file:

vi /etc/systemd/system/disable-thp.service

and paste there following content:

[Unit]

Description=Disable Transparent Huge Pages (THP)

[Service]

Type=simple

ExecStart=/bin/sh -c “echo ‘never’ > /sys/kernel/mm/transparent_hugepage/enabled && echo ‘never’ > /sys/kernel/mm/transparent_hugepage/defrag”

[Install]

WantedBy=multi-user.target

Save the file and reload SystemD daemon:

systemctl daemon-reload

you can start the script and enable it on boot level:

systemctl start disable-thp

systemctl enable disable-thp

附录2:Redis 数据备份与恢复

备份数据:

127.0.0.1:6379> save

OK

该命令将在 redis 安装目录中创建dump.rdb文件。

另创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

127.0.0.1:6379> BGSAVE

Background saving started

恢复数据:

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令,如下所示:

redis 127.0.0.1:6379> CONFIG GET dir

1) “dir”

2) “/usr/local/redis/bin”

以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis/bin。

附录3:Redis 性能测试

Redis 性能测试是通过同时执行多个命令实现的。

redis-benchmark [option] [option value]

以下实例同时执行 10000 个请求来检测性能:

$ redis-benchmark -n 10000  -q

以下实例使用了多个参数来测试 redis 性能:

$ redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q

SET: 146198.83 requests per second

LPUSH: 145560.41 requests per second

以上实例中主机为 127.0.0.1,端口号为 6379,执行的命令为 set,lpush,请求数为 10000,通过 -q 参数让结果只显示每秒执行的请求数。

附录4:Redis 客户端连接

最大连接数:maxclients 的默认值是 10000,可以在 redis.conf 中对这个值进行修改。

config get maxclients

1) “maxclients”

2) “10000”

安装配置samba

一、环境:

CentOS 7.2

Samba 4.8.3

二、需求:

使用Samba搭建文件服务器。

(1)smbgrp组成员(tom,jack,david)可以修改及删除betterit360-publicdocs共享文件夹下目录名、文件名及文件内容。

(2)smbgrp组成员(tom,jack,david)可以修改及删除betterit360-personaldocs共享文件夹下自己创建的目录、文件,但不能修改及删除别人创建的目录、文件,也不能在别人创建的目录下创建子目录或文件,只可以查看。

(3)所有人员无需身份验证即可访问betterit360-tools共享文件夹,但只能查看,不能修改、删除。

三、安装及配置:

# yum -y install samba

查看安装版本:

# yum list installed | grep samba

# cd /etc/samba/

# mv smb.conf smb.conf.ori //备份默认配置文件

# vi smb.conf //创建新的配置文件

写入如下内容:

[global]

        workgroup = SAMBA

        security = user

        passdb backend = tdbsam

        printing = cups

        printcap name = cups

        load printers = yes

        cups options = raw

        map to guest = Bad User

[betterit360publicdocs]

       path = /sambashare/betterit360-publicdocs

       public = no

       create mask = 0775

       directory mask = 0775

       writable = yes

       valid users = @smbgrp

[betterit360-personaldocs]

       path = /sambashare/betterit360-personaldocs

       public = no

       create mask = 1744

       force create mode = 1744 //强制设置创建文件的默认权限,1表示设置sticky

       directory mask = 1755

       force directory mode = 1755 //强制设置创建目录的默认权限,1表示设置sticky

       writable = yes

       valid users = @smbgrp

[betterit360tools]

       path = /sambashare/betterit360tools

       public = yes

       writable = no    //所有人员无需身份验证即可查看及修改:writable = yes

保存并退出。

创建用户:

# groupadd smbgrp

# useradd -g smbgrp -M -s /sbin/nologin tom

# useradd -g smbgrp -M -s /sbin/nologin jack

# useradd -g smbgrp -M -s /sbin/nologin david

# smbpasswd -a tom

New SMB password:

Retype new SMB password:

Added user tom.

# smbpasswd -a jack

New SMB password:

Retype new SMB password:

Added user jack.

# smbpasswd -a david

New SMB password:

Retype new SMB password:

Added user david.

创建共享目录并设置权限:

# mkdir -p /sambashare

# mkdir -p /sambashare/betterit360-publicdocs

# mkdir -p /sambashare/betterit360-personaldocs

# mkdir -p /sambashare/betterit360-tools

# chmod -R 775 /sambashare/betterit360-publicdocs

# chmod -R 775 /sambashare/betterit360-personaldocs

# chmod -R o+t /sambashare/betterit360-personaldocs //此步若省略,则betterit360-personaldocs目录下创建的目录名、文件名,其他用户可以修改等。

# chmod -R 775 /sambashare/betterit360-tools

# chgrp -R smbgrp /sambashare/betterit360-publicdocs

# chgrp -R smbgrp /sambashare/betterit360-personaldocs

# chgrp -R smbgrp /sambashare/betterit360-tools

启动Samba:

# testparm    //测试Samba配置文件是否正确

# systemctl start smb //启动Samba

注:

systemctl restart smb //重启

systemctl enable smb //修改为开机启动

systemctl status smb //查看状态

四、 客户端测试访问(可以使用windows客户端测试,更直观):

示例图 :

附录:

windows 10 无法访问 CentOS 7 的 SMB 共享文件问题解决

不同的问题症状可参考如下不同的解决办法:

(1)修改 Win10 策略。按window+R键输入gpedit.msc 来启动本地组策略编辑器。依次找到“计算机配置-管理模板-网络-Lanman工作站”这个节点,在右侧内容区可以看到“启用不安全的来宾登录”这一条策略设置。状态是“未配置”,双击它,将其状态修改为“已启用”并单击确定按钮。

(2)进入Control Panel\Programs,点击【Turn Windows feautres on or off】,勾选 SMB 1.0/CIFS File Sharing Support 下的 SMB 1.0/CIFS Client 和 SMB 1.0/CIFS Server,点击【ok】,然后,重启电脑。

Linux History操作日志配置

History记录了用户操作命令,但没有记录来源ip地址、操作用户、操作时间等,且用户可以清空History记录,一旦服务器出现问题,很难调查取证和审计用户操作。

在没有堡垒机的情况下,可以通过logger将History中的操作命令记录到系统日志中。此方法实时记录用户操作,且记录来源ip地址、操作用户、操作时间、操作命令等。

HISTORY日志配置步骤:

1.使用root权限修改/etc/profile文件,增加 history操作日志配置,内容如下:

export HISTTIMEFORMAT=”[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null|awk ‘{print $NF}’|sed -e ‘s/[()]//g’`]”

export PROMPT_COMMAND=’\

if [ -z “$OLD_PWD” ];then

export OLD_PWD=$PWD;

fi;

if [ ! -z “$LAST_CMD” ] && [ “$(history 1)” != “$LAST_CMD” ];then

logger -t `whoami`_shell_cmd “[$OLD_PWD]$(history 1)”;

fi;

export LAST_CMD=”$(history 1)”;

export OLD_PWD=$PWD;’

2.执行命令,使配置内容立即生效

source /etc/profile

3.配置完成后重新启动rsyslog服务

service rsyslog restart

4.日志记录文件及日志格式

logger命令默认的日志保存在 /var/log/messages中。

日志格式如下:

如查看示例图中user1相关操作命令,可执行命令:

grep ‘user1_shell_cmd’ /var/log/messages

安装Docker-CE

环境版本:

# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

安装Docker-ce步骤:

1.移除旧的版本:

$ sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-selinux \

docker-engine-selinux \

docker-engine

2.安装一些必要的系统工具:

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加软件源信息(示例为阿里云):

$ sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.更新 yum 缓存: $ sudo yum makecache fast

5.安装 Docker-ce: $ sudo yum -y install docker-ce

6.启动 Docker 后台服务: $ sudo systemctl start docker

7.查看安装后的docker版本:

# yum list installed | grep docker

containerd.io.x86_64                 1.2.5-3.1.el7                  @docker-ce-stable

docker-ce.x86_64                     3:18.09.6-3.el7                @docker-ce-stable

docker-ce-cli.x86_64                 1:18.09.6-3.el7                @docker-ce-stable

附录:安装特定版本docker-ce

1.下载rpm包https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

2.安装rpm包

yum install -y /path/docker-cexxx.rpm

或使用如下方法安装特定版本(示例为 17.09.0 ):

yum list docker-ce –showduplicates|sort -r

yum install docker-ce-17.09.0.ce-1.el7.cnetos -y