安装n9e
软件包:golang、n9eV2.2.1、redis、mysql
1.redis解压安装包并安装
tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install
Redis没有其他外部依赖,安装过程很简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件。
如下图:

启动Redis
直接启动
直接运行redis-server即可启动Redis
[root@localhost bin]# redis-server
2、以后台进程方式启动redis
第一步:修改redis.conf文件
将
daemonize no
修改为
daemonize yes
第二步:指定redis.conf文件启动
`./redis-server /usr/local/redis-4.0.6/redis.conf`
./redis-cli -h 127.0.0.1 -p 6379 -a password
第三步:关闭redis进程
首先使用ps -aux | grep redis查看redis进程
[root@iZwz991stxdwj560bfmadtZ src]# ps -aux | grep redis
root 18714 0.0 0.1 141752 2008 ? Ssl 13:07 0:00 ./redis-server 127.0.0.1:6379
root 18719 0.0 0.0 112644 968 pts/0 R+ 13:09 0:00 grep --color=auto redis
使用kill命令杀死进程
[root@iZwz991stxdwj560bfmadtZ src]# kill 18714
3、设置redis开机自启动
1、在/etc目录下新建redis目录
mkdir redis
[root@iZwz991stxdwj560bfmadtZ etc]# mkdir redis
2、将/usr/local/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
[root@iZwz991stxdwj560bfmadtZ redis]# cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf
3、将redis的启动脚本复制一份放到/etc/init.d目录下
[root@iZwz991stxdwj560bfmadtZ init.d]# cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd
4、设置redis开机自启动
先切换到/etc/init.d目录下
然后执行自启命令
[root@iZwz991stxdwj560bfmadtZ init.d]# chkconfig redisd on
service redisd does not support chkconfig
看结果是redisd不支持chkconfig
解决方法:
使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

