首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)

windows 下 boot2docker fox.风来了 1.boot2docker 先安装这个: Docker虽然是Linux内核,但是官方还是支持了Windows和OS X。Boot2Docker官方下载地址:https://github.com/boot2docker/windows-installer/releasesBoot2Docker官方安装手顺:http://docs.docker.com/installation/windows/ 启动方法 windows 桌面 打开Boot2Docker Start 这个快捷方式,出现的命令界面中执行 2.启动不成功 #先关闭 boot2docker stop #然后启动 boot2docker start 如果出现以下错误 Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/ca.pem Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/cert.pem Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/key.pem export DOCKER_HOST=tcp://192.168.59.103:2376 export DOCKER_CERT_PATH=/Users/mylxsw/.boot2docker/certs/boot2docker-vm export DOCKER_TLS_VERIFY=1解决方法: 设置三个变量 可以手动 到WINDOWS里面设置也可以,用以下命令设置 eval "$(boot2docker shellinit)" #命令查看状态 bash-4.3$ boot2docker status running #命令查看版本 bash-4.3$ boot2docker version Boot2Docker-cli version: v1.8.0 Git commit: 9a26066 bash-4.3$ 3.进入docker boot2docker ssh 4.文件夹项目 windows boot2docker 默认共享 /c/当前用户名 例如(我的本地):/c/Users/lanmps/ 如果在一个分区可以使用 mklink /H "C:\Users\lanmps\git" "C:\git" MKLINK [[/D] | [/H] | [/J]] Link Target /D 创建目录符号链接。默认为文件 符号链接。 /H 创建硬链接,而不是符号链接。 /J 创建目录联接。 Link 指定新的符号链接名称。 Target 指定新链接引用的路径 (相对或绝对)。 5. 设置其他盘文件夹为 项目文件夹 5.1 先关闭boot2docker windows 桌面 打开Boot2Docker Start 这个快捷方式,出现的命令界面中执行 boot2docker stop 5.2 设置共享文件夹 在虚拟机管理界面中, boot2docker-vm 一定要是 关闭状态(图中是我已经设置好的所以是运行的) 设置的共享文件夹名称 c/Users 不能改变,如果改变了一定要改回来 5.3 boot2docker启动 boot2docker start启动成功后,如果有问题, 重复 2 3 两个步骤就可以了 #进入docker boot2docker ssh #进入共享目录 cd /c/Users #查看列表 ll 发现e:\git目录下的全都有了 6.注意 因为boot2docker使用的是 内存 linux,所以只要关机/重启 时候,没有把该 boot2docker-vm 设置为 休眠或者 快照,那么关机/重启 之后,虚拟机内所有数据全部都是不存在的。 x.镜像下载 和 linux 一样 http://blog.csdn.net/fenglailea/article/details/50100311

优秀的个人博客,低调大师

docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)

项目中N次使用PHP+MYSQL+NGINX+REDIS+ Elasticsearch,为了方便所以使用了docker fox.风来了 完整版地址: http://blog.csdn.net/fenglailea/article/details/50451555 目前是 LINUX 下,稍后制作 WINDOWS下的 1.docker 环境安装 http://blog.csdn.net/fenglailea/article/details/44886427 推荐使用方法二 2.下载镜像 国外和国内的docker hub 是两种速度体验,访问国外的HUB 的时间,可以和朋友一起搓一顿都够了。 可以使用国内的docker HUB 使用国外下载 docker hub 时,有时会报错,比如超时,或者有代理什么的,直接PASS,重新PULL 2.1 nginx+php+redis 镜像下载 docker pull foxiswho/docker-nginx-php大约2小时,docker hub 国内没有服务器就是慢,可以使用国内的一些docker 仓库如 阿里云等 2.2elasticsearch 镜像下载 docker pull elasticsearch大约 1 小时 2.3 mysql 或其他 docker pull mysql:5.5.27大约1小时 3. 启动设置容器 3.1elasticsearch docker run --name es -p 9200:9200 -p 9300:9300 -d elasticsearch:latest --name 容器别名 -p 主机端口:容器端口 -d 镜像 3.2 mysql docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.27 3.3 nginx+php+redis docker run --name web --link mysql:db --link es:es -p 8080:80 -v /www/wwwroot/web:/usr/share/nginx/html -d foxiswho/docker-nginx-php:latest--link 容器内之间链接,比如访问数据库 原来 是 localhost或者 127.0.0.1 ,现在只要填写 db 就可以了 -v 本地目录:容器目录 ,例如 本地目录/www/wwwroot/web 注意 本地 目录设置权限和用户组 chown -R www-data:www-data/www/wwwroot/web chmod -R 777/www/wwwroot/web 这个时候访问本机 127.0.0.1:8080 就可以看到 你的项目站点了 4.容器操作 4.1 已启动的容器 如果启动成功了使用命令就可以看到已启动的容器: docker ps 4.1 所有容器 docker ps -a

优秀的个人博客,低调大师

centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建

