Docker部署Grafana

搜索镜像 docker search grafana/grafana 拉取镜像 版本号可以去官网查看:https://hub.docker.com/r/grafana/grafana docker pull grafana/grafana:8.3.3 创建容器 --restart=always:容器退出后(kill后)自动重启。 --link prometheus:需要将prometheus容器(容器名)的hostname链接过来,否则无法连接到prometheus。 $PWD/grafana/config:映射配置文件位置 $PWD/grafana/data:映射数据存储位置。 /etc/localtime:/etc/localtime:ro:容器内部的时间格式化保持和宿主机一致。 docker run -d --restart=always \ -u root \ --name=grafana \ --link prometheus \ -p 3000:3000 \ -v $PWD/grafana/config:/etc/grafana \ -v $PWD/grafana/data:/var/lib/grafana \ -v /etc/localtime:/etc/localtime:ro \ grafana/grafana:8.3.3 可能出现的错误 使用-u root指定为root用户启动。 mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied 缺少配置文件 msg="failed to parse \"/etc/grafana/grafana.ini\": open /etc/grafana/grafana.ini: no such file or directory" 创建容器时需要先创建好grafana.ini配置文件。 docker cp grafana:/etc/grafana/grafana.ini ....

2022-04-20 · 1 分钟

Influxdb学习

InfluxDB is the Time Series Database in the TICK stack https://www.influxdata.com/time-series-platform/ 摘要: Docker监控方案之数据存储工具Influxdb工具的介绍和安装。Influxdb也是和telegraf属于一家公司,用go开发的用来存储时间序列数据的数据库。可以将存储的数据进行时间序列化,是每个监控系统中最重要的一个环节。Docker监控方案(TIG)采用Influxdb来进行数据存储,当然可选的还有很多,比如Opentsdb,Graphite等。 前言: Influxdb也是有influxdata公司(www.influxdata.com )开发的用于数据存储的时间序列数据库.可用于数据的时间排列。在整个TIG(Telegraf+influxdb+grafana)方案中,influxdb可算作一个中间件,主要负责原始数据的存储,并按照时间序列进行索引构建以提供时间序列查询接口。在整个TIG方案中,应该先构建的就是Influxdb。 Influxdb研究与实践: influxdb介绍: 使用TSM(Time Structured Merge)存储引擎,允许高摄取速度和数据压缩; 使用go编写,无需其他依赖; 简单,高性能写查询httpAPI接口; 支持其他数据获取协议的插件,比如graphite,collected,OpenTSDB; 使用relay构建高可用https://docs.influxdata.com/influxdb/v1.0/high_availability/relay/; 扩展的类sql语言,很容易查询汇总数据; tag的支持,可用让查询变的更加高效和快速; 保留策略有效地自动淘汰过期的数据; 持续所产生的自动计算的数据会使得频繁的查询更加高效; web管理页面的支持 下载安装: github:https://github.com/influxdata/influxdb 源码编译 官网下载: Centos系列:wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.0.0.x86_64.rpm && sudo yum localinstall influxdb-1.0.0.x86_64.rpm 源码包系列:wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.0.0_linux_amd64.tar.gz && tar xvfz influxdb-1.0.0_linux_amd64.tar.gz docker系列:docker pull influxdb 安装手册:https://docs.influxdata.com/influxdb/v0.9/introduction/installation/ 配置: #cat /etc/influxdb/influxdb.conf reporting-disabled = false [registration] [meta] dir = "/var/lib/influxdb/meta" hostname = "10.0.0.2" #此hostname必须写本机,否则无法连接到数据操作的API bind-address = ":8088" retention-autocreate = true election-timeout = "1s" heartbeat-timeout = "1s" leader-lease-timeout = "500ms" commit-timeout = "50ms" cluster-tracing = false [data] dir = "/var/lib/influxdb/data" max-wal-size = 104857600 # Maximum size the WAL can reach before a flush....

2022-04-20 · 3 分钟

Docker安装Consul1.9.3

拉取Consul镜像 $ docker pull consul # 默认拉取latest $ docker pull consul:1.9.3 # 拉取指定版本 安装并运行 docker run -d -p 8500:8500 --restart=always --name=consul consul:1.9.3 agent -server -bootstrap -ui -node=1 -client='0.0.0.0' agent: 表示启动 Agent 进程。 server:表示启动 Consul Server 模式 client:表示启动 Consul Cilent 模式。 bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。 ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。 node:节点的名称,集群中必须是唯一的,默认是该节点的主机名。 client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0 join:表示加入到某一个集群中去。 如:-json=192.168.0.11

