centos7关闭防火墙:sudo
systemctl stop firewalld.service
禁止防火墙开机启动:systemctl disable firewalld.service
开启某个端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:firewall-cmd --reload
查看防火墙状态:firewall-cmd --state
1 安装jdk
查看是否安装了jdk:yum list installed | grep java
查看jdk版本:java -version
查看yum库中的java安装包: yum -y list java*
安装jdk: yum -y install java
2 安装MySQL数据库(在centos7下,centos6不支持)
(1)另外一种安装方式
yum install mariadb-server -y //如果已安装可以省略
systemctl start mariadb.service //启动服务
systemctl enable mariadb.service //开机启动服务
mysql -u root -p //登录mysql
(2)修改密码:
vim /etc/my.cnf
添加:skip-grant-tables
解决数据库远程不能访问的问题:
mysql -uroot; 登陆MySQL
use mysql;
update user set password=PASSWORD("123")where user="root"; 更改密码为 newpass
update user set host='%' where user='root' and host='127.0.0.1'; 允许远程访问
flush privileges; 更新权限
quit; 退出
(3)升级mariadb数据库
配置一下yum源:vi /etc/yum.repos.d/MariaDB.repo
在yun源中加入下列内容:
# MariaDB 10.1 CentOS repository list - created 2016-12-01 03:36 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
安装mariadb:yum -y install MariaDB-server MariaDB-client
mariadb操作:
systemctl start mariadb --启动服务
systemctl enable mariadb --设置开机启动
systemctl restart mariadb --重启
systemctl stop mariadb.service --停止mariadb
3 安装redis(暂时不能开机启动)
yum install epel-release --下载fedora的epel仓库
yum install redis -- 安装redis数据库
nohup redis-server -- 开启redis服务
redis-cli -- 进入redis服务
redis-cli shutdown --关闭服务
redis-cli config set protected-mode no --关闭保护模式
配置/etc/redis.conf。在其中可以添加:
bind 10.211.55.8 --绑定服务器ip
protected-mode no --取消保护模式
requirepass 123456789 --设置登陆密码(推荐)
当遇到redis不能连接的问题时执行命令:
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
4 安装mongodb
创建一个mongodb-org.repo 源文件
vi /etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
安装mongodb:
yum install -y mongodb-org
启动mongodb:
service mongod start
chkconfig mongod on
设置远程访问:vim /etc/mongod
.conf|
grep
-
v
"#"
|
grep
-
v
"^$"
将bindIp: 127.0.0.1注释掉去掉保护模式
查看安装结果 rpm -qa |grep mongodb
卸载:yum erase $(rpm -qa | grep mongodb-org)
以上是安装单机MongoDB,下面开始安装MongoDB集群
(1)集群方式有三种:Replica Set、Sharding、Master-Slaver三种方式。
常用的主要是副本集和主从模式,主从模式比较好理解,即一个master和一个slave节点,master节点负责读写,slave在master宕机的时候可以提供读服务,当然也可以通过配置参数实现在访问量高的时候让slave节点也提供读服务;而副本集模式比较特殊,但这种模式也是比较稳定,可靠,同时在一定的情况下能够实现自动容错的机制
(2)准备三台虚拟机
192.168.71.132、192.168.71.133、192.168.71.134
(3)在每个虚拟机中都创建目录:/usr/soft 用来存放数据
(4)寻找到mongo文件:find / -name mongo 这时会在 /usr/bin 目录发现mongo文件并进入到该目录 cd /usr/bin
(5)执行明令 nohup mongod --dbpath /usr/soft --replSet test --port 27018 & 这个是用来创建一个test节点,并制定数据存放目录因为默认目录找不到,另外指定端口因为原先的端口27017是处于被占用状态的。另外需要处于后台运行状态
(6)执行 ./mongo 192.168.71.132:27018 进入到mongo节点内,
(7)进入到节点内之后执行命令用来添加节点
cfg={
_id:"test",
members:[
{_id:0,host:'192.168.71.132:27018',priority:2},
{_id:1,host:'192.168.71.133:27018',priority:1},
{_id:2,host:'192.168.71.134:27018',arbiterOnly:true}
]
};
(8)将节点设置进去 rs.initiate(cfg);
(9)查看集群运行状态 rs.status();
5 安装maven
下载镜像:wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
安装maven:yum -y install apache-maven
6 安装jenkisn
安装镜像:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
导入密钥:sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
安装jenkins:yum install jenkins
启动jenkins:service jenkins restart
找到Jenkins目录下config.xml文件中的<useSecurity>、<authorizationStrategy>、<securityRealm>这三个属性,并将其中的属性值清除(注意只清除属性值,不清除属性)
7 安装activemq(所有操作都需要在activemq的bin目录下)
创建目录并进入目录:mkdir /usr/activemq
下载镜像:wget http://archive.apache.org/dist/activemq/apache-activemq/5.9.0/apache-activemq-5.9.0-bin.tar.gz
解压:tar -xzvf apache-activemq-5.9.0-bin.tar.gz
赋予权限:chmod 777 activemq
进入bin目录中启动:./activemq start
指定日志文件启动:/activemq start >tmp/smlog
后台启动:nohup ./activemq start >/tmp/smlog
查看是否启动成功:ps -ef | grep activemq
验证:http://ip地址:8161/admin/index.jsp
用户名:admin 密码:admin
8 安装ribbitmq
(1)下载并安装erlang仓库:
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum -y install erlang
erl -v
ctrl + c 退出
(2)安装ribbitmq
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm
yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm
注:
如果报:Requires: socat
更新源:
wget –no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
yum安装socat
yum install socat
运行:
rabbitmq-server start --前台运行
rabbitmq-server -detached --后台运行
(3)安装插件
rabbitmq-plugins enable rabbitmq_management --启动web管理界面,默认的登陆账号为:guest 密码为:guest 默认用户guest只能本地访问
rabbitmqctl add_user admin admin --增加访问用户
rabbitmqctl set_user_tags admin administrator --设置角色: 用户设置为administrator才能远程访问
set_permissions -p / admin ".*" ".*" ".*" --设置默认vhost(“/”)访问权限
vim /etc/rabbitmq/rabbitmq.config --编辑添加一下内容,如果没有该文件则添加
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
]
浏览器打开 http://ip地址:15672
(4)启动端口
netstat -tnlp|grep 5672 --5672是消息代理端口,15672是web管理界面的端口
vi /etc/sysconfig/iptables --把15672端口加进去。然后重启service iptables restart
9、centos7安装rabbitmq
(1)启动网卡:vi /etc/sysconfig/network-scripts/ifcfg-ens33
将最后一个no换为yes
重启网络:sudo service network restart
(1)先配置安装好jdk环境
(2)安装erlang
# 准备
yum -y update
yum install epel-release
yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64
# 安装erlang
yum install -y erlang
(3)安装rabbitmq
下载:wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
安装:yum install -y rabbitmq-server-3.6.6-1.el7.noarch.rpm
启动:service rabbitmq-server start
设置开机启动:systemctl enable rabbitmq-server
(4)设置远程可访问
# 启用web管理界面
rabbitmq-plugins enable rabbitmq_management
# guest用户只能用于localhost访问
# 添加新用户及授权
rabbitmqctl add_user fort fort
rabbitmqctl set_user_tags fort administrator
rabbitmqctl set_permissions -p / fort '.*' '.*' '.*'
rabbitmqctl list_permissions
# 访问ip:15672即可进入管理界面
(5)设置关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
10、搭建mq集群(以两个节点为实例,多个节点也是如此)
(1)环境:两台服务器作为两个节点,把node-003加入node-002
192.168.95.129 node-002
192.168.95.130 node-003
(2)配置环境host,两个节点的host都需要包含每个节点的信息,信息要一致。下面是在node-002中的操作。node-003中也需要做相同一样的操作(把hostname改为 node-003,多个节点同理):
a:vi /etc/hosts 将其他所有信息都使用#注释掉或者直接删掉,然后写入最新信息并保存
192.168.95.129 node-002
192.168.95.130 node-003
b:vi /etc/hostname 配置虚拟机别名并保存
node-002
c:vi /etc/sysconfig/network 重置虚拟机网络连接
NETWORKING=yes
HOSTNAME=node-002
d:service network restart 重启网络
reboot 重启虚拟机
hostname 查看虚拟机别名
(3)配置erlang因为rabbitmq集群是基于erlang同步的,所以先配置使各个节点 中 .erlang.cookie文件一致。(这里是个坑)
a:find / -name .erlang.cookie 查询到所有的cookie信息,可能会查询到两个cookie信息即/root/.erlang.cookie和/var/lib/rabbitmq/.erlang.cookie两个,必须要将这两个cookie信息保持一致
b:scp /root/.erlang.cookie root@node-003:/root 使两个虚拟机的cookie信息也必须保持一致。另外一个虚拟机的两个cookie信息也必须保持一致
c:进入到rabbitmq的sbin目录下:/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/sbin
./rabbitmq-server -detached
ps aux|grep rabbitmq
ping node-003 查看网络是否相连
./rabbitmqctl stop_app 关闭当前节点
./rabbitmqctl join_cluster rabbit@node-002 连接节点,默认是磁盘节点,如果内存节点./rabbitmqctl join_cluster --ram rabbit@node-00
rabbitmqctl start_app 启动当前节点
./rabbitmqctl cluster_status 查看当前节点状态
(4)重新创建mq用户。两个都需要创建
# 启用web管理界面
rabbitmq-plugins enable rabbitmq_management
# guest用户只能用于localhost访问
# 添加新用户及授权
rabbitmqctl add_user fort fort
rabbitmqctl set_user_tags fort administrator
rabbitmqctl set_permissions -p / fort '.*' '.*' '.*'
rabbitmqctl list_permissions
# 访问ip:15672即可进入管理界面
(5)在页面上配置镜像模式
参数解释:
name: 为策略名称 ,我命名为 winy-ha
Pattern: 为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue,这里我设置为匹配全部
Apply to:使用对象
Priority:配置了多个策略时候的优先级,值越大,优先级越高。(单个策略配置意义不大)
注意:没有指定优先级的消息会将优先级以0对待。 对于超过优先级队列所定最大优先级的消息,优先级以最大优先级对待
Definition: 为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如["3rabbit@F","rabbit@G"]这样指定为F与G这2台机器。)
(6)最后添加一个队列查看是否生效
(7)如果发现启动不起来,就进入到/var/lib/rabbitmq目录然后删除mnesia文件