一、Java安装 1、安装包准备: 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,我下载jdk-7u79-linux-x64.tar.gz,下载到主目录 2、解压安装包 通过终端在/usr/local目录下新建java文件夹,命令行: sudo mkdir /usr/local/java 然后将下载到压缩包拷贝到java文件夹中,命令行: 进入jdk压缩包所在目录 cp jdk-7u79-linux-x64.tar.gz /usr/local/java 然后进入java目录,命令行: cd /usr/local/java 解压压缩包,命令行: sudo tar xvf jdk-7u79-linux-x64.tar.gz 然后可以把压缩包删除,命令行: sudo rm jdk-7u79-linux-x64.tar.gz 3、设置jdk环境变量 这里采用全局设置方法,就是修改etc/profile,它是是所有用户的共用的环境变量 sudo vi /etc/profile 打开之后在末尾添加 export JAVA_HOME=/usr/local/java/jdk1.7.0_79 export JRE_HOME=/usr/local/java/jdk1.7.0_79/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin: $PATH 使profile生效 source /etc/profile 4、检验是否安装成功 在终端 java -version 显示如下 java version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) PS:后来发现直接rpm包jdk-7u79-linux-x64.rpm桌面双击安装也OK,^_^ 二、scala2.11.4安装 1、安装包准备: 首先到官网下载scala,http://www.scala-lang.org/,下载scala-2.11.4.tgz,并复制到/usr/bib 2、解压安装包 tar -zxf scala-2.11.4.tgz 3、设置scala环境变量 这里采用全局设置方法,就是修改etc/profile,它是是所有用户的共用的环境变量 sudo vi /etc/profile 打开之后在末尾添加 export SCALA_HOME=/usr/lib/scala-2.11.4export PATH=$SCALA_HOME/bin:$PATH 使profile生效 source /etc/profile 4、检验是否安装成功 在终端 scala -version 显示如下 Scala code runner version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL 三、hadoop2.3安装 1、安装包准备: hadoop版本有点混乱,除了http://hadoop.apache.org/有众多版本之外,还有Cloudera公司的CDH版本,请从观望下载hadoop-2.3.0.tar.gz或者下载CDH版本hadoop-2.3.0-cdh5.0.0.tar.gz,本文环境是在hadoop-2.3.0-cdh5.0.0.tar.gz之上建立。 2、解压安装包 下载安装包之后复制到/usr目录。 tar -zxf hadoop-2.3.0-cdh5.0.0.tar.gz 解压后生成hadoop-2.3.0-cdh5.0.0,重命名为hadoop-2.3.0。 3、配置环境 这里采用全局设置方法,就是修改etc/profile,它是是所有用户的共用的环境变量 sudo vi /etc/profile 打开之后在末尾添加 export HADOOP_HOME=/home/zero/hadoop/hadoop-2.3.0 export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 使profile生效 source /etc/profile 3、建立hadoop用户 useradd hadoop passwd hadoop 3、配置SSH免登录 su hadoop //切换到hadoop用户目录下 ssh-keygen-t rsa(一路回车 生成密钥) cd/home/hadoop/.ssh/ scp id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/ mv id_rsa.pub authorized_keys 四、spark1.3.1安装 1、安装包准备: spark官网下载spark-1.3.1-bin-hadoop2.3.tgz。 2、解压安装包 下载安装包之后复制到/usr目录。 tar -zxf spark-1.3.1-bin-hadoop2.3.tgz 解压后生成spark-1.3.1-bin-hadoop2.3,重命名为spark-1.3.1-hadoop2.3。 3、配置环境 这里采用全局设置方法,就是修改etc/profile,它是是所有用户的共用的环境变量 sudo vi /etc/profile 打开之后在末尾添加 export SPARK_HOME=/usr/spark-1.3.1-hadoop2.3export PATH=$SPARK_HOME/bin:$PATH 使profile生效 source /etc/profile 4、配置环境 这里采用全局设置方法,就是修改etc/profile,它是是所有用户的共用的环境变量 sudo vi /etc/profile 打开之后在末尾添加 export SPARK_HOME=/usr/spark-1.3.1-hadoop2.3export PATH=$SPARK_HOME/bin:$PATH 使profile生效 source /etc/profile 配置Spark环境变量 cd $SPARK_HOME/confcp spark-env.sh.template spark-env.sh vi spark-env.sh 添加以下内容: export JAVA_HOME=/usr/local/java-1.7.0_79 export HADOOP_HOME=/usr/hadoop-2.3.0 export HADOOP_CONF_DIR=/etc/hadoop/conf export SCALA_HOME=/usr/lib/scala-2.11.4 export SPARK_HOME=/usr/spark-1.3.1-hadoop2.3 export SPARK_MASTER_IP=127.0.0.1 export SPARK_MASTER_PORT=7077 export SPARK_MASTER_WEBUI_PORT=8099 export SPARK_WORKER_CORES=3 //每个Worker使用的CPU核数 export SPARK_WORKER_INSTANCES=1 //每个Slave中启动几个Worker实例 export SPARK_WORKER_MEMORY=10G //每个Worker使用多大的内存 export SPARK_WORKER_WEBUI_PORT=8081 //Worker的WebUI端口号 export SPARK_EXECUTOR_CORES=1 //每个Executor使用使用的核数 export SPARK_EXECUTOR_MEMORY=1G //每个Executor使用的内存 export SPARK_CLASSPATH=/usr/spark-1.3.1-hadoop2.3/lib/sequoiadb-driver-1.12.jar:/usr/spark-1.3.1-hadoop2.3/lib/spark-sequoiadb_2.11.2-1.12.jar //使用巨衫数据库export SPARK_CLASSPATH=$SPARK_CLASSPATH:$CLASSPATHexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HADOOP_HOME/lib/nativ 配置Slave cp slaves.template slavesvi slaves 添加以下内容:localhost 5、启动Spark Master cd $SPARK_HOME/sbin/./start-master.sh 6、启动Spark Slave cd $SPARK_HOME/sbin/./start-slaves.sh

