目录
7.1.5 修改elasticsearch配置文件 elasticsearch.yml
7.4 Elasticsearch设置密码(一定要是root账户)
9.2 切换目录到rocketmq根目录,启动 Name Server 和 Broker
Linux 系统目录
├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录
一、常用操作命令
1、目录操作
- 查询目录
pwd 查看当前工作目录
clear 清除屏幕
cd ~ 当前用户目录
cd / 根目录
cd - 上一次访问的目录
cd .. 上一级目录
- 查看目录内容
ll 查看当前目录下的内容(LL的小写,展示的结果详细,有时间,是否可读写等信息)
ls 查看当前目录下的内容(只展示出文件名或目录名)
- 创建目录
mkdir aaa 在当前目录下创建aaa目录,相对路径;
mkdir ./bbb 在当前目录下创建bbb目录,相对路径;
mkdir /ccc 在根目录下创建ccc目录,绝对路径;
- 递归创建目录
mkdir -p temp/nginx
- 搜索命令
find / -name 'b' 查询根目录下(包括子目录),名以b的目录和文件;
find / -name 'b*' 查询根目录下(包括子目录),名以b开头的目录和文件;
find . -name 'b' 查询当前目录下(包括子目录),名以b的目录和文件;
- 重命名
mv 原先目录 修改后的文件名 例:mv test.txt test1.txt
- 剪切命令(有目录则剪切到指定目录下,没有则剪切为指定目录)
mv /aaa /bbb 将根目录下的aaa目录,移动到bbb目录下(假如没有bbb目录,则重命名为bbb);
mv bbbb usr/bbb 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
mv bbb usr/aaa 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为aaa;
- 复制目录
cp -r /testA /testB 将/目录下的testA目录复制到/testB目录下,在/testB目录下的名称为testB
cp -r /testA /testB/testC 将/目录下的testA目录复制到/testB目录下,且修改名为testC;
- 强制删除指定目录
rm -rf /test 强制删除/目录下的test目录。如果test目录中还有子目录,也会被强制删除,不会提示;
- 删除目录
rm -r /test 普通删除。会询问你是否删除每一个文件
rmdir test 删除空目录
- 查看树状目录结构
tree test/
2、文件内容操作(查看日志,更改配置文件)
- 修改文件内容
vim /usr/local/test.xml 进入一般模式
i(按键) 进入插入模式(编辑模式)
ESC(按键) 退出
:wq 保存退出(shift+:调起输入框)
:q! 不保存退出(shift+:调起输入框)(内容有更改)(强制退出,不保留更改内容)
:q 不保存退出(shift+:调起输入框)(没有内容更改)
- 文件内容的查看
cat test.txt 查看test.txt文件的最后一页内容;
more test.txt 从第一页开始查看test.txt文件内容,按回车键一行一行进行查看,按空格键一页一页进行查看,q退出;
less test.txt 从第一页开始查看test.txt文件内容,按回车键一行一行的看,按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;
总结下more 和 less的区别:
1.less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示;
2.less不必读整个文件,加载速度会比more更快;
3.less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容;
4.less可以后退,more不能后退。
- 实时查看文件后几行(实时查看日志)
tail -f test.txt 查看test.txt文件的后10行内容;
- 前后几行查看
head test.txt 查看test.txt文件的前10行内容;
tail -f test.txt 查看test.txt文件的后10行内容;
head -n 7 test.txt 查看test.txt文件的前7行内容;
tail -n 7 test.txt 查看test.txt文件的后7行内容;
- 文件内部搜索指定的内容
grep under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -n under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
grep -v under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示没搜索到的行;
grep -i under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -ni under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
- 终止当前操作
ctrl+z
ctrl+c
Ctrl+c
和Ctrl+z
都是中断命令,但是作用却不一样。
Ctrl+Z
是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。
Ctrl+C是强制中断程序的执行,进程已经终止。
3、压缩和解压缩
-
压缩(.tar .tar.gz .zip)
tar -cvf start.tar a.java b.java //将当前目录下a.java、b.java打包压缩成start.tar文件
tar -cvf start.tar ./* //将当前目录下的所有文件打包压缩成start.tar文件
tar -zcvf start.tar.gz a.java b.java //将当前目录下a.java、b.java打包压缩成start.tar.gz文件
tar -zcvf start.tar.gz ./* //将当前目录下的所有文件打包压缩成start.tar.gz文件
zip lib.zip java.jar //将java.jar文件打包压缩成lib.zip文件(单个文件压缩)
zip -r lib.zip lib/ //将lib/整个目录打包压缩成lib.zip文件(整个目录压缩)
zip -r lib.zip java1.jar java2.jar //将java1.jar和java2.jar打包压缩成lib.zip文件(多个文件压缩)
- 解压缩(.tar .tar.gz .zip)
tar -xvf start.tar //解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local //解压start.tar压缩包,到/usr/local目录下( C为大写,中间无空格);
tar -zxvf start.tar.gz //解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/local //解压start.tar.gz压缩包,到/usr/local目录下( C为大写,中间无空格);
unzip test.zip //解压一个zip格式压缩包
unzip -d /usr/app/test.zip //将'test.zip'包,解压到指定目录下'/usr/app/'
- 解压缩.tar.xz文件
tar xf node-v12.18.1-linux-x64.tar.xz
4、更改文件权限
chmod u+x web.xml (---x------) 为文件拥有者(user)添加执行权限;
chmod g+x web.xml (------x---) 为文件拥有者所在组(group)添加执行权限;
chmod 111 web.xml (---x--x--x) 为所有用户分类,添加可执行权限;
chmod 222 web.xml (--w--w--w-) 为所有用户分类,添加可写入权限;
chmod 444 web.xml (-r--r--r--) 为所有用户分类,添加可读取权限;
5、远程操作另一个的Linux系统
- 远程登录(ssh)
在 Linux 中使用ssh命令去远程登录另一个 Linux 系统。
# 以root用户的身份去登录192.168.0.73这台主机
ssh root@192.168.0.73
PS:
1.当前用户第一次建立连接时,会提示“是否继续建立连接”,实际上也就是询问“是否保存对方的公钥”,输入的必须是完整的yes或no,不能是y或n。输入yes之后,会提示输入密码。当前用户再次建立连接的时候,只需要输入密码即可。
这里特别强调一下是当前用户,不要误认为“一个 Linux 系统中只要有一个用户保存了公钥,其他的用户再登录这台主机时,直接输密码登录就行”,实际上是每个用户第一次使用ssh命令登录,都需保存公钥,即同一 Linux 系统中各个用户之间公钥不是共享的,每个用户都需持有各自的一份。2.公钥保存的位置是在~/.ssh/konwn_hosts这个文件中,也就是每个用户的目录下的.ssh/konwn_host文件中。
- 远程拷贝(scp)
scp命令与cp命令类似,可以从远程拷贝文件至本地指定位置(下载)或者将本地文件拷贝至远程指定位置(上传)。
# 远程复制文件
scp /usr/local/test.txt root@192.168.0.73:/usr/local/
# 远程复制目录
scp -r /usr/local/ root@192.168.0.73:/usr/
# 远程下载文件至本地
scp root@192.168.0.73:/usr/local/test.txt ./usr/local/
# 远程下载目录至本地
scp -r root@192.168.0.73:/usr/local/ /usr/local/
6、CentOS firewalld(防火墙)指令
6.1 查看firewalld状态
-
查看firewalld服务状态指令:systemctl status firewalld
-
查看firewalld状态指令:firewall-cmd --state
6.2 开启、重启、关闭firewalld服务
- 开启:service firewalld start
- 关闭:service firewalld stop
- 重启:service firewalld restart
6.3 查询、开放、关闭firewalld端口
- 查询全部已开放的端口:firewall-cmd --list-all
- 查询某个端口是否开放:firewall-cmd --query-port=端口/tcp
- 开放端口:firewall-cmd --permanent --add-port=端口/tcp
- 关闭端口:firewall-cmd --permanent --remove-port=端口/tcp
- 刷新服务(开放、关闭端口操作后需刷新才能生效):firewall-cmd --reload
PS:报错 ModuleNotFoundError: No module named 'gi'
解决方法:
执行命令:vim /usr/bin/firewall-cmd,打开文件修改第一行python为python2
7、解决服务器时差问题
- 查看服务器时间:
[root@localhost ~]# date
Tue Feb 20 01:58:00 EST 2024
EST是美国标准时间,EDT是美国夏令时时间,GMT是格林尼治标准时间,CST才是北京时间。
- 修改系统时区
[root@localhost ~]# mv /etc/localtime /etc/localtime.bak
[root@localhost ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 修改完成查看系统时间已经是北京时间了:
[root@localhost ~]# date
Tue Feb 20 15:27:45 CST 2024
- 查看Crond的运行日志,发现时间还没有更改过来,最后重启服务器解决
# 查看运行日志
[root@localhost ~]# cat /var/log/cron
二、各服务部署命令
1、增加虚拟内存
一、查看内存大小(mb)
free -mh
二、.创建虚拟内存(创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小))
dd if=/dev/zero of=/root/swap bs=1M count=1024
1. 4G以内的物理内存,SWAP设置为内存的2倍
2. 4-8G的物理内存,SWAP等于内存大小
3. 8-64G 的物理内存,SWAP设置为8G
4. 64-256G物理内存,SWAP设置为16G
三、初始化分区
mkswap /root/swap
四、启动分区
swapon /root/swap
五、设置开机自动启用虚拟内存
1.打开文件:
vim /etc/fstab
2.在文件中加入如下内容:
/root/swap swap swap defaults 0 0
六、查看swappiness参数
cat /proc/sys/vm/swappiness
七、修改swappiness参数
1.打开配置文件:
vim /etc/sysctl.conf
2.修改参数值:
vm.swappiness=20
八、重启服务器
reboot
2、JDK
2.1 删除系统自带的openjdk
PS:安装jdk前,需先将系统自带的jdk删除,再安装新的jdk,否则会出现兼容性等问题。(实测)
- 搜索出所有包含java的文件
rpm -qa |grep java
- 执行以下删除命令
PS:搜索出来可能有多个文件,咱们只删除以 java-1.xxxx.0-openjdk 或 tzdata-java 开头的文件,其它的文件千万千万千万不能删除,否则就重新安装吧。我自己勿删了一次。
rpm -e –nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e –nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e –nodeps tzdata-java-2013g-1.el6.noarch
- 删除完后,再次检查一下
java -version
2.2 安装jdk
- jdk下载
有两种jdk下载方法:
a、从官网下载,将JDK下载至本地,再通过xftp或filezilla工具上传至服务器
b、直接通过命令拷贝:
wget http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 解压
tar -zxvf jdk-8u131-linux-x64.tar.gz
- 打开配置文件
vim /etc/profile
- 在/etc/profile文件中,配置环境变量,使JDK在所有用户中生效
# 编辑文件,在最后添加如下三行:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 保存退出后,执行命名使修改的环境变量生效
source /etc/profile
- 查询是否安装成功
[root@host-10-23-114-54 ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
2.3 删除jdk
- 卸载jdk
rm -rf /usr/java/jdk1.8.0_131/bin/java
- 删除环境变量:export开头的三行
[root@host-10-23-114-54 ~]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3、Maven
- 下载
有两种maven下载方法:
a、从官网下载,将Maven下载至本地,再通过xftp或filezilla工具上传至服务器
官网:Maven – Download Apache Maven
b、直接通过命令拷贝:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
- 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
- 重命名(个人习惯,方便配置环境变量而已)
mv apache-maven-3.6.3/ maven
- 配置环境变量,编辑配置文件
vi /etc/profile
加入如下配置:
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:${MAVEN_HOME}/bin
- 让配置立即生效执行
source /etc/profile
- 查看maven是否安装成功
[root@host-10-23-112-45 ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven/apache-maven-3.6.3
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_221/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.19.90-23.8.v2101.ky10.x86_64", arch: "amd64", family: "unix"
4、Git
有两种下载方式:
4.1 yum安装
- 安装命令:
yum -y install git
- 安装完之后,可以通过命令git --version查看是否安装成功
PS:1、使用yum安装,git是被安装在/usr/libexec/git-core目录下;
2、yum安装简单,但是存在的问题是安装的git版本较低。
4.2 从github上下载最新的源码编译后安装
- 在github上找到git发布的版本,选择最新版本的tar.gz包下载
github下载地址:https://github.com/git/git
- 上传至linux服务器,并解压
# 解压命令:(***为下载的Git包名)
tar -zxvf ***.tar.gz
- 解压后就需要编译源码,在编译源码之前需要下载所需要的依赖,命令如下
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
- 安装编译源码所需依赖的时候,yum自动帮你安装了git,所以需要先卸载这个旧版的git
yum -y remove git
- 编译git源码
make prefix=/usr/local/git all
PS:其中/usr/local/git是源码编译后所在的目录,自行指定。
- 安装git至指定路径(/usr/local/git)
make prefix=/usr/local/git install
- 配置环境变量
vim /etc/profile
在配置文件的底部加上:export PATH=$PATH:/usr/local/git/bin
- 刷新配置
source /etc/profile
- 通过git --version可以查看安装git的版本号
5、Nginx
5.1 安装安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
5.2 安装 PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
- 下载 PCRE 安装包(统一下载到:/usr/local/)
两种下载方式:
a、官网下载,下载地址:Download pcre-8.35.tar.gz (PCRE)
b、通过命令下载
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
- 解压安装包
tar zxvf pcre-8.35.tar.gz
- 进入安装包目录,编译安装
# 进入安装包目录
cd pcre-8.35
#编译
./configure
make && make install
- 查看pcre版本
pcre-config --version
5.3 安装Nginx
- 下载Nginx
有两种nginx下载方法:
a、从官网下载,将Maven下载至本地,再通过xftp或filezilla工具上传至服务器
官网下载:nginx: download
b、直接通过命令拷贝
wget http://nginx.org/download/nginx-1.6.2.tar.gz
- 解压安装包
tar zxvf nginx-1.6.2.tar.gz
- 进入安装包目录,编译安装
# 进入安装包目录
[root@bogon src]# cd nginx-1.6.2
# 编译安装
[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
[root@bogon nginx-1.6.2]# make && make install
- 查看nginx版本
/usr/local/nginx/sbin/nginx -v
5.4 Nginx配置
- 创建 Nginx 运行使用的组和用户:
[root@bogon conf]# /usr/sbin/groupadd ng
[root@bogon conf]# /usr/sbin/useradd -g ng ng
- 修改配置文件 nginx.conf
[root@bogon conf]# cat /usr/local/nginx/conf/nginx.conf
将/usr/local/nginx/conf/nginx.conf替换为以下内容:
user ng ng;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
#下面是server虚拟主机的配置
server
{
listen 80;#监听端口
server_name localhost;#域名
index index.html index.htm index.php;
root /usr/local/nginx/html;#站点目录
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}
}
- 检查配置文件nginx.conf的正确性命令
/usr/local/nginx/sbin/nginx -t
- 启动Nginx
/usr/local/nginx/sbin/nginx
- Nginx其他命令(重启、停止、重载配置)
/usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/nginx/sbin/nginx -s stop # 停止 Nginx
6、MySQL(8.0+)
6.1 下载
两种下载方法:
- 官网下载安装包,再上传至服务器(强烈推荐)
官网下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
服务器路径我个人习惯是放到:/usr/local/
- 通过yum命令直接下载
yum -y install mysql-server
PS:本人推荐从官网下载安装包的方式进行下载MySQL,因为这样MySQL的版本是可控的,而且下面的操作步骤,也都是围绕该方法进行阐述的。
6.2 解压
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
6.3 移动位置并重新命名(个人习惯)
这一步骤是因为本人的习惯,重命名之后也方便后面的配置修改。
mv mysql-8.0.31-linux-glibc2.12-x86_64 /usr/local/mysql
6.4 创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
6.5 创建目录并赋予权限
#创建目录:
mkdir -p /data/mysql
#赋予权限:
chown mysql:mysql -R /data/mysql
6.6 配置my.cnf文件
vim /etc/my.cnf
配置内容如下:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
6.7 初始化MySQL
- 进入bin目录下
cd /usr/local/mysql/bin/
- 初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
- 查看密码
cat /data/mysql/mysql.err
生成的默认密码如下图:
PS:红框内的,就是生成的默认密码,我是直接使用的默认密码,所以截图时直接打码处理了,要是需要修改默认密码的,在下面我也有说明怎么修改默认密码。
- 先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
- 启动
service mysql start
6.8 修改默认密码
- 先到bin目录下,登录MySQL,输入之前红框内的默认密码
# bin目录下
./mysql -u root -p
- 执行以下命令将默认密码改为123456,并刷新系统设置
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
6.9 配置远程连接(Navicat可连接)
如果需要Navicat或其它工具远程连接MySQL数据库,还需配置一下。
use mysql;
update user set host='%' where user='root';
flush privileges;
6.10 查看安装路径和安装环境是否正常
whereis mysql;
whereis mysqldump;
如图则正常:
如果少了,或者没有需要手动配置一下:
vi /etc/profile
在最后添加一行:
export PATH=$PATH:/usr/local/mysql/bin
刷新配置文件:
source /etc/profile
6.11 异常处理方案
-
MySQL登录时报错:error while loading shared libraries: libtinfo.so.5
[root@localhost]# find / -name "libtinfo.so*"
/usr/lib64/libtinfo.so.6.0
/usr/lib64/libtinfo.so.6
[root@localhost]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
7、Elasticsearch
7.1 Elasticsearch部署
7.1.1 下载
两种下载方式:
a、官网下载安装包到本地,再传至服务器上(指定路径:/usr/local/)
官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
b、通过命令下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-linux-x86_64.tar.gz
7.1.2 解压
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch
7.1.3 创建用户、修改用户密码、赋权
进入 usr/local/elasticsearch目录操作:
# 创建用户
useradd es
# 为用户修改密码
passwd elasticsearch
# 创建data文件夹
mkdir -p /usr/local/elasticsearch/logs/
# 创建es日志logs文件夹
mkdir -p /usr/local/elasticsearch/data/
# 用户文件夹赋权
chown -R es:es /usr/local/elasticsearch/
7.1.4 修改内存配置文件 jvm.options
vim /usr/local/elasticsearch/config/jvm.options
修改内容如下:
-Xms512m
-Xmx512m
7.1.5 修改elasticsearch配置文件 elasticsearch.yml
vim /usr/local/elasticsearch/config/elasticsearch.yml
修改内容如下:
# 集群名字
cluster.name: my-application
# 集群节点名字设置
node.name: node-1
# 设置数据存储路径,默认是es下的data文件夹,可以设置多个存储路径,用逗号隔开
path.data: /usr/local/elasticsearch/data/
# 设置日志路径,默认是es下的logs文件夹
path.logs: /usr/local/elasticsearch/logs/
# 绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问
network.host: 0.0.0.0
# 集群发现节点配置,有集群的话必须配置此项
discovery.seed_hosts: ["127.0.0.1"]
# 设置集群初始化master节点
cluster.initial_master_nodes: ["node-1"]
# 设置elasticsearch密码,加入x-pack支持(true为开启密码校验,flase为关闭校验)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
# 这个开关表示basic类型的license,还有trail(使用)类的,我的环境当前可以不用设置
#xpack.license.self_generated.type: basic
7.1.6 修改配置文件 limits.conf
修改内容如下:
soft nofile 65536
hard nofile 65536
7.2 Elasticsearch中文分词器部署
分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引。核心功能是数据检索,首先通过减速将文档写入ES,再进行查询分析。
7.2.1 下载
通过命令直接下载:(推荐下载路径:/usr/local/elasticsearch/)
wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip
7.2.2 解压
unzip v7.4.0.zip
7.2.3 切换安装目录,并用mvn打包
# 切换目录
cd elasticsearch-analysis-ik-7.4.0/
# mvn打包(打包过程比较慢,请耐心等待;如果mvn打包报异常,可能是maven安装或配置的有问题,可以参考之前的Maven部署教程)
mvn package
7.2.4 切换插件目录,并新建目录
# 切换至plugins目录
cd /usr/local/elasticsearch/plugins/
# 新建文件夹
mkdir ik
7.2.5 在新建目录下,拷贝安装包并解压
# 切换目录
cd /usr/local/elasticsearch/plugins/ik/
# 拷贝文件
cp -R /usr/local/elasticsearch/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip /usr/local/elasticsearch/plugins/ik
# 拷贝配置
cp -R /usr/local/elasticsearch/plugins/ik/config/* /usr/local/elasticsearch/config
7.3 启动Elasticsearch
# 切换创建的es用户
su es
# 后台启动elasticsearch
./elasticsearch -d
7.4 Elasticsearch设置密码(一定要是root账户)
- 需要在配置文件中开启x-pack验证, 修改config目录下面的elasticsearch.yml文件,在里面添加如下内容:
# 是否启用es的安全设置,启用安全设置后es各节点、客户端的传输都会加密,并需要账号密码
xpack.security.enabled: true
# 此项不可更改,当启用安全设置后,此项必须为true
xpack.security.transport.ssl.enabled: true
- 重启Elasticsearch
- 进入elasticsearch/bin目录,执行
./elasticsearch-setup-passwords interactive
需要设置以下用户的密码,根据提示输入密码即可:
Initiating the setup of passwords for reserved users
elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
7.5 异常处理方案
- 启动时报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案:修改sysctl.conf文件,命令如下:(root帐户进行修改)
# 修改sysctl.conf配置文件
vim /etc/sysctl.conf
# 设置vm.max_map_count
vm.max_map_count = 262144
# 重新加载/etc/sysctl.conf配置
sysctl -p
8、Redis
8.1 下载、解压
# 先进入/usr/local目录下
cd /usr/local/
# 通过命令下载
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
# 解压
tar xzf redis-6.2.6.tar.gz
# 重命名
mv redis-6.2.6 redis
8.2 编译
# 进入redis目录
cd /usr/local/redis/
# 编译
make
等待make命令执行完成即可。
执行make命令可能出现以下报错:
- cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:
yum -y install gcc automake autoconf libtool make
- 致命错误:jemalloc/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc。执行下面命令即可正常编译:
make MALLOC = libc
8.3 安装
执行下面命令安装redis,并指定安装目录:
make PREFIX=/usr/local/redis install
8.4 拷贝及修改配置
# 拷贝配置
cp redis.conf /usr/local/redis
# 修改配置
vim /usr/local/redis/redis.conf
修改内容如下:
将 bind 127.0.0.1 -::1 替换为 bind 0.0.0.0
将 daemonize on 替换成 daemonize yes
8.5 启动
进入redis安装目录,执行下面命令启动redis服务:
# 切换目录
cd /usr/local/redis
# 启动redis
./bin/redis-server redis.conf
8.6 检测Redis是够启动成功
# 查看redis进程
ps -ef | grep redis
# 通过redis-cli测试redis是否可用,在redis安装目录执行下面命令:
./bin/redis-cli
# 此处我们通过下面命令随便set一个字符串类型的值,key是test,value是hello:
set test hello
# 然后通过下面命令get出test这个key的value值是否是:hello
# 如果是hello,则redis部署启动成功
get test
# 退出
exit
8.7 查看、修改、认证、删除Redis密码
# 查看密码
config get requirepass
# 设置密码(*号输入自己定义的密码)
config set requirepass "******"
# 认证密码(*号输入自己定义的密码)
auth ******
# 删除密码
config set requirepass ''
9、RocketMQ
9.1 下载
两种下载方式:(推荐服务器路径为:/usr/local/)
PS:1、从官网上下载的压缩包都是已经编译好的,下载的安装包直接上传至服务器上,解压缩后就可以启动了。
2、通过命令下载的包是未编译的,需要编译才能启动。
a、前往官网
官网下载地址:下载 | RocketMQ
- 解压
unzip rocketmq-all-4.9.0-bin-release.zip
- 重命名
mv rocketmq-all-5.1.4-bin-release /usr/local/recketmq
b、通过命令直接下载
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.9.0.tar.gz
- 解压
tar -zxvf rocketmq-all-4.9.0.tar.gz
- 编译
mvn -Prelease-all -DskipTests clean install -U
- 移动到指定目录
mv /usr/local/rocketmq/distribution/target/rocketmq-4.9.0/rocketmq-4.9.0
/usr/local/rocketmq
9.2 切换目录到rocketmq根目录,启动 Name Server 和 Broker
# 切换至根目录
cd /usr/local/rocketmq/
# 启动Name Server
nohup sh bin/mqnamesrv &
# 验证 Name Serve 是否启动成功:
tail -f ~/logs/rocketmqlogs/namesrv.log
# 如果成功启动,能看到类似如下的日志:
2021-07-06 17:03:56 INFO main - The Name Server boot success. ...
# 启动 Broker
nohup sh bin/mqbroker -n localhost:9876 &
# 验证 Broker 是否启动成功:
tail -f ~/logs/rocketmqlogs/broker.log
# 如果启动成功,能看到类似如下的日志:
2020-07-06 17:08:41 INFO main - The broker[itmuchcomdeMacBook-Pro.local, 192.168.1.218:10911] boot success. serializeType=JSON and name server is localhost:9876
9.3 验证rocketmq功能正常(可选)
9.3.1 验证生产消息正常
执行如下命令:
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
能看到类似如下输出:
SendResult [sendStatus=SEND_OK, msgId=C0A82BC5F36C511D50C05B41...
9.3.2 验证消费消息正常
执行如下命令:
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
能看到类似如下输出:
ConsumeMessageThread_4 Receive New Messages: [MessageExt [queueId=3, stor....
9.4 停止
依次执行以下两条命令即可:
# 停止 broker
sh bin/mqshutdown broker
# 输出如下信息说明停止成功:
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
# 停止 namesrv
sh bin/mqshutdown namesrv
# 输出如下信息说明停止成功:
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
9.5 RocketMQ可视控制台Dashboard部署
Dashboard是一个Java web 项目,Maven工程。通过源码编译成jar包后启动即可通过浏览器访问。通过html界面可以查看RockeMQ集群状态、创建/删除Topic、生产/消费等。
9.5.1 安装
先进入安装的根目录,在执行如下命令:
# 1、从GitHub 下载源码包
wget -P /usr/local/rocketmq https://github.com/apache/rocketmq-dashboard/archive/refs/tags/rocketmq-dashboard-1.0.0.tar.gz
# 2、解压
tar -xf /usr/local/rocketmq/rocketmq-dashboard-1.0.0.tar.gz -C /usr/local/rocketmq
# 3、编译
mvn clean package -Dmaven.test.skip=true -f /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0
# 4、创建指定目录
mkdir -p /usr/local/rocketmq-dashboard
# 5、拷贝jar到/usr/local/rocketmq-dashboard
cp -r /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0/target/rocketmq-dashboard-1.0.0.jar /usr/local/rocketmq-dashboard
PS:编译可能会出现编译失败的情况,解决方法如下:
编译问题截图:
问题分析:根据报错提示,应该是maven-checkstyle-plugin插件的问题。
方法一:
修改pom文件,找到插件maven-checkstyle-plugin:2.17,添加跳过属性。
方法二:
找到插件maven-checkstyle-plugin:2.17对应的插件标签,将其注释;
清除原target目录,重新编译即可。
9.5.2 启动/停止
# 前台启动
java -jar /usr/local/rocketmq-dashboard/rocketmq-dashboard-1.0.0.jar
# 后台启动(指定端口号,后台启动)推荐
nohup java -jar /usr/local/rocketmq-dashboard/rocketmq-dashboard-1.0.0.jar --server.port=9877 &
# 查询进程
jps | grep rocketmq-dashboard-1.0.0.jar
# 根据进程Id(pid)杀死进程
kill -9 pid
安装完成后通过 IP+端口即可访问。
9.5.3 开启登录设置,并设置登录帐号和密码
在云服务器上部署rocketmq-dashboard,如果直接打包运行,可能会存在安全隐患,需要修改配置,开启用户登录。
- 修改 application.properties 文件
# server.address 如果写成127.0.0.1,只能本地访问
server.address=0.0.0.0
# 默认8080,建议修改成其他端口
server.port=19876
# 配置rocketmq的IP和端口
rocketmq.config.namesrvAddr=服务器IP:9876
# 是否开启登录(true为开启,默认是false)
rocketmq.config.loginRequired=true
- 修改 users.properties 文件,添加用户名密码
默认的配置如下:
# Define Admin
admin=admin,1
# Define Users
user1=user1
user2=user2
配置用户名和密码:
# Define Admin
# 配置admin帐户
admin=admin,1
# Define Users
# 配置admin帐户的密码
admin=******
输入如下命令:
# 进入根目录
cd rocketmq-dashboard
# mvn重新编译
mvn clean package -Dmaven.test.skip=true
# 重启
nohup java -jar /usr/local/rocketmq-dashboard/rocketmq-dashboard-1.0.0.jar --server.port=9877 &
10、PlumeLog
plumeLog
是一个简单易用的java
日志系统,其在日志收集方面做的很好,部署plumeLog
的
同时,也需要部署elasticsearch、redis或kafka(一般公司,Redis就足够了)。
10.1 下载(推荐路径:/usr/local/)
10.2 解压
unzip plume-log-server-3.5.zip
10.3 修改配置
vim /usr/local/plumelog/application.properties
下面是本人的配置文件,以供参考:(其中redis、elasticsearch和plumelog后台的账号密码,需要各位自己设置,其它的直接ctrl+cv)
spring.application.name=plumelog_server
spring.profiles.active=test-confidential
server.port=8891
spring.thymeleaf.mode=LEGACYHTML5
spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html
spring.mvc.static-path-pattern=/plumelog/**
spring.boot.admin.context-path=admin
#值为4种 redis,kafka,rest,restServer,redisCluster,redisSentinel
#redis 表示用redis当队列
#redisCluster 表示用redisCluster当队列
#redisSentinel 表示用redisSentinel当队列
#kafka 表示用kafka当队列
#rest 表示从rest接口取日志
#restServer 表示作为rest接口服务器启动
#ui 表示单独作为ui启动
plumelog.model=redis
#如果使用kafka,启用下面配置
#plumelog.kafka.kafkaHosts=172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092
#plumelog.kafka.kafkaGroupName=logConsumer
#队列redis地址,集群用逗号隔开,model配置redis集群模式
plumelog.queue.redis.redisHost=127.0.0.1:6379
#如果使用redis有密码,启用下面配置
plumelog.queue.redis.redisPassWord=******
plumelog.queue.redis.redisDb=1
#管理端redis地址
plumelog.redis.redisHost=127.0.0.1:6379
#如果使用redis有密码,启用下面配置
plumelog.redis.redisPassWord=******
plumelog.queue.redis.redisDb=1
#如果使用rest,启用下面配置
#plumelog.rest.restUrl=http://127.0.0.1:8891/getlog
#plumelog.rest.restUserName=plumelog
#plumelog.rest.restPassWord=123456
#redis解压缩模式,开启后不消费非压缩的队列
#plumelog.redis.compressor=true
#elasticsearch相关配置,Hosts支持携带协议,如:http、https
#plumelog.es.esHosts=172.16.187.107:9200
plumelog.es.esHosts=127.0.0.1:9200
#ES7.*已经去除了索引type字段,所以如果是es7不用配置这个,7.*以下不配置这个会报错
#plumelog.es.indexType=plumelog
plumelog.es.shards=5
plumelog.es.replicas=1
plumelog.es.refresh.interval=30s
#日志索引建立方式day表示按天、hour表示按照小时
plumelog.es.indexType.model=day
#ES设置密码,启用下面配置
plumelog.es.userName=******
plumelog.es.passWord=******
#是否信任自签证书
#plumelog.es.trustSelfSigned=true
#是否hostname验证
#plumelog.es.hostnameVerification=false
#单次拉取日志条数
plumelog.maxSendSize=100
#拉取时间间隔,kafka不生效
plumelog.interval=100
#plumelog-ui的地址 如果不配置,报警信息里不可以点连接
plumelog.ui.url=http://127.0.0.1/plumelog
#管理密码,手动删除日志的时候需要输入的密码
admin.password=******
#日志保留天数,配置0或者不配置默认永久保留
admin.log.keepDays=30
#链路保留天数,配置0或者不配置默认永久保留
admin.log.trace.keepDays=30
#登录配置,配置后会有登录界面
login.username=admin
login.password=******
10.4 启动
在plumelog目录,输入如下命令:
./startup.sh
11、Jenkins
部署Jenkins前提,是需要安装jdk。
11.1 安装
- 官网下载war包(推荐下载目录:/usr/local/jenkins/)
官网下载地址:Jenkins 的安装和设置
11.2 启动
切换到Jenkins根目录下,运行下面的命令:
# 切换到根目录
cd /usr/local/jenkins/
# 启动war包(不指定端口号,前台启动)
java -jar jenkins.war
jenkis服务默认端口为:8080,如果跟本地的其它服务端口冲突,需要更改端口,修改命令如下:
# 修改jenkins服务端口,并后台启动
nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=8090 &
11.3 访问
- 浏览器输入:http://localhost:8080(此处换成你的服务器ip和Jenkins端口)
根据提示获取初始密码进行登陆。此处初始密码存放在/var/lib/jenkins/secrets/initialAdminPassword文件中。
- 输入管理员密码,点击继续,可能会出现如下问题,提示该jenkins实例似乎已下线
解决方法:
a、访问jenkins配置页面:http://localhost:8080/pluginManager/advanced
b、修改https为http
c、提交后,重启Jenkins,输入管理员密码就可以了
- 新手直接选择安装推荐的插件即可
单击进入后会出现如下界面,表示自动开始安装所有推荐的插件,等待后续即可。界面右侧是安装的列表及当前插件安装进展。
- 添加用户
插件安装完成之后开始创建管理员用户。
创建完成之后成功登录:
12、Nacos
12.1 下载
两种下载方式:
a、官网下载压缩包,再上传至服务器
官网下载地址:Tags · alibaba/nacos · GitHub
b、使用wget命令下载
# 下载速度较慢,推荐第二条
wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz
# 推荐该命令
wget https://download.fastgit.org/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz
12.2 解压
# 切换目录
cd /usr/local/
# 解压
tar -xvf nacos-server-2.2.0.tar.gz
12.3 创建mysql数据库
- 在解压好的nacos文件夹下找到config文件夹
- 进入config文件夹,找到nacos-mysql.sql文件
- 将nacos-mysql.sql文件下载到本地,本地使用Navicat连接上mysql
- 使用Navicat在mysql中创建名为nacos的数据库,注意数据库名后面会用上
12.4 修改数据库配置
- 修改application.properties
# 切换到config目录
cd /usr/local/nacos2.2.0/conf/
# 修改配置文件
vim /usr/local/nacos2.2.0/conf/application.properties
完整的配置如下:
#
# Copyright 1999-2018 Alibaba Group Holding Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=9001
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
# nacos.inetutils.ip-address=
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://mysql.xxx.tech:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos
#*************** Naming Module Related Configurations ***************#
### Data dispatch task execution period in milliseconds: Will removed on v2.1.X, replace with nacos.core.protocol.distro.data.sync.delayMs
# nacos.naming.distro.taskDispatchPeriod=200
### Data count of batch sync task: Will removed on v2.1.X. Deprecated
# nacos.naming.distro.batchSyncKeyCount=1000
### Retry delay in milliseconds if sync task failed: Will removed on v2.1.X, replace with nacos.core.protocol.distro.data.sync.retryDelayMs
# nacos.naming.distro.syncRetryDelay=5000
### If enable data warmup. If set to false, the server would accept request without local data preparation:
# nacos.naming.data.warmup=true
### If enable the instance auto expiration, kind like of health check of instance:
# nacos.naming.expireInstance=true
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000
#*************** CMDB Module Related Configurations ***************#
### The interval to dump external CMDB in seconds:
# nacos.cmdb.dumpTaskInterval=3600
### The interval of polling data change event in seconds:
# nacos.cmdb.eventTaskInterval=10
### The interval of loading labels in seconds:
# nacos.cmdb.labelTaskInterval=300
### If turn on data loading task:
# nacos.cmdb.loadDataAtStart=false
#*************** Metrics Related Configurations ***************#
### Metrics for prometheus
management.endpoints.web.exposure.include=*
### Metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
### Metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
#*************** Access Log Related Configurations ***************#
### If turn on the access log:
server.tomcat.accesslog.enabled=true
### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
### The directory of access log:
server.tomcat.basedir=
#spring.datasource.platform=mysql
#db.num=1
#db.url.0=jdbc:mysql://10.101.167.27:3306/acm?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true
#db.user=root
#db.password=root
#*************** Access Control Related Configurations ***************#
### If enable spring security, this option is deprecated in 1.2.0:
#spring.security.enabled=false
### The ignore urls of auth, is deprecated in 1.2.0:
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=nacos
### If turn on auth system:
nacos.core.auth.enabled=false
### worked when nacos.core.auth.system.type=ldap,{0} is Placeholder,replace login username
# nacos.core.auth.ldap.url=ldap://localhost:389
# nacos.core.auth.ldap.userdn=cn={0},ou=user,dc=company,dc=com
### The token expiration in seconds:
nacos.core.auth.default.token.expire.seconds=18000
### The default token:
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=true
### Since 1.4.1, Turn on/off white auth for user-agent: nacos-server, only for upgrade from old version.
nacos.core.auth.enable.userAgentAuthWhite=false
### Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
#*************** Istio Related Configurations ***************#
### If turn on the MCP server:
nacos.istio.mcp.server.enabled=false
#*************** Core Related Configurations ***************#
### set the WorkerID manually
# nacos.core.snowflake.worker-id=
### Member-MetaData
# nacos.core.member.meta.site=
# nacos.core.member.meta.adweight=
# nacos.core.member.meta.weight=
### MemberLookup
### Addressing pattern category, If set, the priority is highest
# nacos.core.member.lookup.type=[file,address-server]
## Set the cluster list with a configuration file or command-line argument
# nacos.member.list=192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
## for AddressServerMemberLookup
# Maximum number of retries to query the address server upon initialization
# nacos.core.address-server.retry=5
## Server domain name address of [address-server] mode
# address.server.domain=jmenv.tbsite.net
## Server port of [address-server] mode
# address.server.port=8080
## Request address of [address-server] mode
# address.server.url=/nacos/serverlist
#*************** JRaft Related Configurations ***************#
### Distro data sync delay time, when sync task delayed, task will be merged for same data key. Default 1 second.
# nacos.core.protocol.distro.data.sync.delayMs=1000
### Distro data sync timeout for one sync data, default 3 seconds.
# nacos.core.protocol.distro.data.sync.timeoutMs=3000
### Distro data sync retry delay time when sync data failed or timeout, same behavior with delayMs, default 3 seconds.
# nacos.core.protocol.distro.data.sync.retryDelayMs=3000
### Distro data verify interval time, verify synced data whether expired for a interval. Default 5 seconds.
# nacos.core.protocol.distro.data.verify.intervalMs=5000
### Distro data verify timeout for one verify, default 3 seconds.
# nacos.core.protocol.distro.data.verify.timeoutMs=3000
### Distro data load retry delay when load snapshot data failed, default 30 seconds.
# nacos.core.protocol.distro
12.5 启动
需先进入bin目录下,输入命令启动。
- 单机模式:
./startup.sh -m standalone
- 集群模式:
./startup.sh
PS:若是配置集群的话,需要修改cluster.conf.example
在里边添加其他节点的nacos的IP+端口号
12.6 访问
- ip+端口号+nacos/index.html,例如:http://127.0.0.0:9001/nacos/index.html
- nacos的默认帐户和密码,都是:nacos
12.7 异常处理方案
- No DataSource set
问题原因:没有找到数据源,一般情况是application.properties中,配置的mysq连接有问题。
解决方案:核对 12.4 步骤中的数据库配置,注意域名、数据库、mysql的账号密码是否正确。
### Connect URL of DB:
db.url.0=jdbc:mysql://mysql.xxx.tech:3306/nacos_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos
- com.alibaba.nacos.core.distributed.raft.exception.JRaftException: java.io.IOException: Failed to bind
问题原因:绑定失败
解决方案:
1、查看nacos进程是否启动了多个进程,kill所有进程,再启动nacos。
# 查看nacos进程
ps aux|grep nacos
# kill进程
kill 进程id
2、由于端口号的问题,在第四步,编辑端口号,注意端口号需要大于5001。并保证该端口被开放,再启动nacos。
# 查询指定端口是否已开启
firewall-cmd --query-port=9001/tcp
# 添加指定需要开放的端口:
firewall-cmd --add-port=9001/tcp --permanent
# 重启防火墙
firewall-cmd --reload
13、安装中文字体
在linux系统中,默认仅仅安装英文字体,而没有安装中文字体,若要使用中文字体,需要手动安装中文字体。
13.1 先查看系统中已经安装的字体
在开始安装之前,我们先查看系统中已经安装了哪些字体。我们可以使用fc-list命令进行查看。如果系统中没有该命令的话,我们需要先安装相关的软件包。
- 在centos上,使用如下命令进行安装:
yum install -y fontconfig mkfontscale
- 在ubuntu上,使用如下命令进行安装:
sudo apt-get -y install fontconfig xfonts-utils
- 查看系统已经安装的字体
# 查看系统已安装的字体
fc-list
# 查看系统已安装的中文字体
fc-list :lang=zh
13.2 安装字体
这里我们安装黑体常规,即simhei.ttf。
- 下载字体
可以去网上搜索自己想要的字体,本人是以windows为例。
进入C:\Windows\Fonts,该文件夹下就存放相关字体,将simhei.ttf拷贝到linux 目录/usr/share/fonts/下即可
- 生成字体索引,更新字体缓存
# 切换目录
cd /usr/share/fonts/
# 安装字体索引
mkfontscale
# 生成字体索引
mkfontdir
# 刷新字体缓存
fc-cache
- 查看新字体是否安装成功
fc-list :lang=zh
如下表示安装成功:
如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、评论、收藏➕关注,您的支持是我坚持写作最大的动力。