运维随笔

笔记


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

redis高可用集群配置

发表于 2020-07-01 | 更新于: 2022-06-05 | 分类于 Linux
字数统计: 518 | 阅读时长 ≈ 2

一 主机

角色 IP 服务
master 192.168.0.56 redis
slave 192.168.0.58 redis redis-Sentinel

二 安装redis

1
yum install redis

三 配置主从

  • master节点
1
2
3
4
5
6
7
vim redis.conf
# 开启所有地址连接(根据实际情况配置)
bind 0.0.0.0
# redis添加认证密码test123 (可不设置,如果设置各节点密码保持一致)
requirepass test123
# 连接master节点密码 (如果设置认证密码,配置该项)
masterauth test123
  • slave节点
1
2
3
4
5
6
7
8
9
vim redis.conf
# 开启所有地址连接(根据实际情况配置)
bind 0.0.0.0
# redis添加认证密码test123 (可不设置,如果设置各节点密码保持一致)
requirepass test123
# 配置为从节点(配置为集群从节点只需这一句)
slaveof 192.168.0.56 6379
# 连接master节点密码 (如果设置认证密码,配置该项)
masterauth test123

检查主从节点

  • master节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
master节点redis信息
[root@test2 ~]# systemctl start redis
[root@test2 ~]# redis-cli
127.0.0.1:6379> AUTH test123
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
  • slave节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
slave节点redis信息
[root@test3 etc]# systemctl start redis
[root@test3 etc]# redis-cli
127.0.0.1:6379> AUTH test123
OK
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.0.56
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:15
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
  • 添加键值测试同步

1

四 配置redis哨兵(Sentinel)实现高可用

redis-sentinel是redis自带的功能,安装redis服务自带该服务。启动服务方式:systemctl start redis-sentinel.service

1
2
3
4
5
6
7
8
9
vim redis-sentinel.conf
# 允许所有地址连接sentinel
bind 0.0.0.0
# 侦测master节点,1表示当有一个sentinel服务发现master宕机后开始切换master节点
sentinel monitor mymaster 192.168.0.56 6379 1
# 连接master节点的密钥
sentinel auth-pass mymaster test123
# 5秒内master没有响应,就认为SDOWN (可不添加)
sentinel down-after-milliseconds mymaster 5000

五 redis客户端连接集群

redisk客户端连接方式
redis客户端连接redis集群,连接的不是redis服务器的地址,而是Sentinel服务的地址和端口,当master节点故障时,Sentinel会自动设置slave为master并连接到master,就实现了redis的高可用

2

greenplum部署-单机版

发表于 2020-07-01 | 更新于: 2022-06-05 | 分类于 Linux
字数统计: 671 | 阅读时长 ≈ 3

1 修改Linux内核参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# vi /etc/sysctl.conf 

net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.sem = 250 64000 100 512
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
net.ipv4.conf.all.arp_filter = 1

2 修改Linux最大限制

1
2
3
4
5
6
7
8
# vi /etc/security/limits.conf 


# greenplum configs
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

3 关闭selinux

vim /etc/selinux/conf

1
2
3
SELINUX=disabled

# setenforce 0

4 greenplum安装

4.1 创建数据库用户

1
2
3
4
5
groupadd -g 530 gpadmin
useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin
passwd gpadmin

# gpadmin用户密码gpadmin

4.2 修改hosts

设置集群解析

1
2
3
# vim /etc/hosts

192.168.0.174 mdw

4.3 修改主机名 mdw

1
hostnamectl set-hostname mdw

4.4 下载安装包

下载合适的版本rpm包和postgis插件

官网 https://network.pivotal.io/products/pivotal-gpdb#/releases/1683

1

2

4.5 rpm安装

3

1
2
3
4
5
yum install greenplum-db-6.2.1-rhel7-x86_64.rpm

# 默认安装到/usr/local,授权给gpadmin
chown -R gpadmin /usr/local/greenplum*
chgrp -R gpadmin /usr/local/greenplum*

4.6 创建instance需要的目录

