Lepus6.0简介
LEPUS(天兔)是一个开源数据库监控系统。
其V6.0版本不仅仅定位于监控系统,Lepus6.0除各类数据库监控外,新增元数据管理、数据库SQL查询功能。
目前已支持MySQL、Oracle、MariaDB、GreatSQL、PostgreSQL、Redis、MongoDB、SQLServer、TiDB、Doris、OceanBase、ClickHouse等数据库。
Lepus软件下载
官网地址:
https://www.lepus.cc/
复制
下载地址:
https://www.lepus.cc/downloads/
复制
官方文档:
https://www.lepus.cc/docs/lepus-v6/install/lepus-binary/
复制
本次在ubuntu 22.04部署,采用二进制方式安装,因此下载lepus.6.0.linux-amd64.tar.gz并上传至服务器。
安装组件
Lepus部署的软件要求如下:
软件名称 | 推荐版本 | 必须 | 备注 |
---|---|---|---|
Golang | 1.19.13 | 否 | 源码编译运行必须安装/使用二进制方式无需安装 |
Nodejs | 14.14.0 | 否 | 源码编译运行必须安装/使用二进制方式无需安装 |
MySQL | 5.6 | 是 | 用于存储基础数据、配置数据、元数据 |
ClickHouse | 24.5 | 是 | 用于存储监控时序数据 |
Redis | 5.0 | 是 | 用于报警系统限流 |
NSQ | 1.3.0 | 是 | 基于 Golang 的高性能消息队列,用于事件消息传输 |
下面我们逐一安装。
安装MySQL
本次用的版本是8.0.36。
创建用户和目录:
useradd mysql -s /sbin/nologin id mysql mkdir -p /app/database/ mkdir -p /data/3306/ mkdir -p /binlog/ chown -R mysql.mysql /app/database/ /data/3306/ /binlog/
复制
将官网下载的二进制包上传至服务器/app/database/目录,解压并重命名:
tar -xf mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.36-linux-glibc2.12-x86_64/ mysql/
复制
配置环境变量:
vim /etc/profile
复制
在结尾添加一行,将mysql的bin目录添加到PATH:
export PATH=/app/database/mysql/bin:$PATH
复制
生效配置并通过检查mysql版本来验证:
source /etc/profile mysql -V
复制
初始化数据库:
/app/database/mysql/scripts/mysql_install_db --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
复制
其中:
–basedir=/usr/local/mysql : 数据库软件位置
–datadir=/data/3306/data : 数据存储位置
创建基本的配置文件:
cat > /etc/my.cnf <<EOF [mysqld] user=mysql basedir=/app/database/mysql datadir=/data/3306 server_id=107 port=3306 socket=/tmp/mysql.sock default_authentication_plugin=mysql_native_password [mysql] socket=/tmp/mysql.sock EOF
复制
准备mysql启动脚本,并将脚本添加到systemd管理中:
cd /app/database/mysql/support-files/ cp mysql.server /etc/init.d/mysqld sudo systemctl daemon-reload
复制
启动mysqld:
systemctl start mysqld
复制
进入客户端,密码为空:
mysql -uroot -p
复制
创建天兔账号(此处给了管理员权限):
create user 'lepus' identified by'123456'; grant all privileges on *.* to 'lepus'@'%' with grant option;
复制
创建天兔库:
create database lepus;
复制
安装Clickhouse
取消打开文件数限制:
vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
复制
安装依赖:
apt install -y unixodbc unixodbc-dev
复制
官网下载页面:
https://clickhouse.com/docs/en/install#available-installation-options
复制
或直接使用安装包下载地址,进入clickhouse目录:
https://packages.clickhouse.com/deb/pool/main/c/
复制
安装包列表:
- clickhouse-common-static — ClickHouse编译的二进制文件。
- clickhouse-server — 创建clickhouse-server软连接,并安装默认配置服务
- clickhouse-client — 创建clickhouse-client客户端工具软连接,并安装客户端配置文件。
- clickhouse-common-static-dbg — 带有调试信息的ClickHouse二进制文件。
本次我们使用24.5.8.10版本,本次不安装debug包,因此下载这3个包即可:
- clickhouse-client_24.5.8.10_amd64.deb
- clickhouse-common-static_24.5.8.10_amd64.deb
- clickhouse-server_24.5.8.10_amd64.deb
附每个包下载地址:
https://packages.clickhouse.com/deb/pool/main/c/clickhouse/clickhouse-client_24.5.8.10_amd64.deb https://packages.clickhouse.com/deb/pool/main/c/clickhouse/clickhouse-common-static_24.5.8.10_amd64.deb https://packages.clickhouse.com/deb/pool/main/c/clickhouse/clickhouse-server_24.5.8.10_amd64.deb
复制
下载后上传至服务器,查看依赖,以下面的包为例:
dpkg -I clickhouse-server_24.5.8.10_amd64.deb
复制
按如下顺序进行安装:
dpkg -i clickhouse-common-static_24.5.8.10_amd64.deb dpkg -i clickhouse-server_24.5.8.10_amd64.deb dpkg -i clickhouse-client_24.5.8.10_amd64.deb
复制
其中server要求输入default用户密码,之后显示如下信息安装成功:
Password for the default user is saved in file /etc/clickhouse-server/users.d/default-password.xml. Setting capabilities for clickhouse binary. This is optional. chown -R clickhouse:clickhouse '/etc/clickhouse-server' ClickHouse has been successfully installed. Start clickhouse-server with: sudo clickhouse start Start clickhouse-client with: clickhouse-client --password Synchronizing state of clickhouse-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable clickhouse-server Created symlink /etc/systemd/system/multi-user.target.wants/clickhouse-server.service → /lib/systemd/system/clickhouse-server.service.
复制
启动clickhouse:
sudo clickhouse start
复制
正常启动后打印信息如下:
Will run sudo --preserve-env -u 'clickhouse' /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml --pid-file /var/run/clickhouse-server/clickhouse-server.pid --daemon Waiting for server to start Waiting for server to start Server started
复制
检查启动状态:
sudo clickhouse status
复制
使用 client 连接 server:
clickhouse-client -m --user default --password
复制
此处密码即我们安装server时default用户的密码。
进入客户端后我们为天兔创建用户(此处给了管理员权限):
create user 'lepus' identified with sha256_password by '123456' host any; GRANT ALL ON *.* TO 'lepus' WITH GRANT OPTION;
复制
如果报如下错误:
Received exception from server (version 24.5.8): Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: default: Not enough privileges. To execute this query, it's necessary to have the grant ALL ON *.* WITH GRANT OPTION. (ACCESS_DENIED)
复制
则可以用defalut登录并查看defalut的权限:
SHOW GRANTS FOR CURRENT_USER();
复制
然后根据defalut的权限授权:
GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, UNDROP TABLE, TRUNCATE, OPTIMIZE, BACKUP, KILL QUERY, KILL TRANSACTION, MOVE PARTITION BETWEEN SHARDS, ACCESS MANAGEMENT, SYSTEM, dictGet, displaySecretsInShowAndSelect, INTROSPECTION, SOURCES, CLUSTER ON *.* TO lepus WITH GRANT OPTION; GRANT TABLE ENGINE ON * TO lepus WITH GRANT OPTION; GRANT SET DEFINER ON * TO lepus WITH GRANT OPTION; GRANT ALTER NAMED COLLECTION, CREATE NAMED COLLECTION, DROP NAMED COLLECTION, SHOW NAMED COLLECTIONS, NAMED COLLECTION ON * TO lepus WITH GRANT OPTION;
复制
另一种方法是修改users.xml:
vim /etc/clickhouse-server/users.xml
复制
在
<access_management>1</access_management>
复制
重启服务:
sudo clickhouse restart
复制
但亲测这种方法仍旧报错,待后续研究。
用lepus登录并创建天兔库:
clickhouse-client -m --user lepus --password CREATE DATABASE IF NOT EXISTS lepus;
复制
安装Redis
安装依赖:
sudo apt install -y gcc automake autoconf libtool make
复制
下载地址:
https://download.redis.io/releases/
复制
我们本次下载redis-5.0.14.tar.gz
https://download.redis.io/releases/redis-5.0.14.tar.gz
复制
上传至服务器后解压:
tar -zxvf redis-5.0.14.tar.gz mv redis-5.0.14 redis
复制
编译:
cd redis make
复制
配环境变量,修改/etc/profile添加下面这行:
export PATH=/app/redis/src:$PATH
复制
生效环境变量:
source /etc/profile
复制
创建数据目录:
mkdir /data/6379
复制
设置配置文件:
vim /data/6379/redis.conf bind 0.0.0.0 protected-mode no tcp-backlog 511 timeout 86400 tcp-keepalive 300 daemonize yes supervised no port 6379 pidfile /data/6379/redis_6379.pid logfile /data/6379/redis.log dir /data/6379 dbfilename dump.rdb
复制
启动redis:
/app/redis/src/redis-server redis.conf &
复制
检查端口状态:
netstat -lnp|grep 6379
复制
客户端连接(redis没有用户的概念,只有绑定地址和密码):
/app/redis/src/redis-cli -p 6379 -a 123456
复制
安装NSQ
我们选择1.3.0,下载地址:
https://github.com/nsqio/nsq/releases
复制
我们选择nsq-1.3.0.linux-amd64.go1.21.5.tar.gz,下载后上传至服务器/app,并解压:
tar -xf nsq-1.3.0.linux-amd64.go1.21.5.tar.gz mv nsq-1.3.0.linux-amd64.go1.21.5 nsq
复制
启动服务:
cd nsq nohup /app/nsq/bin/nsqlookupd >/dev/null 2>nsqlookupd.log & nohup /app/nsq/bin/nsqd -lookupd-tcp-address=127.0.0.1:4160 -broadcast-address=127.0.0.1 >/dev/null 2>nsqd.log & nohup /app/nsq/bin/nsqadmin -lookupd-http-address=127.0.0.1:4161 >/dev/null 2>nsqadmin.log &
复制
检查端口:
netstat -lnp|grep 4171 netstat -lnp|grep 4150 netstat -lnp|grep 4160 netstat -lnp|grep 4161
复制
结果如下:
root@vl7mysqlsit107:/app/lepus.6.0.linux-amd64# netstat -lnp|grep 4171 tcp6 0 0 :::4171 :::* LISTEN 1281811/nsqadmin root@vl7mysqlsit107:/app/lepus.6.0.linux-amd64# netstat -lnp|grep 4150 tcp6 0 0 :::4150 :::* LISTEN 1281802/nsqd root@vl7mysqlsit107:/app/lepus.6.0.linux-amd64# netstat -lnp|grep 4160 tcp6 0 0 :::4160 :::* LISTEN 1281791/nsqlookupd root@vl7mysqlsit107:/app/lepus.6.0.linux-amd64# netstat -lnp|grep 4161 tcp6 0 0 :::4161 :::* LISTEN 1281791/nsqlookupd
复制
启动完毕后浏览器登录IP:4171 进入NSQ管理界面:
安装Lepus
解压lepus后进入lepus目录,并执行install.sh安装lepus软件:
tar -zxvf lepus.6.0.linux-amd64.tar.gz cd lepus.6.0.linux-amd64/ sh install.sh
复制
可以看到执行后创建了服务:
Created symlink /etc/systemd/system/multi-user.target.wants/lepus.service → /etc/systemd/system/lepus.service.
复制
配置编辑/etc/lepus/setting.yml配置文件,
修改MySQL、ClickHouse、Redis、NSQ、Mail网关等配置为正确的地址。
(MySQL、ClickHouse、Redis、NSQ已提前安装)。
vim /etc/lepus/setting.yml log: path: "/tmp/lepus.log" level: "info" debug: false token: storage: "mysql" key: "S9p2+dsfM1CzLF==" name: "lepus" expired: "3d" decrypt: signKey: "1234567890abcdef" dbPassKey: "L1e2p3u4s5Abc321" dataSource: #mysql host: 127.0.0.1 port: 3306 user: lepus password:123456 database: lepus #redis redisHost: 127.0.0.1 redisPort: 6379 redisPassword: 123456 #clickhouse clickhouseHost: 127.0.0.1 clickhousePort: 9000 clickhouseUser: lepus clickhousePassword: 123456 clickhouseDatabase: lepus #nsq nsqServer: 127.0.0.1:4150 notice: #mail mailHost: xxxxx mailPort: xxxxx mailUser: xxxxx mailPass: xxxxx mailFrom: xxxxx
复制
启动Lepus服务:
sh start.sh
复制
查看lepus服务状态:
sh status.sh
复制
显示如下:
● lepus.service - Lepus Service Loaded: loaded (/etc/systemd/system/lepus.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2025-02-14 11:23:23 CST; 4s ago Main PID: 1285008 (lepus) Tasks: 8 (limit: 9364) Memory: 9.9M CPU: 108ms CGroup: /system.slice/lepus.service └─1285008 /usr/local/sbin/lepus -c /etc/lepus/setting.yml Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] [WARNING] Since SetHTMLTemplate() is NOT thread-safe. It should only be called Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: at initialization. ie. before any route is registered or the router is listening in a socket: Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: router := gin.Default() Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: router.SetHTMLTemplate(template) // << good place Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] GET /public/*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (5 handlers) Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] HEAD /public/*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (5 handlers) Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] GET /logo.png --> main.main.func1 (5 handlers) Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] GET /avatar.jpg --> main.main.func2 (5 handlers) Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] GET / --> main.main.func3 (5 handlers) Feb 14 11:23:24 vl7mysqlsit107 lepus[1285008]: [GIN-debug] Listening and serving HTTP on :8086
复制
查看lepus日志:
tail -f /tmp/lepus.log
复制
登录lepus系统:
启动后通过浏览器打开 http://IP:8086 进入lepus系统,默认管理员账号密码:admin/lepusadmin
关闭lepus服务:
sh stop.sh
复制
卸载lepus服务:
sh uninstall.sh
复制