从头搭建 influxdb

本文介绍如何通过SSH公钥实现免密登录,以及InfluxDB的安装配置过程,包括权限认证设置与日志访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.登陆机器

机器有密码,每次登陆都要输入,好麻烦,于是这样:

ssh-copy-id root@x.x.x.x

它会将你本机的公钥添加到目标机器的 ~/.ssh/authorized_keys 中,并对文件夹与文件设置合适的权限

2.安装 nodejs(忽略)

安装nodejs

yum install nodejs

使用cnpm替换npm来加速下载

npm install -g cnpm --registry=https://registry.npm.taobao.org

下载 n

cnpm install -g n

使用n更新nodejs到最新稳定版本

n stable
3.安装pm2(忽略)
cnpm install pm2@latest -g
4.下载安装 influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.3.2.x86_64.rpm
sudo yum localinstall influxdb-1.3.2.x86_64.rpm
5.配置、启动、设置开机启动
# 默认配置
/etc/influxdb/influxdb.conf
# 启动
service influxdb start
# 设置开机启动
systemctl enable influxdb
6.为 influxdb 添加权限认证
[http]
  enabled = true
  bind-address = ":8086"
  auth-enabled = true # ✨
  log-enabled = true

然后重启实例验证:

curl -G http://localhost:8086/query --data-urlencode "q=SHOW DATABASES"

返回:

{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"]]}]}]}

即说明未开启认证
返回:

{"error":"error authorizing query: create admin user first or disable authentication"}

即说明已开启认证
当我们开启了认证,influxdb需要我们至少创建一个admin用户,不然不能交互

创建一个 admin 用户(至少一个)
# influx
Connected to http://localhost:8086 version 1.3.2
InfluxDB shell version: 1.3.2
> CREATE USER admin with PASSWORD 'password' WITH ALL PRIVILEGES
>

我们创建了用户:
验证:

curl -G http://localhost:8086/query -u admin:password  --data-urlencode "q=SHOW DATABASES"
7.访问日志

因为我们刚才开启了日志(log-enabled = true):
可以在:

/var/log/message

查看访问记录

Aug  9 20:16:57 localhost influxd: [httpd] 127.0.0.1 - admin [09/Aug/2017:20:16:57 +0800] "GET /query?q=SHOW%20DATABASES HTTP/1.1" 401 33 "-" "curl/7.29.0" a395f891-7cfc-11e7-800a-000000000000 119520
Aug  9 20:17:06 localhost influxd: [I] 2017-08-09T12:17:06Z SHOW DATABASES service=query
Aug  9 20:17:06 localhost influxd: [httpd] 127.0.0.1 - admin [09/Aug/2017:20:17:06 +0800] "GET /query?q=SHOW+DATABASES HTTP/1.1" 200 109 "-" "curl/7.29.0" a92acfad-7cfc-11e7-800b-000000000000 531
Aug  9 20:17:09 localhost influxd: [I] 2017-08-09T12:17:09Z SHOW DATABASES service=query
Aug  9 20:17:09 localhost influxd: [httpd] 127.0.0.1 - admin [09/Aug/2017:20:17:09 +0800] "GET /query?q=SHOW+DATABASES HTTP/1.1" 200 109 "-" "curl/7.29.0" aaf24597-7cfc-11e7-800c-000000000000 549
Aug  9 20:17:10 localhost influxd: [I] 2017-08-09T12:17:10Z SHOW DATABASES service=query
Aug  9 20:17:10 localhost influxd: [httpd] 127.0.0.1 - admin [09/Aug/2017:20:17:10 +0800] "GET /query?q=SHOW+DATABASES HTTP/1.1" 200 109 "-" "curl/7.29.0" ab5ead93-7cfc-11e7-800d-000000000000 582
Aug  9 20:17:11 localhost influxd: [I] 2017-08-09T12:17:11Z SHOW DATABASES service=query
Aug  9 20:17:11 localhost influxd: [httpd] 127.0.0.1 - admin [09/Aug/2017:20:17:11 +0800] "GET /query?q=SHOW+DATABASES HTTP/1.1" 200 109 "-" "curl/7.29.0" abc7cbd1-7cfc-11e7-800e-000000000000 496

后面会补充些权限与用户的东西

你们不要以为这就完啦,当然不是搭建这么容易,后面还有 aggregation 等偏应用的东西

<think>好的,用户现在问的是“幫我開發佈置一個消防CRT系統”。首先,我需要明确“消防CRT系统”具体指的是什么。CRT通常有不同的含义,比如阴极射线管(Cathode Ray Tube),但在这里显然不合适。可能是指“中央响应终端”(Central Response Terminal)或者“控制与报告终端”(Control and Reporting Terminal),或者是其他专业术语的缩写。我需要先确认用户的具体需求。 接下来,用户之前的问题是关于在CAD中添加消防设施点位图的软件开发,现在转而提到CRT系统,可能两者有关联。可能用户希望开发一个消防控制系统,结合CAD图纸进行布局设计,或者是一个中央监控系统。需要进一步分析可能的CRT系统在消防领域的应用。 考虑到消防系统的常见组成部分,CRT可能指的是“控制室终端”或者“中央监控系统”。例如,消防CRT系统可能是一个中央控制台,用于监控火灾报警、喷淋系统、排烟系统等,并显示在CAD图纸上。因此,用户可能需要一个集成了实时监控、报警处理和CAD图纸显示的系统。 接下来需要确定用户的需求范围:是仅开发软件部分,还是包括硬件集成?用户是希望从头开发,还是基于现有系统进行扩展?此外,用户可能需要的功能包括实时数据监控、报警处理、设备控制、报表生成以及与CAD图纸的交互等。 用户可能没有明确说明系统的具体功能,因此需要进一步询问或假设。根据之前的对话,用户可能对CAD集成有需求,所以消防CRT系统可能需要与CAD图纸结合,显示设备位置和状态。例如,在CAD图上实时显示烟雾探测器、喷淋头等设备的状态,并进行控制。 开发这样的系统需要考虑以下几个部分:用户界面设计、实时数据处理、CAD集成、数据库管理、通信协议(与消防设备的连接)、报警管理、权限控制等。技术选型方面,可能需要使用C#或Java进行后端开发,前端使用WPF或Web技术,CAD集成可能需要AutoCAD的API或者第三方库。 另外,用户可能关注系统的实时性和可靠性,因为消防系统对响应时间要求很高。需要确保系统能够快速处理报警并触发相应动作,比如启动喷淋系统、关闭防火门等。同时,数据存储和日志记录也是重要的,以便事后分析和审计。 还需要考虑合规性和标准,比如消防系统的设计必须符合当地的消防法规和建筑规范,可能需要进行认证。例如,在中国需要符合GB 50116-2013《火灾自动报警系统设计规范》等标准。 用户可能没有考虑到系统的扩展性和维护性,因此在架构设计时需要模块化,便于未来添加新功能或集成更多设备。此外,用户培训和技术支持也是项目成功的关键因素。 总结下来,用户的需求是开发一个消防CRT系统,可能涉及监控、控制、CAD集成和报警管理。需要进一步澄清CRT的具体含义,但基于常见消防系统的架构,可以提供一个初步的开发框架和建议,同时提醒用户可能需要的硬件支持和合规要求。</think>开发一个消防CRT系统(通常指 **消防控制与报告终端系统**,即 **Centralized Reporting and Control Terminal**)需要结合消防监控、数据集成、实时响应和用户界面设计等多方面技术。以下是具体步骤和关键点: --- ### **1. 明确系统定义与功能需求** 消防CRT系统的核心目标是 **集中监控消防设备状态、实时报警、联动控制** 以及 **生成报告**。具体功能可包括: - **实时监控**:显示消防设备(如烟感、喷淋头、防火门)状态。 - **报警管理**:触发声光报警,推送通知到相关人员。 - **联动控制**:火灾发生时自动启动喷淋系统、排烟风机等。 - **数据记录与报告**:存储历史数据,生成合规性报告。 - **CAD集成**:在建筑平面图上动态显示设备位置和状态。 --- ### **2. 技术选型与架构设计** #### **硬件层** - **消防设备接口**:支持Modbus、BACnet等协议,连接烟感、温感、喷淋泵等。 - **服务器与网络**:部署本地服务器或云服务器,确保低延迟通信。 #### **软件层** - **后端开发**: - 语言:C#(适用于工业控制)、Python(快速开发数据处理模块)。 - 框架:使用OPC UA或MQTT协议对接设备数据。 - 数据库:时序数据库(如InfluxDB)存储实时数据,关系型数据库(如MySQL)存储配置信息。 - **前端开发**: - 桌面端:WPF(Windows平台)或Qt(跨平台)。 - Web端:React/Vue + WebSocket实现实时监控。 - CAD集成:通过AutoCAD API或Forge Viewer SDK在图纸中动态标注设备。 #### **安全与合规** - 符合消防规范(如中国GB 50116、国际NFPA标准)。 - 冗余设计:双服务器热备、断网本地缓存。 --- ### **3. 核心模块开发** #### **(1) 设备通信与数据采集** - 开发驱动适配不同厂商设备的通信协议。 - 示例代码(Python + Modbus TCP): ```python from pymodbus.client import ModbusTcpClient client = ModbusTcpClient('192.168.1.100', port=502) client.connect() # 读取烟感状态 result = client.read_coils(address=0, count=1, slave=1) smoke_detected = result.bits[0] ``` #### **(2) 报警与联动逻辑** - 规则引擎设计(例如:若烟感+温感同时触发,则启动喷淋系统)。 - 联动示例: ```csharp if (smokeSensor.Value && temperatureSensor.Value > 70) { sprinklerSystem.Activate(); fireDoors.Close(); } ``` #### **(3) CAD可视化集成** - 在AutoCAD插件中动态标注设备状态: ```csharp // AutoCAD .NET API示例 using Autodesk.AutoCAD.DatabaseServices; BlockTableRecord modelSpace = ...; Circle alarmCircle = new Circle(position, Vector3d.ZAxis, 0.5); alarmCircle.ColorIndex = 1; // 红色 modelSpace.AppendEntity(alarmCircle); ``` --- ### **4. 测试与部署** - **仿真测试**:使用消防模拟器验证报警和联动逻辑。 - **压力测试**:模拟千级设备并发数据,确保系统稳定性。 - **用户培训**:提供操作手册和应急预案。 --- ### **5. 现成解决方案与第三方工具** - **设备协议库**:libmodbus(C)、pymodbus(Python)。 - **工业组态软件**:Ignition SCADA、WinCC(可快速搭建监控界面)。 - **CAD SDK**:AutoCAD .NET API、Forge Viewer(Autodesk官方三维可视化工具)。 --- ### **挑战与建议** 1. **多协议兼容性**:消防设备厂商协议不统一,需预留扩展接口。 2. **实时性要求**:需优化通信和数据处理(如边缘计算减少延迟)。 3. **合规性认证**:需与消防部门合作完成系统验收。 --- 如果需要进一步细化某个模块(如CAD集成或报警逻辑),可以随时提出!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值