再次执行开机自启命令,成功
[root@iZwz991stxdwj560bfmadtZ init.d]# chkconfig redisd on
现在可以直接已服务的形式启动和关闭redis了
启动:
service redisd start
[root@izwz991stxdwj560bfmadtz ~]# service redisd start
Starting Redis server...
2288:C 13 Dec 13:51:38.087 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2288:C 13 Dec 13:51:38.087 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=2288, just started
2288:C 13 Dec 13:51:38.087 # Configuration loaded
关闭:
方法1:service redisd stop
[root@izwz991stxdwj560bfmadtz ~]# service redisd stop
Stopping ...
Redis stopped
方法2:redis-cli SHUTDOWN
2.离线安装MySQL
安装新版mysql前,需将系统自带的mariadb-lib卸载
[root@hadoop ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@hadoop ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
[root@hadoop ~]# rpm -qa|grep mariadb

解压安装包
tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

安装解压包
mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm

mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm

mysql-community-client-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm

mysql-community-server-5.7.20-1.el7.x86_64.rpm
在安装之前需要安装libaio
[root@hadoop app]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64
如果不存需要下载离线包:
http://mirror.centos.org/centos/6/os/x86_64/Packages/
安装libaio库:
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm(若在有网情况下可执行yum install libaio)
安装server
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm

初始化数据库
// 指定datadir, 执行后会生成~/.mysql_secret密码文件(5.7以后不在使用)
[root@slave mytmp]# mysql_install_db --datadir=/var/lib/mysql
// 初始化,执行生会在/var/log/mysqld.log生成随机密码
[root@slave mytmp]# mysqld --initialize
更改mysql数据库目录的所属用户及其所属组(没用创建mysql用户)
chown mysql:mysql /var/lib/mysql -R
授权
chmod -R 777 mysql
启动mysql
systemctl start mysqld.service
登录到mysql,更改root用户的密码
grep 'temporary password' /var/log/mysqld.log


set password=password('123456a?');
创建用户,及作权限分配
CREATE USER 'sunld'@'%' IDENTIFIED BY '123456a?';
GRANT ALL PRIVILEGES ON *.* TO 'sunld'@'%';
flush privileges;

远程登陆授权
grant all privileges on *.* to 'root'@'%' identified by '123456a?' with grant option;
flush privileges;

设置mysql开机启动
// 检查是否已经是开机启动
systemctl list-unit-files | grep mysqld

// 开机启动
systemctl enable mysqld.service
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
3.离线安装nginx(rpm包)
n9e视频安装:
yum install -y nginx
cp nginx.conf /etc/nginx/nginx.conf
systemctl start nginx
systemctl enable nginx
建立nginx的yum仓库
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
下载并安装nginx
yum install nginx
nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx
-
配置所在目录:/etc/nginx/
-
PID目录:/var/run/nginx.pid
-
错误日志:/var/log/nginx/error.log
-
访问日志:/var/log/nginx/access.log
-
默认站点目录:/usr/share/nginx/html
4.离线安装yum
查看有无 yum安装包 ,有的话卸载:
查看:rpm -qa |grep yum
卸载:rpm -aq|grep yum|xargs rpm -e --nodeps
步骤如下
第一步:
http://mirrors.163.com/centos/6/os/x86_64/Packages/
到上面这个网站去下载如下RPM包
python-iniparse-0.3.1-2.1.el6.noarch.rpm
yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm
yum-3.2.29-69.el6.centos.noarch.rpm
yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
下载完成之后,用rpm命令进行安装,如下:
rpm -ivh --force --nodeps python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh --force --nodeps yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm
rpm -ivh --force --nodeps yum-3.2.29-69.el6.centos.noarch.rpm yum-plugin-fa
stestmirror-1.1.30-30.el6.noarch.rpm
这里安装的时候需要注意,一定要加 --force --nodeps不然会报错安装不上
到这一步了当你输入yum命令的时候出现如下错误:

第二步:
根据上图的提示到 http://yum.baseurl.org/wiki
下载yum-3.4.3.tar.gz ,放到你指定的目录下解压,解压命令如下:
tar -zxvf yum-3.4.3.tar.gz #解压后进到yum-3.4.3目录
输入如下命令
./yummain.py update 如下图:

注意红框中的操作,完成之后,你试着输入一下yum 就OK了,如下图:

5.离线安装tar
6.golang
下载go(我的当前目录是/data/work)
$wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
$tar -xvf go1.10.1.linux-amd64.tar.gz
设置环境变量
v
i
m
/
e
t
c
/
p
r
o
f
i
l
e
添
加
e
x
p
o
r
t
G
O
R
O
O
T
=
/
d
a
t
a
/
w
o
r
k
/
g
o
e
x
p
o
r
t
G
O
P
A
T
H
=
/
d
a
t
a
/
w
o
r
k
/
g
o
p
a
t
h
e
x
p
o
r
t
P
A
T
H
=
vim /etc/profile 添加 export GOROOT=/data/work/go export GOPATH=/data/work/gopath export PATH=
vim/etc/profile添加exportGOROOT=/data/work/goexportGOPATH=/data/work/gopathexportPATH=PATH:
G
O
R
O
O
T
/
b
i
n
:
GOROOT/bin:
GOROOT/bin:GOPATH/bin
保存
esc
:wq
测试环境
创建目录 /data/work/gopath/src
$mkdir helloworld
$cd helloworld
$vim main.go
输入
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
$go run ./main.go
7.n9e安装
# 该项目没有使用go module管理,需要放到github.com/didi下编译
mkdir -p $GOPATH/src/github.com/didi
cd $GOPATH/src/github.com/didi
# clone代码并编译打包,pack时会自动build,打包成一个tar.gz
git clone https://github.com/didi/nightingale.git
cd nightingale && ./control build && ./control pack
mysql -uroot -p < sql/n9e_hbs.sql
mysql -uroot -p < sql/n9e_mon.sql
mysql -uroot -p < sql/n9e_uic.sql
修改配置文件
配置文件在etc目录,着重看一下mysql.yml,修改mysql访问的用户名和密码,另外redis密码默认为空,如果您配置了redis的访问密码,需要对应的修改monapi和judge的配置文件,将redis密码配置好。另外在etc/address.yml下可以看到各个模块监听的端口,如果与本地其他服务端口冲突了,就需要手工修改一下啦。
启动各模块进程
发布包里默认提供了一个control脚本,用来启停服务,直接执行./control start all即可启动所有模块,./control status可以查看各模块进程是否都已启动,夜莺共有6个核心模块,注意一下进程数是否正确。最后安装一下nginx,nginx有个示例配置文件在etc/nginx.conf,注意修改pub目录指向真实路径。至此,单机版就部署成功了。访问nginx即可看到页面。如果发现nginx日志里出现权限报错,检查机器selinux配置,尝试关闭selinux解决。
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
本文详细介绍了n9e的离线安装过程,包括Redis、MySQL、nginx、yum、tar和Golang的安装与配置。如Redis的启动与开机自启设置,MySQL的卸载旧版本、安装与初始化,还说明了n9e配置文件修改和模块进程启动等内容,最终完成单机版部署。
200

被折叠的 条评论
为什么被折叠?