2022-04-19 · 1 分钟

GRAFANA+INFLUXDB+TELEGRAF 快速监控主机与MYSQL

一、安装 1.1、配置INFLUXDB YUM源 [root@node ~]# cat /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key 1.2、安装GRAFANA+INFLUXDB+TELEGRAF 安装influxdb yum install influxdb 安装telegraf yum install telegraf 安装grafana wget https://dl.grafana.com/oss/release/grafana-6.1.3-1.x86_64.rpm yum localinstall grafana-6.1.3-1.x86_64.rpm 1.3、软件版本 InfluxDB version: 1.7.4 Telegraf version: 1.10.2 Grafana version: 6.1.3 1.4、启动服务,添加开机启动 systemctl start influxdb.service systemctl start telegraf.service systemctl start grafana-server.service systemctl enable influxdb.service systemctl enable telegraf.service systemctl enable grafana-server....

2022-04-19 · 2 分钟

单机单盘场景部署ceph环境

一、环境信息 系统:CentOS Linux release 7.7.1908 磁盘:200G(系统盘) 1、创建loop设备 mkdir -p /data/ceph-disk/ fallocate -l 40G /data/ceph-disk/sdb.img fallocate -l 40G /data/ceph-disk/sdc.img fallocate -l 40G /data/ceph-disk/sdd.img losetup -l -P /dev/loop1 /data/ceph-disk/sdb.img losetup -l -P /dev/loop2 /data/ceph-disk/sdc.img losetup -l -P /dev/loop3 /data/ceph-disk/sdd.img wipefs -a /dev/loop1 wipefs -a /dev/loop2 wipefs -a /dev/loop3 2、设置开机启动挂载loop设备 cat /etc/rc.local losetup -l -P /dev/loop1 /data/ceph-disk/sdb.img losetup -l -P /dev/loop2 /data/ceph-disk/sdc.img losetup -l -P /dev/loop3 /data/ceph-disk/sdd.img #卸载loop设备 #losetup --detach /dev/loop1 #losetup --detach /dev/loop2 #losetup --detach /dev/loop3 chmod a+x /etc/rc....

2022-04-18 · 3 分钟

Nginx官方推荐的nginx.conf标准配置