优秀的个人博客,低调大师

Elasticsearch、Logstash、Kibana搭建统一日志分析平台

ELKstack是Elasticsearch、Logstash、Kibana三个开源软件的组合。目前都在Elastic.co公司名下。ELK是一套常用的开源日志监控和分析系统,包括一个分布式索引与搜索服务Elasticsearch,一个管理日志和事件的工具logstash,和一个数据可视化服务Kibanalogstash_1.5.3 负责日志的收集,处理和储存elasticsearch-1.7.2 负责日志检索和分析kibana-4.1.2-linux-x64.tar.gz 负责日志的可视化redis-2.4.14 DB以及日志传输的通道来处理 用一张图来表示他们之间的关系 此文以两个服务器为例来部署 服务器A:192.168.0.1 java elasticsearch redis kibana logstash(agent indexer) 服务器B:192.168.0.2 java logstash(agent) 首先安装服务器A相关软件 一、安装基础软件 yum -y install curl wget lrzsz axel 二、安装配置redis服务 1、安装tcl8.6.1 a) tar -xf tcl8.6.1-src.tar.gz --strip-components=1 b) cd tcl8.6.1/unix c) ./configure --prefix=/usr/local d) make e) make test f) make install g) make install-private-headers h) ln -v -sf tclsh8.6 /usr/bin/tclsh i) chmod -v 755 /usr/lib/libtcl8.6.so(可选,并且如报找不到文件,没关系) 2、安装redis-3.0.2 wget http://download.redis.io/releases/redis-3.0.2.tar.gz tar xzf redis-3.0.2.tar.gz /usr/local/redis cd redis-3.0.2 make MALLOC=libc make test make install 2、配置redis a) mkdir /etc/redis b) mkdir /var/redis c) cp utils/redis_init_script /etc/init.d/redis d) vim /etc/init.d/redis头部添加: #chkconfig: 345 60 60 #!/bin/bash e) mkdir /var/redis/6379 f) cp redis.conf /etc/redis/6379.conf g) vim /etc/redis/6379.conf #设置daemonize为yes #设置pidfile为/var/run/redis_6379.pid #设置loglevel #设置logfile为/var/log/redis_6379.log #设置dir为/var/redis/6379 h) sysctl vm.overcommit_memory=1 i) chkconfig --add redis j) chkconfig redis on 3、重启服务 service redis start/stop 4、查看进程和端口1)查看进程 ps -ef |grep redis root 31927 25099 0 18:26 pts/0 00:00:00 vi /etc/init.d/redis 2)查看端口 netstat -tupnl |grep redis tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 31966/redis-server tcp 0 0 :::6379 :::* LISTEN 31966/redis-server 三、安装java环境 1、安装包 yum -y list java* yum -y install openjdk-7-jdk 2、查看版本 java -version java version "1.7.0_91" OpenJDK Runtime Environment (rhel-2.6.2.2.el6_7-x86_64 u91-b00) OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode) 四、安装elasticsearch 1、下载elasticsearch wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm 2、安装elasticsearch rpm -ivh elasticsearch-1.7.2.noarch.rpm 3、配置1)备份配置 cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak 2)修改配置 echo "network.bind_host: 192.168.0.1" >> /etc/elasticsearch/elasticsearch.yml 4、启动elasticsearch服务 /etc/init.d/elasticsearch start /etc/init.d/elasticsearch stop 5、查看进程和端口 1)查看进程 ps -ef |grep java 2)查看端口 netstat -tupnl |grep java 6、测试 curl -X GET http://192.168.54.147:9200 { "status" : 200, "name" : "Miguel O'Hara", "cluster_name" : "elasticsearch", "version" : { "number" : "1.7.2", "build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec", "build_timestamp" : "2015-09-14T09:49:53Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" } 7、添加到开机启动 update-rc.d elasticsearch defaults update-rc.d: using dependency based boot sequencing 五、安装logstash 1、下载logstash wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.4-1.noarch.rpm 2、安装logstash rpm -ivh logstash-1.5.4-1.noarch.rpm 3、配置(默认没有这个配置文件) vim /etc/logstash/conf.d/logstash_indexer.conf input { redis { host => "192.168.0.1" data_type => "list" key => "logstash:redis" type => "redis-input" port => "6379" } } output { elasticsearch { host => "192.168.0.1" } } 4、启动服务 /etc/init.d/logstash start 5、使用jps -mlv或ps -ef来查看下进程 ps -ef|grep logst 6、设置开机启动 update-rc.d logstash defaults update-rc.d: using dependency based boot sequencing 六、安装kibana(前端web) 1、下载 wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz 2、解压到指定目录 tar zxvf kibana-4.1.2-linux-x64.tar.gz -C /opt 3、创建日志目录 mkdir -p /opt/kibanalog 4、配置1)备份配置 cp /opt/kibana-4.1.2-linux-x64/config/kibana.yml /opt/kibana-4.1.2-linux-x64/config/kibana.yml.bak 2)修改配置 sed -i 's!^elasticsearch_url: .*!elasticsearch_url: "http://192.168.0.1:9200"!g' /opt/kibana-4.1.2-linux-x64/config/kibana.yml sed -i 's!^host: .*!host: "192.168.0.1"!g' /opt/kibana-4.1.2-linux-x64/config/kibana.yml 5、启动服务 cd /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana & 6、查看进程和端口1)查看进程 ps aux |grep kibana 2)查看端口 netstat -tupnl|grep 5601 7、在windows上访问 http://192.168.0.1:5601 8、设置开机启动 echo "cd /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &" >> /etc/rc.local 到此服务器A的相关软件全部安装完成; 现在安装日志采集端的程序(服务器B),可以有多个 clientB安装配置logstash(agent) 1、安装java环境 yum -y list java* yum -y install openjdk-7-jdk 1、下载logstash wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.4-1.noarch.rpm 2、安装logstash rpm -ivh logstash-1.5.4-1.noarch.rpm 3、配置(默认没有这个配置文件)1)配置logstash_agent vim /etc/logstash/conf.d/logstash_agent.conf input { file { path => "/tmp/*.log" start_position => beginning } } output { redis { host => "192.168.0.1" data_type => "list" key => "logstash:redis" } } 5、启动服务 /etc/init.d/logstash start logstash started. 6、使用jps -mlv或ps -ef来查看下进程 ps -ef|grep logst 7、设置开机启动 update-rc.d logstash defaults update-rc.d: using dependency based boot sequencing 至此服务器B也安装配置完成,根据日志采集端的需要可以配置N个服务B 如何查看日志: 1、查看redis日志 cat /var/log/redis/redis-server.log 2、查看elasticsearch日志 cat /var/log/elasticsearch/elasticsearch.log tail -300f /var/log/elasticsearch/elasticsearch.log 3、查看logstash日志 cat /var/log/logstash/logstash.errtail -30f /var/log/logstash/logstash.err 4、查看kibana日志 cat /opt/kibanalog/nohup.out tail -30f /opt/kibanalog/nohup.out 错误处理 1)unable to fetch mapping, do you have indices matching the pattem? kibana 报这个错误就是因为没有从logstash 过来任何数据一般检查一下数据传输

