ClickHouse 安装及简单使用
官方文档 安装(CentOS 7) 检测环境许可 1grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" 添加官方存储库 123sudo yum install yum-utilssudo rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPGsudo yum-config-manager --add-repo https://repo.clickhouse.com/rpm/stable/x86_64 如果您想使用最新的版本,请用 testing 替代 stable(我们只推荐您用于测试环境)。prestable 有时也可用。 安装 1sudo yum install clickhouse-server clickhouse-client 启动 配置文件 编辑 /etc/clickhouse-server/config.xml,注释...
ClickHouse 常用函数
group_concat(distinct xxx)1groupUniqArray(toString(xxx)) -- 得到的是数组 列转行1groupArray(xxx) -- 得到的是数组 合并数组成一个字符串1arrayStringConcat(arr, separator) 行转列1arrayJoin(groupArray(xxx)) 去重函数1arrayDistinct(array) 将数组拼接成一行12arrayConcat(array) -- 此函数只有一个数组参数,无法设置分割符-- 可使用 arrayStringConcat(array, '分隔符') 设置分隔符 结果的最后一个1anyLast(xxx) 取出现次数前 N 的值1topK(3)(xxx) -- 取出现次数前 3 的值 复杂函数:过滤数组,取其中不等于 a 的第一个值1arrayElement(arrayFilter(x -> x != 'a', ['a','b','c'...
关于 ClickHouse 分区问题
最近项目在尝试 ClickHouse 集群部署,但是我们在做 ETL 的时候,有个表想着为了加快响应速度,建立了分区,所以对分区知识进行了二次调研。 重要结论首先分区并不能加快查询速度,而更加适用于更新或者删除数据用。 分区数量限制by max_partitions_per_insert_block 控制,默认是 100。当插入数据到 100 以上的时候,会报错: 12345678DB::Exception: Too many partitions for single INSERT block (more than 100). The limit is controlled by 'max_partitions_per_insert_block' setting. Large number of partitions is a common misconception. It will lead to severe negative performance impact, including slow server startup, slow INSERT ...
ELK 常用架构及使用场景
ELK 常用架构及使用场景 摘自创始人 最简单架构在这种架构中,只有一个 Logstash、Elasticsearch 和 Kibana 实例。Logstash 通过输入插件从多种数据源(比如日志文件、标准输入 Stdin 等)获取数据,再经过滤插件加工数据,然后经 Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示。 Logstash 作为日志搜集器这种架构是对上面架构的扩展,把一个 Logstash 数据搜集节点扩展到多个,分布于多台机器,将解析好的数据发送到 Elasticsearch server 进行存储,最后在 Kibana 查询、生成日志报表等。 这种结构因为需要在各个服务器上部署 Logstash,而它比较消耗 CPU 和内存资源,所以比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工作。 Beats 作为日志搜集器这种架构引入 Beats 作为日志搜集器。目前 Beats 包括四种: Packetbeat:搜集网络流量数据 Topbeat:搜集系统、进程和文件系统级别的 CP...
ELK 配置 SSL【Docker 下操作】
介绍Elasticsearch 程序中提供 elasticsearch-certutil 命令来简化生成证书的过程。 该命令共有 3 种模式: CA 模式:用于生成一个新的证书颁发机构 CERT 模式:用于生成 X.509 证书和私钥 CSR 模式:用于生成证书签名请求,该请求指向受信任的证书颁发机构以获取签名的证书。签名证书必须为 PEM 或 PKCS#12 格式,才能与 Elasticsearch 安全功能一起使用 生成证书certutil 官方文档 如果集群部署,想为每个 node 都配置 SSL,就改 instance.yml 和 extra_hosts 参考:https://www.elastic.co/cn/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash 注意:证书位置必须写绝对路径 新建 instance.yml 以创建各容器的自签名证书123456789# name会对应到生成证书文件的路径名称# dns可以多个,对应其匹配域名in...
Elastic APM
Elastic Application Performance Management (APM) 是基于 Elastic Stack 构建的应用性能监控系统。 背景目前我们日志系统已经投入生产使用,对于日常开发有了一个方便排查问题的途径。 但是,有些难题不是浮于表面的,下一步需要做的,便是找出这些埋于底层的性能及效率的问题。这便是 Application Performance Management (APM) 出现的目的。 目标 收集有关请求的响应时间、数据库查询 外部 HTTP 请求等的详细性能信息 对应用程序的请求期间发生的其他缓慢操作的跟踪 自动收集未处理的错误和异常,错误主要基于堆栈跟踪进行分组,因此可以识别出现的新错误,并密切关注特定错误发生的次数 价值依靠 APM,过滤出不合格的接口,根据具体情况加以改进,最终实现一个可以满足三高的理想状态。 我们可以对接口的所有信息进行追溯,现在我们已经有了 trace-id,可以反向拿"不合格的接口"的 trace-id 去日志里找原因。 APM ServerAPM Server 是用 Go 编写的...
Filebeat 多实例部署(守护进程方式 systemd)
安装好 Filebeat1站内搜索:记录日志系统的安装-部署-配置-使用文档(1) 复制两个子文件夹12cp -r /etc/filebeat{,1}cp -r /etc/filebeat{,2} 修改各自的 filebeat.yml1234...(省略 inputs 之类的)logging.files: # 这里修改文件夹路径 path: /var/log/filebeat1/2 查看机器 systemd 的 path 我这里是 /usr/lib/systemd/system 添加两份配置文件 vi /usr/lib/systemd/system/filebeat1.service 1234567891011121314151617[Unit]Description=Filebeat sends log files to Logstash or directly to Elasticsearch.Documentation=https://www.elastic.co/bea...
Kibana Dashboard 结合 Filebeat 的使用
利用 Filebeat Module 监听/传输数据到 ES 并通过 Kibana 的面板显示要记得将 modules 功能打开 filebeat 安装完默认会在 /etc/filebeat/modules.d 下放着许多模块的 yml,需要哪个,就执行 filebeat modules enable xxx filebeat.yml 配置: 1234567891011121314151617181920212223filebeat.config: modules: enabled: true path: modules.d/*.yml reload.enabled: true reload.period: 10s# ------------------------------ Kibana Output -------------------------------output.elasticsearch: hosts: ["10.0.2.15:9200"] username: "elastic"...
Kibana 用法
Kibana 查询语法 要搜索一个确切的字符串,即精确搜索,需要使用双引号引起来:path:"/app/logs/nginx/access.log" 如果不带引号,将会匹配每个单词:uid token 模糊搜索:path:"/app/~" * 匹配 0 到多个字符:*oken ? 匹配单个字符:tok?n 匹配是否包含的条件: +:搜索结果中必须包含此项 -:不能含有此项 什么都没有则可有可无:+token -appVersion appCode 运算符 AND/OR/NOT 必须大写:token AND uid;token OR uid;NOT uid 允许一个字段值在某个区间([] 包含该值,{} 不包含):@version:[1 TO 3] 组合查询:(uid OR token) AND version 转义特殊字符 + – && || ! ( ) { } [ ] ^ " ~ * ? : \:转义特殊字符只需在字符前加上符号 \ 查询样例简单查...
处理 Rancher 连接节点 "Cluster agent is not connected"
故障场景描述在 K3s 集群经历长时间运行(如 2 年以上)或底层容器运行时(Containerd)崩溃重启后,Rancher 界面显示集群状态为 Unavailable,错误提示通常为 "Cluster agent is not connected"。 故障诊断流程第一阶段:排查 K3s 节点健康度在手动处理 Rancher 连接前,必须确保 K3s 核心服务已恢复。 检查容器运行时状态: 12# 如果报错 connection refused,说明 containerd 没起crictl ps 检查孤儿挂载点(Device busy):Kubelet 频繁报错 device or resource busy 会导致 API Server 响应极慢,进而撑挂 Rancher 隧道。 12# 查找并懒卸载残留路径grep "kubelet/pods" /proc/mounts | awk '{print $2}' | xargs -I {} umount -l {...