1
2
3
4
5
6
7
8
9
mkdir -p /home/gpdata/master
mkdir -p /home/gpdata/gp1
mkdir -p /home/gpdata/gp2
mkdir -p /home/gpdata/gp3
mkdir -p /home/gpdata/gp4
# 修改目录属主
chown -R gpadmin:gpadmin /home/gpdata
chown -R gpadmin:gpadmin /home/gpdata/master
chown -R gpadmin:gpadmin /home/gpdata/gp*

4.7 切换用户gpadmin

1
su gpadmin

4.8 修改gpadmin用户环境变量

修改/home/gpadmin/.bashrc 和 bash_profile 文件,增加如下内容。

1
2
3
4
5
source /usr/local/greenplum-db-5.5.0/greenplum_path.sh      # greenplum安装目录的变量(自带)
export MASTER_DATA_DIRECTORY=/home/gpadmin/master/gpseg-1 # 数据目录
export PGPORT=5432 # 数据库端口,可不设置,如果变更端口设置
export PGUSER=gpadmin # 数据库管理员用户
export PGDATABASE=gpdb # 自动创建的数据库

4.9 设置节点host

1
2
3
4
5
vim /home/gpadmin/all_hosts
写入
mdw

# 添加一行mdw(单机版只有一个host)

4.10 配置用户SSH无密码登录,单机版也要设置

1
2
3
4
[root@gpmaster ~]# su - gpadmin
[gpadmin@gpmaster .ssh]$ ssh-keygen -t rsa
[gpadmin@gpmaster .ssh]$ ssh mdw cat /home/gpadmin/.ssh/id_rsa.pub >> authorized_keys
[gpadmin@gpmaster .ssh]$chmod 600 authorized_keys

4.11 权限互通

1
gpssh-exkeys -f all_hosts

4.12 创建、编辑初始化文件

1
2
3
4
5
6
7
8
9
vim initgp_config
写入:
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/gp1 /home/gpadmin/gp2 /home/gpadmin/gp3 /home/gpadmin/gp4)
MASTER_HOSTNAME=mdw
MASTER_PORT=5432
MASTER_DIRECTORY=/home/gpadmin/master
DATABASE_NAME=gpdb

4.13 设置节点服务器

1
2
3
4
vim seg_hosts
写入:
mdw
# 本例单机,只有mdw这一台

4.14 初始化GP

1
gpinitsystem -c initgp_config -h seg_hosts

5 连接GP

5.1 psql登录修改密码(gpadmin用户操作)

1
2
3
4
5
# su gpadmin
# psql
修改数据库密码为zhjx123
alter role gpadmin with password 'zhjx123';
\q

5.2 远程连接配置

1
2
3
4
5
6
7
8
vim /home/gpdata/master/gpseg-1/postgresql.conf
修改:
#listen_addresses = '*',去#注释


vim /home/gpdata/master/gpseg-1/pg_hba.conf
添加:
host all gpadmin 0.0.0.0/0 md5

5.3 重新加载配置文件

1
gpstop -u

5.4 其他命令

1
2
3
4
gpstart              # 正常启动
gpstop # 正常关闭
gpstop -M fast # 快速关闭
gpstop –r # 重启

OpenVPN配置参数详解

发表于 2020-03-12 | 更新于: 2022-06-05 | 分类于 Linux
字数统计: 1.7k | 阅读时长 ≈ 7

OpenVPN 配置参数详解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141