优秀的个人博客,低调大师

开源数据库备份神器 Databasus|Docker容器化搭建实操

# 一、Databasus介绍 ## 1.1 Databasus目简介 > Databasus 是一款免费、开源、可自托管的现代化数据库备份管理工具。它通过一个精致且功能强大的 Web 界面,将分散的数据库备份工作统一起来,支持 PostgreSQL、MySQL、MariaDB 和 MongoDB,旨在终结混乱的手工脚本时代,让备份真正变得“可管、可控、可协作”。 ## 1.2 Databasus主要特点 1. **多数据库统一管理**:支持 PostgreSQL 12-18、MySQL 5.7-9、MariaDB 10-12 及 MongoDB 4.2+ 至 8 等主流版本,实现单一平台集中管控。 1. **灵活的调度与智能压缩**:支持按小时、天、周、月或自定义 Cron 表达式进行精确调度,并采用智能压缩技术,可节省 4-8 倍存储空间。 1. **真实恢复验证**:通过实际启动数据库容器执行恢复操作,并生成包含每张表行数的详细报告,确保备份文件不仅存在,而且真实可用。 1. **多样化的保留策略**:提供按时间、按数量以及 GFS(祖父-父亲-儿子)分层保留三种策略,满足从简单清理到长期合规归档的各类需求。 1. **丰富的存储后端与安全加密**:支持本地、S3、Google Drive、SFTP 等数十种存储目的地,所有备份在离开前均经过 AES-256-GCM 加密,杜绝厂商锁定。 1. **实时多渠道通知**:支持邮件、Telegram、Slack、Discord 及 Webhook 等多种渠道,在备份成功或失败时第一时间通知团队。 1. **企业级团队协作**:提供工作空间隔离、基于角色的访问控制(RBAC)和完整审计日志,满足多项目、多团队的协作与合规要求。 1. **多样的连接与备份类型**:支持远程直连和轻量级 Agent 两种连接方式,并提供逻辑、物理和增量(支持 PITR 时间点恢复)三种备份类型。 # 二、本次实践规划 ## 2.1 本地环境规划 > 本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。 |hostname|IP地址 |操作系统版本 |Docker版本 |部署项目|备注| | --- | --- | --- | --- | --- | --- | |jeven|192.168.3.88 |Ubuntu 24.04.2 LTS|28.5.0 |Databasus|——| ## 2.2 本次实践介绍 > 1.本次实践部署环境为个人测试环境,生产环境请谨慎; > 2.在Docker环境下部署Databasus数据库备份工具。 # 三、本地环境检查 ## 3.1 检查Docker服务状态 > 检查Docker服务是否正常运行,确保Docker正常运行。 ``` root@jeven:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) Active: active (running) since Wed 2026-05-13 20:00:35 CST; 1 week 1 day ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 755791 (dockerd) Tasks: 154 Memory: 1.3G (peak: 2.5G) CPU: 17min 28.568s CGroup: /system.slice/docker.service ``` ## 3.2 检查Docker版本 > 检查Docker版本 ``` root@jeven:~# docker -v Docker version 28.5.0, build 887030f ``` ## 3.3 检查docker compose 版本 > 检查Docker compose版本,确保2.0以上版本。 ``` root@jeven:~# docker compose version Docker Compose version v2.39.4 ``` # 四、拉取Databasus镜像 > 下载Databasus镜像,执行以下命令: ``` root@jeven:~# docker pull databasus/databasus:v3.42.0 v3.42.0: Pulling from databasus/databasus 068fedd6b0f1: Pull complete b82951ac38bb: Pull complete 355847d77b88: Pull complete 24b019d43c64: Pull complete b9c684d21a23: Pull complete 4f4fb700ef54: Pull complete 079ebae73ecf: Pull complete 77222f6e2994: Pull complete 960f9198fd81: Pull complete b38d9bf88a30: Pull complete 6dd879aea289: Pull complete 65e2dec335af: Pull complete 33a6da0e4493: Pull complete fbd387e747d5: Pull complete 90fa4f99a3ad: Pull complete cb000e46e837: Pull complete Digest: sha256:f748c20cecb3cf3162d80ebfddd4f192b5e4ee640d600c9daf726310ac49e51c Status: Downloaded newer image for databasus/databasus:v3.42.0 docker.io/databasus/databasus:v3.42.0 ``` ![](https://developer.qcloudimg.com/http-save/4995888/70c78f6c60e931eeb0ce7bf3a7c241a8.png) # 五、部署Databasus服务 ## 5.1 创建部署目录 > 创建部署目录 ``` mkdir -p /data/databasus/data && cd /data/databasus ``` > 在测试环境中,为了方便操作,我们直接为挂载目录设置了完全权限。但在生产环境中,请务必根据实际安全需求,配置更精细、严格的权限控制方案。 ``` chmod -R 777 /data/databasus ``` ## 5.2 docker-cli方式部署(可选) > 如果想要使用docker-cli方式部署,可参考以下命令部署。(可选) ``` docker run -d \ --name databasus \ --restart=unless-stopped \ -p 6500:4005 \ -v $(pwd)/data:/databasus-data \ databasus/databasus:v3.42.0 ``` ## 5.3 创建Databasus容器 > 本次实践我们采用 Docker Compose 方式进行部署,这也是我推荐的方式。首先我们需要创建并编辑 `docker-compose.yaml` 文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。 ``` vim docker-compose.yaml ``` ``` version: "3" services: databasus: image: databasus/databasus:v3.42.0 container_name: databasus restart: always ports: - "6500:4005" volumes: - /data/databasus/data:/databasus-data ``` > 执行以下命令,创建Databasus容器。 ``` docker compose up -d ``` ![](https://developer.qcloudimg.com/http-save/4995888/1544a374656518a52446264bbc921e79.png) ## 5.4 查看Databasus容器状态 > 检查Databasus容器运行状态,确保Databasus容器正常启动。 ``` root@jeven:/data/databasus# docker compose ps WARN[0000] /data/databasus/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS databasus databasus/databasus:v3.42.0 "/app/start.sh" databasus 51 seconds ago Up 51 seconds 0.0.0.0:6500->4005/tcp, [::]:6500->4005/tcp ``` ![](https://developer.qcloudimg.com/http-save/4995888/4eb93a983906d1ac5c188448f261670e.png) ## 5.5 检查Databasus容器日志 > 检查容器运行日志,确保Databasus服务正常运行。 ``` docker compose logs ``` ![](https://developer.qcloudimg.com/http-save/4995888/e989048e836b0f522cb8a7678e7f1a4e.png) ![](https://developer.qcloudimg.com/http-save/4995888/eb03ff6a6af2bf1812a48575b3407840.png) # 六、访问Databasus服务 ## 6.1 访问Databasus初始页 > 浏览器地址: `http://:6500`,访问Databasus初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。 ![](https://developer.qcloudimg.com/http-save/4995888/4b3398378814ed46bfd059bf4589d33a.png) ## 6.2 登录Databasus > 默认账号为admin,密码我们自行设置即可。 ![](https://developer.qcloudimg.com/http-save/4995888/00b8d7dd59c745a423fff3c4d624d407.png) ![](https://developer.qcloudimg.com/http-save/4995888/8027488f66fdf06a19b91f7c944d8f7a.png) # 七、数据库备份 ## 7.1 创建工作空间 > 点击【Create workspace】创建工作空间,名称自行填写。 ![](https://developer.qcloudimg.com/http-save/4995888/f38674a5cb139f94fefb3ab748bc852a.png) ## 7.2 添加备份数据库 > 我们点击“Add database”,填写数据库名称和数据库类型。这里备份的数据库为测试的mariadb数据库,如下所示: ![](https://developer.qcloudimg.com/http-save/4995888/1933b6e0f40ca6b8fc48d030699892d7.png) > 填写备份数据库的相关信息,测试连接成功后,点击下一步继续。 ![](https://developer.qcloudimg.com/http-save/4995888/4969561b1f9bb4eedc7e73a53627f729.png) > 创建只读用户,为了备份安全了创建只读用户。 ![](https://developer.qcloudimg.com/http-save/4995888/7a9fe8fe6bf9d4f698ce73c0758219c1.png) > 设置备份计划:根据需要填写,注意存储选择可选择本地存储或其余方式。 ![](https://developer.qcloudimg.com/http-save/4995888/4b334104a00816c8079a668fbbab9c12.png) > 完成备份数据库的添加,如果需要配置通知器,可自行创建与配置。 ![](https://developer.qcloudimg.com/http-save/4995888/dddd9da701ef0d5ea3b1fdf1d99aee95.png) ![](https://developer.qcloudimg.com/http-save/4995888/8a6a91faac96295a255c0024b6534332.png) # 八、总结 > 本次实践在本地 Docker 环境中成功部署了 Databasus 数据库备份工具,从拉取镜像、创建容器到配置端口映射,整个过程流畅高效。通过其直观的 Web 界面,我们快速完成了工作空间创建与数据库添加,充分验证了该工具在统一管理多类型数据库备份任务上的便捷性。Databasus 集成了灵活的调度策略、多样化的存储后端以及强大的团队协作功能,为中小团队提供了一套开箱即用、安全可靠的数据保护方案。这套部署流程可快速复用于开发测试及生产环境,有效降低数据库备份管理的运维成本。