Nginx官方发布“避免10大NGINX配置错误”中,推荐nginx.conf配置为: http { upstream node_backend { zone upstreams 64K; server 127.0.0.1:3000 max_fails=1 fail_timeout=2s; keepalive 2; } server { listen 80; server_name example.com; location / { proxy_set_header Host $host; proxy_pass http://node_backend/; proxy_next_upstream error timeout http_500; } } } 即使没有负载平衡或在一台机器内,也要启用upstream{}块,它解锁了几个提高性能的功能: 该zone指令建立了一个共享内存区域,主机上的所有 NGINX 工作进程都可以访问有关上游服务器的配置和状态信息。几个上游组可以共享该区域。 该server指令有几个参数可用于调整服务器行为。在这个例子中,我们改变了 NGINX 用来确定服务器不健康并因此没有资格接受请求的条件。在这里,如果通信尝试在每 2 秒内失败一次(而不是默认的每10 秒一次),它就会认为服务器不健康。 我们把这个设置和proxy_next_upstream指令结合起来,以配置NGINX认为的失败的通信尝试,在这种情况下,它把请求传递给上游组的下一个服务器。在默认的错误和超时条件中,我们添加了http_500,以便NGINX认为来自上游服务器的HTTP 500(内部服务器错误)代码代表一个失败的尝试。 keepalive指令设置每个工作进程的缓存中保存的与上游服务器的空闲keepalive连接的数量。默认情况下,NGINX 会为每个新的传入请求打开一个到上游(后端)服务器的新连接。这是安全但低效的,因为 NGINX 和服务器必须交换三个数据包来建立连接,并交换三个或四个数据包来终止它。在高流量时,为每个请求打开一个新连接会耗尽系统资源,并且根本无法打开连接。修复是在 NGINX 和上游服务器之间启用keepalive 连接——而不是在请求完成时关闭,连接保持打开状态以用于其他请求。这既减少了源端口用完的可能性,又提高了性能。该参数设置为块中列出的服务器数量的两倍。

2022-04-18 · 1 分钟

InfluxDB常用命令

连接数据库 $ influx -precision rfc3339 Connected to http://localhost:8086 version 1.2.x InfluxDB shell 1.2.x > exit # 退出命令行 说明: InfluxDB的HTTP接口默认起在8086上,所以influx默认也是连的本地的8086端口,你可以通过influx --help来看怎么修改默认值。 -precision参数表明了任何返回的时间戳的格式和精度,rfc3339`是让InfluxDB返回RFC339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)的时间戳。 创建数据库 > CREATE DATABASE mydb 查看数据库 > SHOW DATABASES name: databases --------------- name _internal mydb 说明:_internal数据库是用来存储InfluxDB内部的实时监控数据的 使用数据库 > USE mydb Using database mydb 数据存储格式介绍 首先对数据存储的格式来个入门介绍。InfluxDB里存储的数据被称为时间序列数据,其包含一个数值,就像CPU的load值或是温度值类似的。时序数据有零个或多个数据点,每一个都是一个指标值。数据点包括time(一个时间戳),measurement(例如cpu_load),至少一个k-v格式的field(也即指标的数值例如 “value=0.64”或者“temperature=21.2”),零个或多个tag,其一般是对于这个指标值的元数据(例如“host=server01”, “region=EMEA”, “dc=Frankfurt)。 在概念上,你可以将measurement类比于SQL里面的table,其主键索引总是时间戳。tag和field是在table里的其他列,tag是被索引起来的,field没有。不同之处在于,在InfluxDB里,你可以有几百万的measurements,你不用事先定义数据的scheme,并且null值不会被存储。 将数据点写入InfluxDB,只需要遵守如下的行协议: <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp] 下面是数据写入InfluxDB的格式示例: cpu,host=serverA,region=us_west value=0.64 payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230 stock,symbol=AAPL bid=127.46,ask=127.48 temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000 写入数据 > INSERT cpu,host=serverA,region=us_west value=0....

2022-04-15 · 1 分钟

Docker Swarm集群监控方案

docker swarm监控方案有很多,主流的有cAdvisor+InfluxDB+Grafana和cAdvisor+Prometheus+Grafana,本文介绍cAdvisor+InfluxDB+Grafana方案 组件说明 cAdvisor:数据收集模块,需要部署在集群中的每一个节点上,当然前提条件是节点接受task。 InfluxDB:数据存储模块。 Grafana:数据展示模块 创建docker compose文件 在manager结点上创建文件,并输入如下内容: version: '3' services: influx: image: influxdb:1.8 # 保证模板兼容性 volumes: - influx:/var/lib/influxdb deploy: replicas: 1 placement: constraints: - node.role == manager grafana: image: grafana/grafana:4.2.0 # 保证模板兼容性 ports: - 0.0.0.0:80:3000 volumes: - grafana:/var/lib/grafana depends_on: - influx deploy: replicas: 1 placement: constraints: - node....

2022-04-15 · 1 分钟

Filebeat7.6安装配置

安装 yum -y install https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.0-x86_64.rpm 配置 filebeat.inputs: - type: log enabled: true paths: - /data/logs/server.ser tags: ["online_server"] - type: log enabled: true paths: - /data/logs/pay.ser tags: ["online_pay"] - type: log enabled: true paths: - /data/logs/log.* tags: ["online_admin"] output.elasticsearch: hosts: ["10.0.0.1:9200"] indices: - index: "online_server-%{+yyyy.MM.dd}" when.contains: tags: "online_server" - index: "online_pay-%{+yyyy.MM.dd}" when....

2022-04-14 · 1 分钟

Nginx根据请求IP转发请求

规则: $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*[0268]$ 匹配末尾为0268这样的偶数ip,跳转到指定域名 $remote_addr ~* ^(112)\.(.*)\.(.*)\.(.*)$ 开头为 112 的 IP 跳转到指定的域名; $http_x_forwarded_for ~* ^(112)\.(.*)\.(.*)\.(.*)$ 根据 forward 地址段来分流,开头为 112 的跳转到指定域名 例如: server { listen 8080; # 监听端口 server_name 10.0.0.1; # 监听地址 access_log /data/logs/nginx_logs/10.0.0.1.log main; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if ( $remote_addr ~* 10.0.0.2) { ## 请求ip为10.0.0.2的流量转发到下列地址 proxy_pass http://172.16.0.2:10000; break; } if ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*[0268]$) { ## 请求ip尾数为0268的ip转发到下列地址 proxy_pass http://172....

2022-04-14 · 1 分钟