# #号和;号开头的都是注释
# 设置监听 IP,默认是监听所有 IP
#local 116.6.45.23
#Openvpn 服务器监听端口
port 2194
# 设置用 TCP 还是 UDP 协议?
;proto tcp
proto udp
# 设置创建 tun 的路由 IP 通道,还是创建 tap 的以太网通道
# 路由 IP 容易控制,所以推荐使用它;但如果如 IPX 等必须
# 使用第二层才能通过的通讯,则可以用 tap 方式,tap 也
# 就是以太网桥接
dev tun
# 配置 VPN 使用的网段,OpenVPN 会自动提供基于该网段的 DHCP
# 服务,但不能和任何一方的局域网段重复,保证唯一
# server 端 ip 默认会设为.1 的地址。
server 10.9.0.0 255.255.255.0
# 为客户端创建对应的路由,以另其通达公司网内部服务器
# 但记住,公司网内部服务器也需要有可用路由返回到客户端
push "route 172.18.2.0 255.255.255.0"
# 维持一个客户端和 virtual IP 的对应表,以方便客户端重新
# 连接可以获得同样的 IP
ifconfig-pool-persist /usr/local/etc/ipp.txt
# 用 OpenVPN 的 DHCP 功能为客户端提供指定的 DNS、WINS 等
push "dhcp-option DNS 172.18.2.23"
push "dhcp-option DNS 202.96.128.86"
# 这里是重点,必须指定 SSL/TLS root certificate (ca),
# certificate(cert), and private key (key)
# ca 文件是服务端和客户端都必须使用的,但不需要 ca.key
# 服务端和客户端指定各自的.crt 和.key
# 请注意路径,可以使用以配置文件开始为根的相对路径,
# 也可以使用绝对路径
# 请小心存放.key 密钥文件
ca /usr/local/etc/keys/ca.crt
cert /usr/local/etc/keys/server.crt
key /usr/local/etc/keys/server.key
# 指定 Diffie hellman parameters.
dh /usr/local/etc/keys/dh1024.pem
#用于吊销客户证书
crl-verify /usr/local/etc/keys/vpncrl.pem
#增强安全性
# Generate with:
# openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be 0
# on the server and 1 on the clients.
tls-auth /usr/local/etc/keys/ta.key 0
# 设置服务端检测的间隔和超时时间 每 10 秒 ping 一次,如果 120 秒没有回应则认为对方已经 down
keepalive 10 120
# 使用 lzo 压缩的通讯,服务端和客户端都必须配置
comp-lzo
# 输出短日志,每分钟刷新一次,以显示当前的客户端
status /var/log/openvpn-status.log
#设置日志要记录的级别。
#0 只记录错误信息。
#4 能记录普通的信息。
#5 和 6 在连接出现问题时能帮助调试
#9 是极端的,所有信息都会显示,甚至连包头等信息都显示(像 tcpdump)
verb 4
#相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中。
mute 20
# 让 OpenVPN 以 nobody 用户和组来运行(安全)
user nobody
group nobody
# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
# 重启时仍保留一些状态
persist-key
persist-tun
###################其他参数 ######################################

# 为特定的客户端指定 IP 或指定路由,该路由通常是客户端后面的
# 内网网段,而不是服务端连接的网段
# ccd 是/etc/openvpn 下的目录,其中建有希望限制的客户端 Common
# Name 为文件名的文件,并通过下面的命令写入固定 IP 地址
# 例如 Common Name 为 client1,则在/etc/openvpn/ccd/client1 写有:
# ifconfig-push 10.9.0.1 10.9.0.2
client-config-dir /usr/local/etc/ccd
# 若客户端希望所有的流量都通过 VPN 传输,则可以使用该语句
# 其会自动改变客户端的网关为 VPN 服务器,推荐关闭
# 一旦设置,请小心服务端的 DHCP 设置问题
;push "redirect-gateway"
# 如果您希望有相同 Common Name 的客户端都可以登陆
# 也可以注释下面的语句,推荐每个客户端都使用不用的 Common Name
# 常用于测试
;duplicate-cn
# 设置最大用户数
#max-clients 3
# 打开管理界面,可以定义监控的 IP 和端口
management localhost 7505
# 缺省日志会记录在系统日志中,但也可以导向到其他地方
# 建议调试的使用先不要设置,调试完成后再定义
;log /var/log/openvpn/openvpn.log
;log-append /var/log/openvpn/openvpn.log
# 配置为以太网桥模式,但需要使用系统的桥接功能
# 这里不需要使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
#记录日志,每次重新启动 openvpn 后删除原有的 log 信息
log /var/log/openvpn.log
#和 log 一致,每次重新启动 openvpn 后保留原有的 log 信息,新信息追加到文件最后
;log-append openvpn.log
#定义运行 openvpn 的用户
user nobody
group nobody
#Run script or shell command cmd to validate client
#virtual addresses or routes. 具体查看 manual
;learn-address ./script
#其它的一些需要 PUSH 给 Client
#用于记录某个 Client 获得的 IP 地址,类似于 dhcpd.lease 文件,
#防止 openvpn 重新启动后“忘记”Client 曾经使用过的 IP 地址
ifconfig-pool-persist ipp.txt
#Bridge 状态下类似 DHCPD 的配置,为客户分配地址,由于这里工作在路由模式,所以不使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
# 随机选择一个 Server 连接,否则按照顺序从上到下依次连接
;remote-random
# 始终重新解析 Server 的 IP 地址(如果 remote 后面跟的是域名) ,
# 保证 Server IP 地址是动态的使用 DDNS 动态更新 DNS 后,Client 在自动重新连接时重新解析 Server 的
IP 地址
# 这样无需人为重新启动,即可重新接入 VPN
resolv-retry infinite
# 在本机不邦定任何端口监听 incoming 数据,Client 无需此操作,除非一对一的 VPN 有必要
nobind
# 如果你使用 HTTP 代理连接 VPN Server,把 Proxy 的 IP 地址和端口写到下面
# 如果代理需要验证,使用 http-proxy server port [authfile] [auth-method]
# 其中 authfile 是一个 2 行的文本文件,用户名和密码各占一行,auth-method 可以省略,详
细信息查看 Manual
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
# Server 使用 build-key-server 脚本什成的,在 x509 v3 扩展中加入了 ns-cert-type 选项
# 防止 VPN client 使用他们的 keys + DNS hack 欺骗 vpn client 连接他们假冒的 VPN Server
# 因为他们的 CA 里没有这个扩展
ns-cert-type server
a.定义 tun 为使用路由方式的 VPN
b.小心处理证书的路径,.key 文件要保存好,特别是 ca.key。
(ca.key 不需要在 OpenVPN 中用到,可以另外保存)
注意,每个虚拟 tun 网卡都是成对的,只有 inet addr 标识的才是用于 VPN 通讯。并且必须在/30 网段

