java 单机接口限流处理方案
253
2022-11-06
#yyds干货盘点# saltshake安装配置
后台:>= 3.6
Mysql >= 5.7.8 (支持Json的Mysql都可以)
Redis(无版本要求)
RabbitMQ (无版本要求)
Python 软件包见requirements.txt
Supervisor (4.0.0.dev0 版本 默认pip安装的不支持python3) 请使用此命令安装:pip install git+>= 9.0
一.安装 saltshaker_api
1 安装
Redis/opt/redis-3.2.8/src/redis-server /opt/redis-3.2.8/redis.conf
2 安装RabbitMQ
要先安装erlang,尽量用较新的版本,先加入yum源
[root@localhost yum.repos.d]# cat rabbitmq_erlang.repo[rabbitmq_erlang]name=rabbitmq_erlangbaseurl=yum.repos.d]# yum -y install erlang
如果内网较慢,可以在先下载,再复制到测试环境
[root@localhost yum.repos.d]# yum -y install erlang --downloadonly --downloaddir=./
安装RabbitMQ,先加入yum源
[root@localhost yum.repos.d]# cat rabbitmq-server.repo[bintray-rabbitmq-server]name=bintray-rabbitmq-rpmbaseurl=yum.repos.d]# yum -y install rabbitmq
ui界面: saltshaker saltshaker
4.安装mysql,Mysql >= 5.7.8 (支持Json的Mysql都可以) 同样的mysql也可以先下载,然后复制到测试网络
[root@vm-17-11-centos tmp]# yum -y install mysql-community-client mysql-community-devel mysql-community-libs mysql-community-libs-compat mysql-community-server mysql-community-common --downloadonly --downloaddir=./
如果是升级的mysql,可能会有报错 Native table 'performance_schema'.'session_variables' has the wrong structure
处理方法:在 /etc/my.cnf 加入一行,也可以先手工执行一次,再有报错再加入,网上说法不一
#mysql_upgrade -u root -p --forceroot 1qaz2wsx
5 安装python3
wget /opt/Python-3.6.2./configure --prefix=/opt/Python-3.6make && make installmv /bin/python /bin/python26ln -s /opt/Python-3.6/bin/python3.6 /bin/pythonmv /bin/pip /bin/pip2ln -s /opt/Python-3.6/bin/pip3 /bin/pip修改/usr/bin/yum和/usr/bin/urlgrabber-ext-down两个文件的头文件,即将第一行#!/usr/bin/python 改为 #!/usr/bin/python26
6安装 saltshaker_api
(1)下载安装:
$ cd /opt/$ git clone install -r requirements.txt
(2)导入FLASK_APP环境变量以便使用Flask CLI工具,路径为所部署的app的路径
$ export FLASK_APP=/opt/saltshaker_api/app.py
#这个文件可修改服务的启动端口,这里我写改为9001,不跟salt-master的9000冲突
(3)初始化数据库表及相关信息,键入超级管理员用户名和密码(数据库的配置见saltshaker.conf,请确保数据库可以连接并已经创建对应的数据库)
$ mkdir /var/log/saltshaker_plus$ flask init输出如下:Enter the initial administrators username [admin]: adminEnter the initial Administrators password:Repeat for confirmation:Create user table is successfulCreate role table is successfulCreate acl table is successfulCreate groups table is successfulCreate product table is successfulCreate audit_log table is successfulCreate event table is successfulCreate cmd_history table is successfulCreate host table is successfulCreate grains table is successfulCreate period_task table is successfulCreate period_result table is successfulCreate period_audit table is successfulCreate sls table is successfulInit 超级管理员 role successfulInit 普通用户 role successfulInit 产品管理员 role successfulInit 用户管理员 role successfulInit 访问控制管理员 role successfulInit user successfulSuccessful
也可以直接导入数据库文件saltshaker_plus.sql, 初始化管理员用户名:admin 密码:admin
mysql> source $HOME/saltshaker_api/saltshaker_plus.sql;
(4)启动Flask App, 成功启动后会启动9000的端口
开发模式$ python $Home/saltshaker_api/app.pyGunicorn模式$ cd $Home/saltshaker_api/ && gunicorn -c gun.py app:app生产模式supervisord.conf 里面的directory配置项修改为自己对应的代码路径$ /usr/local/bin/supervisord -c $Home/saltshaker_api/supervisord.conf
(5)启动Celery (使用生产模式的忽略此步骤,因为在Supervisor里面已经启动Celery)
$ cd $Home/saltshaker_api/ && nohup celery -A app.celery worker --loglevel=info &
如有报错: [2019-07-03 15:25:09,953: ERROR/MainProcess] consumer: Cannot connect to amqp://saltshaker:**@10.132.97.115:5672//: Connection.open: (530) NOT_ALLOWED - access to vhost '/' refused for user 'saltshaker'.
执行:
rabbitmqctl set_permissions -p / saltshaker "." "." ".*"
(6)配置Salt Master
yum install salt-api
创建salt api 认证用户名密码,使用pam认证方式
sudo useradd admin # 必须是admin,如果是其他用户,需要对应修改$HOME/saltshaker_api/saltapi.conf里面的adminsudo passwd admin # 记住admin的密码,稍后配置产品线的时候需要填写
配置saltstack api 拷贝 saltshaker_api/saltapi.conf 到 master配置文件下,开启salt-api的Restful接口(端口为8000)
sudo cp $HOME/saltshaker_api/saltapi.conf /etc/salt/master.d/sudo systemctl restart salt-mastersudo systemctl restart salt-api
参考:安装saltshaker_frontend
要求 Vue.js > 2.0 要求 Node = 8.11.3 LTS
1.安装node.js
wget config set registry install
部署 0.118上用的是直接部署模式,配置文件 src/config/Global.vue 下serverSrc参数,对应自己的服务器域名或地址
nohup npm run dev
编译修改 src/config/Global.vue 下serverSrc参数,对应自己的服务器域名或地址修改 build/webpack.prod.config.js 下publicPath参数,对应自己的服务器域名或地址#npm run build静态文件 修改 nginx.conf 下proxy_pass的参数, 对应自己的服务器域名或地址生成的静态文件在dist目录下面,可使用Nginx等Web服务器进行部署
参考: admin admin
俩个启动命令:
cd /opt/saltshaker_frontend/src && nohup npm run dev &cd /opt/saltshaker_api && nohup python /opt/saltshaker_api/app.py &
如果有时候minion无法刷出信息,报401错误, 执行:pam_tally2 --user=admin --reset ,就可以恢复
/etc/pam.d/system-auth中配置凡是调用 system-auth 文件的服务,都会生效#auth required pam_tally.so deny=5vi /etc/pam.d/sshd#auth required pam_tally.so deny=5 unlock_time=600 no_lock_timepip install salt2018.3.0 -i install salt2019.2.0 -c /etc/salt -dsalt-minion -c /etc/salt -dsalt-api -c /etc/salt -d
测试
salt-apicurl -H "Accept: application/x-yaml" -d username='testuser' -d password='testuser' -d eauth=pam
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~