基于docker对prometheus+自动发现+influxdb进行单机各功能安装

739次阅读
没有评论

安装 prometheus

docker run -d --restart=always --name prometheus -p 9090:9090 \
-v /opt/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /opt/prometheus/data/:/prometheus \
-v /opt/prometheus/conf/rules:/usr/local/prometheus/rules \
prom/prometheus

docker run --name prometheus -d -p 9090:9090 --restart=always \
-v /opt/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /opt/prometheus/data/:/prometheus \
-v /opt/prometheus/conf/rules:/usr/local/prometheus/rules \
prom/prometheus --config.file=/etc/prometheus/prometheus.yml --web.enable-lifecycle

安装 cadvisor 监控 docker 性能

docker run -d --restart=always  --name cadvisor -p 9080:8080 \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
-v /dev/disk/:/dev/disk:ro \
-v /etc/localtime:/etc/localtime:rw \
google/cadvisor

安装 node-exporter 监控 linux

docker run -d --restart=always --name node-exporter -p 9100:9100 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /:/rootfs:ro \
-v /etc/localtime:/etc/localtime:rw \
prom/node-exporter \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

安装 alertmanager 告警系统

docker run -d -p 9093:9093 --restart always --name alertmanager \
-v /opt/prometheus/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
-v /opt/prometheus/alertmanager:/alertmanager \
-v /opt/prometheus/alertmanager/template/email.tmpl:/usr/local/alertmanager/template/email.tmpl \
prom/alertmanager

安装 grafana 展示面板

docker run -d --restart=always  -p 3000:3000   --name=grafana   -v /opt/prometheus/grafana-storage:/var/lib/grafana   grafana/grafana

安装 portainer,用于更简单的查看 docker 的各个镜像是使用情况,查询 logs 等

docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/prometheus/portainer_data:/data portainer/portainer-ce:2.11.0

安装 blackbox 黑盒监控插件

docker run -d -p 9115:9115 \
--name blackbox_exporter \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro \
-v /opt/prometheus/blackbox/blackbox.yml:/config/blackbox.yml \
prom/blackbox-exporter --config.file=/config/blackbox.yml

安装 influxdb,可省略也可使用,将 prometheus 的后端数据存储到数据库中

docker run -d \
    --name influxdb \
    -p 8086:8086 \
    --volume /opt/prometheus/influxdb:/var/lib/influxdb2 \
    -v /opt/prometheus/influxdb/config.yml:/etc/influxdb2/config.yml \
    influxdb:2.3.0

设置 influxdb 需在 prometheus.yml 中加上指定数据库

remote_write:
  - url: "http://192.168.0.27:8086/api/v1/prom/write?db= 数据库 &u= 用户名 &p= 密码"
remote_read:
  - url: "http://192.168.0.27:8086/api/v1/prom/read?db= 数据库 &u= 用户名 &p= 密码"

接下来可以选择自动发现功能,我采用的是大神 StarsL.cn 的 ConsulManager 开源和其 grafana 模板, 以下内容都是复制的,无脑安装即可

地址:https://github.com/starsliao?tab=repositories

需先安装 consul

# 使用 yum 部署 consul

yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul

# 或者直接下 RPM 包安装

wget https://rpm.releases.hashicorp.com/RHEL/7/x86_64/stable/consul-1.12.2-1.x86_64.rpm
rpm -ivh ./consul-1.12.2-1.x86_64.rpm

配置

vi /etc/consul.d/consul.hcl
advertise_addr = "192.168.x.x" #可以先不加这行,如果启动有问题再加上,一般有多网卡需要配置这行,填写你的网卡 IP
data_dir = "/opt/consul"
client_addr = "0.0.0.0"
ui_config{enabled = true}
server = true
bootstrap = true
acl = {
  enabled = true
  default_policy = "deny"
  enable_token_persistence = true
}

启动和授权

chown -R consul:consul /opt/consul  #注意下数据目录的权限。systemctl enable consul.service
systemctl start consul.service
# 获取登录密码
consul acl bootstrap
# 记录 SecretID,即为 Consul 登录的 Token
  • 下载:wget https://raw.githubusercontent.com/starsliao/ConsulManager/main/docker-compose.yml
  • 国内下载:wget https://starsl.cn/static/img/docker-compose.yml
  • 编辑:docker-compose.yml,修改 3 个环境变量:
    • consul_token:consul 的登录 token
    • consul_url:consul 的 URL(http 开头,/v1 要保留)
    • admin_passwd:登录 Consul Manager 的 admin 密码
  • 启动:docker-compose pull && docker-compose up -d
  • 访问:http://{IP}:1026,使用配置的 Consul Manager 密码登录

微信扫描下方的二维码阅读本文

正文完
 0
柹子丶
版权声明:本站原创文章,由 柹子丶 于2023-01-01发表,共计3555字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码