history命令优化

发表于 2019-12-27 | 更新于: 2022-06-05 | 分类于 Linux
字数统计: 357 | 阅读时长 ≈ 1

history命令添加 时间/IP/用户

1
2
3
# history命令添加时间/ip/用户
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTTIMEFORMAT="[%F %T] [`whoami`] [${USER_IP}] "

效果:
1

优点
只添加时间/ip/用户,可以显示操作过的所有命令,汇总显示。记录文件系统默认路径:用户/.bash_history 。
例如:vim /root/.bash_history

history命令根据用户/ip/时间生成操作日志文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 设置命令显示时间/ip/用户
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}] "
# history 日志根据用户及登录时间生成操作日志
LOGIP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
LOG_DIR=/var/log/history
if [ -z $LOGIP ]
then
LOGIP=`hostname`
fi
if [ ! -d $LOG_DIR ]
then
mkdir -p $LOG_DIR
chmod 777 $LOG_DIR
fi
if [ ! -d $LOG_DIR/${LOGNAME} ]
then
mkdir -p $LOG_DIR/${LOGNAME}
chmod 777 $LOG_DIR/${LOGNAME}
fi
export HISTSIZE=4096
LOGTM=`date +"%Y%m%d_%H%M%S"`
export HISTFILE="$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM"
chmod 777 $LOG_DIR/${LOGNAME}/*-* 2>/dev/null

效果:
2

优点
添加时间/ip/用户,可以显示操作过的命令,每次终端登录退出生成一个操作记录文件,history命令只能显示当前终端登录所作过的操作,查看以往登录的操作记录,需要单独去记录文件种查看。适用与较为严谨的生成环境。
记录文件位置:/var/log/history/

JMeter之POST上传图片测试

发表于 2019-10-18 | 更新于: 2022-03-31 | 分类于 Linux
字数统计: 140 | 阅读时长 ≈ 1

1 JMeter配置

1.1 创建线程组

阅读全文 »
1…91011…32
OperationMAN

OperationMAN

日常运维文档整理。

157 日志
9 分类
107 标签
E-Mail GitHub 码云 Linux命令大全 鸟哥的私房菜 RUNOOB.com 陈沙克日志 Bitnami Font Awesome
友情链接
  • Next优化
  • Next深度优化
© 2023 OperationMAN | 豫ICP备 17032296 号