优秀的个人博客,低调大师

用 WorkBuddy 搭建「AI × 研发管理」周度情报专题(附提示词)

我在一家全球化制造企业做研发管理,团队做硬件,不是软件。个人长期关注和学习 AI,认为它是制造业企业的效率倍增器。困境很具体:关于 AI 提效的讨论几乎都在软件研发的语境里。 SWE-bench、代码采纳率、PR 数——这些词每周都能读到,但翻译不成我关心的问题:组织怎么调、度量怎么改、岗位怎么变、评审和测试哪个环节先出问题。第二层是节奏差:硬件研发的决策周期以季度计,AI 的变化以周计。人工浏览跟不上;而集团总部与区域团队之间本就存在信息落差,判断更难对齐。我试过三种办法:

优秀的个人博客,低调大师

LanLens容器化部署指南 | Docker快速搭建网络资产监控系统

# 一、LanLens介绍 ## 1.1 LanLens工具简介 > LanLens 是一款开源的、自托管的局域网监控与设备管理仪表盘。它通过 ARP 扫描自动发现网络中的设备,并提供一个清晰的 Web 界面,让您能够对设备进行文档化记录、分类管理以及一键连接,是 NAS 用户、Homelab 玩家和小型办公室整理网络资产的得力工具。 ## 1.2 LanLens主要特点 1. **自动发现**:通过 ARP 扫描自动识别局域网内的所有设备及其 MAC/IP 地址。 1. **智能分类**:支持自定义设备类别、离线 MAC 厂商查询以及 DHCP 标识检测,让设备一目了然。 1. **网段管理**:支持按颜色、IP 范围和用量对网段进行可视化划分与管理。 1. **资产台账**:为每台设备提供详细的文档字段、IP 历史记录,并支持手动重检离线状态。 1. **服务清单**:可记录每台设备运行的服务,并提供独立服务目录页,支持拖拽分组和自定义图标。 1. **一键连接**:内置 SSH、RDP、HTTP、HTTPS 等一键连接操作,快速访问设备。 1. **深度扫描**:支持通过 nmap 进行端口扫描,以及通过 SSH(Linux)和 WinRM(Windows)进行硬件、操作系统、服务和容器等深度扫描。 1. **凭证保险库**:采用 Fernet 加密技术(密钥源自 SECRET_KEY)安全存储 SSH 和 WinRM 的访问凭据。 1. **虚拟机感知**:能自动检测 Proxmox、KVM 和 Hyper-V 宿主机,并枚举其虚拟机,将 VM 映射到已知设备。 1. **定时扫描**:支持为每台设备设置自动深度扫描计划,实现持续监控。 1. **即时通知**:支持通过 Telegram 发送新设备发现和设备更新的通知。 1. **多语言适配**:提供英语、德语和意大利语界面,并拥有适配桌面和移动端的响应式仪表盘。 # 二、本次实践规划 ## 2.1 本地环境规划 > 本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。 |hostname|IP地址 |操作系统版本 |Docker版本 |部署项目|备注| | --- | --- | --- | --- | --- | --- | |jeven|192.168.3.88 |Ubuntu 24.04.2 LTS|28.5.0 |LanLens|——| ## 2.2 本次实践介绍 > 1.本次实践部署环境为个人测试环境,生产环境请谨慎; > 2.在Docker环境下部署网络监控工具LanLens。 # 三、本地环境检查 ## 3.1 检查Docker服务状态 > 检查Docker服务是否正常运行,确保Docker正常运行。 ``` root@jeven:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) Active: active (running) since Thu 2026-02-05 00:27:40 CST; 1s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 841698 (dockerd) Tasks: 65 Memory: 73.5M (peak: 77.1M) CPU: 975ms CGroup: /system.slice/docker.service ``` ## 3.2 检查Docker版本 > 检查Docker版本 ``` root@jeven:~# docker -v Docker version 28.5.0, build 887030f ``` ## 3.3 检查docker compose 版本 > 检查Docker compose版本,确保2.0以上版本。 ``` root@jeven:~# docker compose version Docker Compose version v2.39.4 ``` # 四、拉取LanLens镜像 > 下载LanLens镜像,执行以下命令: ``` root@jeven:~# docker pull alexrosbach/lanlens:1.5.0 1.5.0: Pulling from alexrosbach/lanlens 57fb71246055: Pull complete 797809503061: Pull complete 759e0c85a86e: Pull complete b33ff618953d: Pull complete e1b7808202cc: Pull complete 139cd875bbee: Pull complete 9414313f16ad: Pull complete ceb56ab7a3c0: Pull complete 337b15847b10: Pull complete 9d2ac2fde8e0: Pull complete e4dba22d0a30: Pull complete f29100864560: Pull complete f142a0d21606: Pull complete a177fd15c467: Pull complete Digest: sha256:dd80cb40e9cb1109bf80cae9dd07b651782c9328921f8e5a6c8d43691301415d Status: Downloaded newer image for alexrosbach/lanlens:1.5.0 docker.io/alexrosbach/lanlens:1.5.0 ``` ![](https://developer.qcloudimg.com/http-save/4995888/10ef7f255ece6fe77bd5d1b911bf5d2c.png) # 五、部署LanLens服务 ## 5.1 创建部署目录 - 创建部署目录 ``` mkdir -p /data/lanLens/data && cd /data/lanLens ``` - 在测试环境中,为了方便操作,我们直接为挂载目录设置了完全权限。但在生产环境中,请务必根据实际安全需求,配置更精细、严格的权限控制方案。 ``` chmod -R 777 /data/lanLens/ ``` ## 5.2 生成随机密钥 > 执行以下命令,生成随机密钥,在后续步骤使用。 ``` root@jeven:/data/lanLens# python3 -c "import secrets; print(secrets.token_hex(32))" a9fd8c03fa59509dcae18042f5594221f50f0d508e2a85ce1900c5f7ac042e5a ``` ![](https://developer.qcloudimg.com/http-save/4995888/578f5428a49037cfa50f60f9028e27a7.png) ## 5.3 创建Dockhand容器 > 如果想要使用docker-cli方式部署,可参考以下命令部署。(可选) ``` docker run -d \ --name=lanlens \ --restart=always \ --network=host \ --cap-add=NET_ADMIN \ --cap-add=NET_RAW \ -v /data/lanLens/data:/data \ -e SECRET_KEY=a9fd8c03fa59509dcae18042f5594221f50f0d508e2a85ce1900c5f7ac042e5a \ -e DEFAULT_ADMIN_PASSWORD=admin \ -e LANLENS_PORT=7765 \ -e BACKEND_PORT=17765 \ -e TZ=Asia/Shanghai \ alexrosbach/lanlens:1.5.0 ``` > 本次实践我们采用 Docker Compose 方式进行部署,这也是我推荐的方式。首先我们需要创建并编辑 `docker-compose.yaml` 文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。 ``` vim docker-compose.yaml ``` ``` services: lanlens: image: alexrosbach/lanlens:1.5.0 # To build locally instead of pulling from Docker Hub, uncomment: # build: . container_name: lanlens restart: always # Required for ARP scanning: container must share the host network stack # so scapy can send raw Ethernet frames via the host's physical NIC. # Remove this and uncomment 'ports' below to use bridge networking — # but note that ARP scanning will not work in bridge mode. network_mode: host cap_add: - NET_ADMIN # network interface configuration - NET_RAW # raw socket access for ARP broadcast volumes: - /data/lanLens/data:/data # SQLite database + persistent state environment: # ── REQUIRED ────────────────────────────────────────────────────────────── # Replace with a strong random key (min 32 chars). App refuses to start otherwise. # Generate: python3 -c "import secrets; print(secrets.token_hex(32))" - SECRET_KEY=a9fd8c03fa59509dcae18042f5594221f50f0d508e2a85ce1900c5f7ac042e5a # ── OPTIONAL ────────────────────────────────────────────────────────────── # Initial admin password (will be changed on first login) - DEFAULT_ADMIN_PASSWORD=admin # Host-mode HTTP port for the LanLens UI (for example 80, 8080, 7765) - LANLENS_PORT=7765 # Internal API port used behind nginx (leave as-is unless you know why) - BACKEND_PORT=17765 # Timezone (e.g. Europe/Berlin, America/New_York, UTC) - TZ=Asia/Shanghai # Host mode still allows a custom HTTP port. # Example: set LANLENS_PORT=80 above if you want LanLens on port 80. # ── Bridge networking alternative (ARP scanning disabled) ───────────────── # Comment out network_mode and cap_add above, then uncomment: # ports: # - "8080:8080" # and set LANLENS_PORT=8080 above so nginx listens on the same port. healthcheck: test: ["CMD-SHELL", "curl -fs http://localhost:$${LANLENS_PORT:-7765}/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 20s ``` ![](https://developer.qcloudimg.com/http-save/4995888/b4d3bf84916ff54f6d3b7fdcec673953.png) - 相关配置项介绍: |配置项|默认值|解释| | --- | --- | --- | |SECRET_KEY|无(必需)|至少32位的随机字符串,用于加密凭据存储。| |DEFAULT_ADMIN_PASSWORD|admin|初始管理员密码,首次登录后请务必修改。| |LANLENS_PORT|7765|LanLens Web UI 的 HTTP 服务端口。| |BACKEND_PORT|17765|内部 FastAPI 后端端口,通常无需修改。| |DB_PATH|/data/lanlens.db|SQLite 数据库文件的存储路径。| |TZ|Asia/Shanghai|设置容器运行时的时区。| ## 5.4 创建LanLens容器 > 执行以下命令,创建LanLens容器。 ``` docker compose up -d ``` ![](https://developer.qcloudimg.com/http-save/4995888/629b466af40e2d766d2ef659b08b1acc.png) ## 5.5 查看LanLens容器状态 > 检查LanLens容器运行状态,确保LanLens容器正常启动。 ``` root@jeven:/data/lanLens# docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS lanlens alexrosbach/lanlens:1.5.0 "/entrypoint.sh" lanlens 30 seconds ago Up 30 seconds (healthy) ``` ![](https://developer.qcloudimg.com/http-save/4995888/9f9a16283d80ba7a6809f3dffa6ef674.png) ## 5.6 检查监听端口 > 检查LanLens服务端口,确保服务端口正常监听。 ``` root@jeven:/data/lanLens# ss -tunlp |grep 7765 tcp LISTEN 0 511 0.0.0.0:7765 0.0.0.0:* users:(("nginx",pid=1591587,fd=5),("nginx",pid=1591585,fd=5)) tcp LISTEN 0 2048 127.0.0.1:17765 0.0.0.0:* users:(("uvicorn",pid=1591559,fd=12)) ``` ## 5.7 检查LanLens容器日志 > 检查容器运行日志,确保LanLens服务正常运行。 ``` docker compose logs ``` ![](https://developer.qcloudimg.com/http-save/4995888/44e00ee62552900ce4d6edffbd69cc6a.png) # 六、访问LanLens服务 ## 6.1 访问LanLens初始页 > 浏览器地址: `http://:7765`,访问LanLens初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。 ![](https://developer.qcloudimg.com/http-save/4995888/471e7bd38a87b0e63f8a91b14747b49e.png) ## 6.2 登录LanLens > 默认账号密码为admin/admin,第一次登录需要修改密码,更改密码后可进入LanLens首页。 ![](https://developer.qcloudimg.com/http-save/4995888/bec767d52a12420319cb074edb478e10.png) ![](https://developer.qcloudimg.com/http-save/4995888/239f8453dc77ba2396dc1b195e23cc8a.png) # 七、基本使用 ## 7.1 设置中文 > 在系统设置中,将语言选择位简体中文,保存设置即可。 ![](https://developer.qcloudimg.com/http-save/4995888/7b5cb814bf7ace1882867288733c6f27.png) ## 7.2 简单扫描 > 在网段模块,自行添加需要的扫描的内网网段。 ![](https://developer.qcloudimg.com/http-save/4995888/0b91cf3f285a6ee23073d93696b83075.png) > 在仪表盘中,我们选择需要扫描的网段,点击【立即扫描】即可。 ![](https://developer.qcloudimg.com/http-save/4995888/9e92d91eceb773cebea6edf4b431da8f.png) # 八、总结 > 本次在本地Docker环境部署LanLens的过程流畅高效,从环境检查到镜像拉取、容器创建,各环节操作清晰明确。通过配置核心的`SECRET_KEY`环境变量并采用`host`网络模式,确保了工具对局域网设备的ARP扫描能力。部署完成后,通过Web界面登录并执行简单扫描,直观呈现了设备列表及基础信息,功能展示清晰易用。LanLens以轻量化的部署方式和实用的功能,为快速整理与监控局域网设备提供了便捷途径,适合个人及小型场景使用。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册