查看系统是否64位
uname -a
添加用户
useradd -d /usr/www -m www
linux下将目录授权给其他用户的步骤
1. 更改目录所有者命令
chown -R 用户名称 目录名称
chown -R www /usr/www
2. 更改目录权限命令
chmod -R 755 目录名称
chmod -R 755 /usr/www
root用户修改其他用户的密码
在root用户下,运行passwd 来重设的密码
passwd www
chmod u+x somefile 只授予这个文件的所属者执行的权限
正确、安全地停止SpringBoot应用服务
给普通用户加sudo权限
1. 切换到root用户下,运行visudo命令,visudo命令是用来编辑修改/etc/sudoers配置文件
visudo
2. 在/etc/sudoers文件中找到下面一行
root ALL=(ALL) ALL
给www添加sudo权限,再添加一行,使用时无需密码
www ALL=(ALL) NOPASSWD: ALL
# 禁止用户www使用ssh登录
chsh -s /sbin/nologin www
# 这样过一段时间切换用户的时候会出现
linux This account is currently not available
# 所以不能这样操作
## 切换用户
su www
安装JDK1.8
安装maven
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
# 解压到opt目录
tar -xvzf /home/downloads/apache-maven-3.5.4-bin.tar.gz -C /opt
# 编辑系统配置文件 /etc/profile
#set Maven environment
export MAVEN_HOME=/opt/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
# 重新加载系统配置文件
source /etc/profile
/opt/apache-maven-3.5.4/conf/settings.xml
Git
yum install git -y
Jenkins
WAR文件安装
- Jenkins的Web应用程序ARchive(WAR)文件版本可以安装在支持Java的任何操作系统或平台上。
- 要下载并运行Jenkins的WAR文件版本:
- 将最新的稳定Jenkins WAR文件下载 到计算机上的相应目录中。
- 打开下载目录的终端/命令提示符窗口。
- 运行命令java -jar jenkins.war。
- 浏览http://localhost:8083并等待Unlock Jenkins页面出现。
- 继续下面的安装后设置向导。
- 下载速度慢可以先下载的到本地在上传
scp jenkins.war [email protected]:/usr/www/downloads
- 启动Jenkins
java -jar jenkins.war --httpPort=8083 &
# 打开防火墙
firewall-cmd --zone=public --add-port=8083/tcp --permanent
firewall-cmd --reload
修改插件升级地址为清华镜像
1、先保存初始密码
2、停止Jenkins
3、打开文件 .jenkins/hudson.model.UpdateCenter.xml,替换为清华镜像
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
4、启动Jenkins
如果启动后页面一直卡在等待页面,请尝试以下操作
# 在jenkins.war的同级目录下有.jenkins文件夹,赋权限
chown -R www .jenkins/
chmod -R 755 .jenkins/
# 删除.jenkins文件夹
# 重新启动Jenkins
安装前最好可以设置一个速度较快的插件镜像
- 安装后修改插件镜像:系统管理 - 插件管理 - 高级 - 升级站点
- Jenkins插件下载失败两种处理办法
- 镜像地址查询 http://mirrors.jenkins-ci.org/status.html
插件
- Maven Integration 发布maven项目
- Pipeline Maven Integration 在构建前下载最新代码(系统管理 全局工具配置 Pipeline Maven Configuration 勾选Trigger downstream upon result
- publish-over-ssh
确保以下插件已安装
- Git Pipeline for Blue Ocean
配置
Git
- 在凭据管理中新建一个,注意凭据的类型
本地部署项目
执行sudo
# /etc/sudoers文件添加,www为启动Jenkins的用户
www ALL=(ALL) NOPASSWD: ALL
远程部署
- Jenkins部署到远程(Linux服务器)
- 安装插件publish-over-ssh
- CentOS启用ssh密钥登录
- 远程发布时遇到环境变量问题的解放方法:建issue.sh文件,加载环境变量
#!/bin/bash
. /etc/profile
$1 $2
echo $0 $1 $2
Elasticsearch
tar -xvzf elasticsearch-7.0.0 -C /usr/local/
chown -R www /usr/local/elasticsearch-7.0.0/
chmod -R 755 /usr/local/elasticsearch-7.0.0/
Run bin/elasticsearch
# 后台启动命令 /usr/local/elasticsearch-7.0.0/bin/
# Running as a daemonedit
./bin/elasticsearch -d -p pid
# To shut down Elasticsearch, kill the process ID recorded in the pid file:
kill `cat pid`
错误解决
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
# maxfile descriptors为最大文件描述符,设置其大于65536即可。
# 解决方法是修改/etc/security/limits.conf文件,添加“* - nofile65536 * - memlock unlimited”
# “*”表示给所有用户起作用
* - nofile 65536
* - memlock unlimited
# 查看硬限制
ulimit -Hn
# 退出用户重新登录,使配置生效
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
# max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量,系统默认是65530,修改成262144。
# 解决方法是修改/etc/sysctl.conf配置文件,添加vm.max_map_count=262144,记得需要重启机器才起作用
vm.max_map_count=262144
Kibana
tar -xzf kibana-7.0.0-linux-x86_64.tar.gz -C /usr/local/
chown -R www /usr/local/kibana-7.0.0-linux-x86_64/
chmod -R 755 /usr/local/kibana-7.0.0-linux-x86_64/
# 启动
./bin/kibana &
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload
查看端口是否被占用
lsof -i tcp:5601
修改/etc/nginx/nginx.conf
http {
...
upstream kibana_server {
server 127.0.0.1:5601 weight=1 max_fails=3 fail_timeout=60;
}
upstream zipkin_server {
server 127.0.0.1:9411 weight=1 max_fails=3 fail_timeout=60;
}
server {
listen 80;
server_name kibana的域名;
auth_basic "Restricted Access"; # 验证
auth_basic_user_file /etc/nginx/htpasswd.users; # 验证文件
location / {
proxy_pass http://kibana_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 80;
server_name zipkin的域名;
auth_basic "Restricted Access"; # 验证
auth_basic_user_file /etc/nginx/htpasswd.users; # 验证文件
location / {
proxy_pass http://zipkin_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
允许外网访问
修改kibana.yml
server.host: "0.0.0.0"
Filebeat
- tar -xzf filebeat-6.4.2-linux-x86_64.tar.gz -C /usr/local/
- 直连Elasticsearch
- 加载模板,如果是Logstash输出一定不能执行下面这句
./filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
filebeat.yml:elasticsearch的配置
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /usr/logs/*/hehe/haha.log
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["172.19.102.231:9200"]
测试启动,看到一堆日志在滚动,很可能是正常工作了
./filebeat -e -c filebeat.yml -d "publish"
转入后台运行
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
Redis
安装
tar xzf redis-5.0.4.tar.gz -C /usr/local/
chown -R www /usr/local/redis-5.0.4/
chmod -R 755 /usr/local/redis-5.0.4/
cd /usr/local/redis-5.0.4/
make
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
启动
进入redis-5.0.4目录
src/redis-server
设置密码(永久有效)
redis.conf中requirepass设置密码
# 启动时要指定设置密码的配置文件
./redis-server /usr/local/redis-5.0.0/redis.conf
# 查看密码
config get requirepass
设置远程访问
redis.conf
protected-mode no
daemonize yes
# bind 127.0.0.1
如果服务器是阿里云,需要在安全组的规则里设置相应的规则才行!
连接
# 本地,redis目录下
redis-cli
# 带端口
redis-cli -p 6379
# 带密码
redis-cli -a 密码
# 远程
redis-cli -h 127.0.0.1 -p 6379 -a 123456
# 先连接,再输入密码
redis-cli -h 139.196.96.220 -p 6379
auth 密码
MySQL社区版
安装指南
Yum安装
遇到问题可以先卸载之前的相关软件
检查残余
rpm -qa | grep -i mysql
# 清华大学镜像
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-2.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-2.noarch.rpm
# 查看可安装版本
yum repolist all | grep mysql
sudo yum install mysql-community-server -y
启动Mysql
sudo systemctl start mysqld.service
# 重启
service mysqld restart
# 停止
service mysqld stop
查看Mysql状态
sudo systemctl status mysqld.service
创建用户
将’root’@‘localhost’ 创建一个超级用户帐户。设置超级用户的密码并将其存储在错误日志文件中。要显示它,请使用以下命令:
shell> sudo grep 'temporary password' /var/log/mysqld.log
通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,必须更改root密码,不然无法操作:
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'EFWA%@1E$UHxdDFO';
创建远程访问用户
切换数据库
mysql>use mysql;
创建用户(user1:用户名;%:任意ip,也可以指定,root默认就是localhost;123456:登录密码)
CREATE USER 'user1'@'%' IDENTIFIED BY '123456';
授权,默认创建的用户权限是usage,就是无权限,只能登录而已,(all:所有权限,这里有select,update等等权限,可以去搜一下;后面的*.*:指定数据库.指定表,这里是所有;to后面就是你刚才创建的用户)
grant all on *.* to 'user1'@'%';
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT all ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
链接失败
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
执行
mysql> ALTER USER 'user1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Kafka
1:下载
tar -xzf kafka_2.12-2.2.0.tgz
chown -R www /usr/local/kafka_2.12-2.2.0/
chmod -R 755 /usr/local/kafka_2.12-2.2.0/
2:启动
Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。您可以使用与kafka一起打包的便捷脚本来获得快速且脏的单节点ZooKeeper实例。
> bin/zookeeper-server-start.sh config/zookeeper.properties &
[2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
...
# 检查zookeeper端口
lsof -i tcp:2181
现在启动Kafka服务器:
> bin/kafka-server-start.sh config/server.properties &
[2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
[2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
...