一个专业运
维技术分享!

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

环境

系统:CentOS 7.9
软件:node_exporter-1.4.0.linux-amd64.tar.gz

客户端

  • 下载node_exporter
    地址:https://prometheus.io/download/
  • 安装
    # tar -xzvf node_exporter-1.4.0.linux-amd64.tar.gz
    # mkdir /usr/local/prometheus
    # mv node_exporter-1.4.0.linux-amd64 /usr/local/prometheus/node_exporter
    
  • 创建用户并授权
    # useradd prometheus
    # chown -R prometheus:prometheus /usr/local/prometheus
    
  • 添加启动服务
    # vim /usr/lib/systemd/system/node_exporter.service
    [Unit]
    Description=node_exporter
    After=network.target
    
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/usr/local/prometheus/node_exporter/node_exporter
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动
    # systemctl enable node_exporter.service
    # systemctl start node_exporter.service
    

Prometheus端

安装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密码登录


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

赞(5) 打赏
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。小柳实验室 » 基于docker对prometheus+自动发现+influxdb进行单机各功能安装

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