书接上篇 https://blog.51cto.com/825536458/6923896 这次主要介绍如何使用consulmanager 去监控各个监控项。
一 consulmanager安装
https://github.com/starsliao/TenSunS/releases #consulmanager项目地址
consulmanager 是一个开源的项目,现在已经更名为tensuns,有兴趣的可以自行研究 要想安装consulmanager,必须先安装下面三个 docker ,docker-compase, consul
1.1 安装consul
1.1.1 安装consul-基于centos7
# 使用yum部署consul
yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul
# 如果yum下载失败,可以直接下载RPM包安装
wget https://rpm.releases.hashicorp.com/RHEL/7/x86_64/stable/consul-1.16.0-1.x86_64.rpm
rpm -ivh ./consul-1.16.0-1.x86_64.rpm
1.1.2 生成uuid
执行下面的命令即可
uuidgen
8f8bb0a8-e6ff-476b-9052-4bcb22059823
1.1.3 配置文件设置
grep -v "^#" /etc/consul.d/consul.hcl |grep -v "^$"
data_dir = "/opt/consul"
client_addr = "0.0.0.0"
ui_config{
enabled = true
}
server = true
advertise_addr = "192.168.2.43"
bootstrap_expect=1
acl = {
enabled = true
default_policy = "deny"
enable_token_persistence = true
tokens = {
initial_management = "8f8bb0a8-e6ff-476b-9052-4bcb22059823"
agent = "8f8bb0a8-e6ff-476b-9052-4bcb22059823"
}
}
1.1.4 启动consul
systemctl start consul.service
访问方式 ip:8500
1.2 安装docker和docker-compase
1.2.1 安装docker
# 安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
# 设置docker加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://bc437cce.m.daocloud.io
systemctl start docker
systemctl enable docker
1.2.2 安装docker-compase
# 安装docker-compase
官方下载安装https://github.com/docker/compose/releases/tag/v2.12.2
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
二 安装 ConsulManager
2.1 下载源码
下载地址 https://github.com/starsliao/ConsulManager/releases 目录结构如下:
2.2 docker-compose.yml 内容
[root@localhost ConsulManager-0.12.7]# cat docker-compose.yml
version: "3.2"
services:
flask-consul:
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest
container_name: flask-consul
hostname: flask-consul
restart: always
volumes:
- /usr/share/zoneinfo/PRC:/etc/localtime
environment:
consul_token: 8f8bb0a8-e6ff-476b-9052-4bcb22059823
consul_url: http://192.168.2.43:8500/v1
admin_passwd: xxxxxxxx #登录密码
log_level: INFO
nginx-consul:
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest
container_name: nginx-consul
hostname: nginx-consul
restart: always
ports:
- "1026:1026"
volumes:
- /usr/share/zoneinfo/PRC:/etc/localtime
2.3启动并访问
启动:
docker-compose pull && docker-compose up -d
访问:
http://{IP}:1026,使用配置的变量 admin_passwd 登录
三 配置consulmanager
3.1 云主机管理
3.1.1 同步云主机
云主机管理就是可以自动同步云服务器到consulmanager这个上面 前提是需要你在云账号里面创建access key 和secret key,这个账号还需要有访问主机的权限
创建完成之后,你可以手动同步,也可以自动同步,然后去云主机列表查看,是否同步过来了
3.1.2 批量云主机监控
前提是每天主机需要安装好node-exporter 选定好指定的组,选择好系统,点击生成配置,然后把这个配置,粘贴到prometheus的配置文件中 进行重启prometheus。
然后进去到prometheus-target里进行查看
当然如果你的node-exporter的端口不是9100,怎么办,打开cousul的web页面,可以自定义设置
3.1.3 导入对应的模版
导入ID:8919 详细URL:https://grafana.com/grafana/dashboards/8919
3.1.4 设置告警规则
3.2 blackbox站点监控设置
3.2.1. 配置Blackbox_Exporter
在Web页面点击 Blackbox 站点监控/Blackbox 配置,点击 复制配置,如下所示: 复制配置到 blackbox.yml,清空已有的配置,把复制的内容粘贴进去,重启blackbox_exporter
3.2.2 配置Prometheus
在Web页面点击 Blackbox 站点监控/Prometheus 配置,点击复制配置。编辑Prometheus的 prometheus.yml,把复制的内容追加到最后,reload或重启Prometheus。
3.2.3. 配置Prometheus告警规则
在Web页面点击 Blackbox 站点监控/告警规则,点击复制配置。 编辑Prometheus的配置文件,添加 rules.yml,然后把复制的内容粘贴到rules.yml里面,reload或重启Prometheus。
然后去prometheus查看告警规则是否生成
3.2.4. 查看Prometheus
在Prometheus的Web页面中,点击Status-Targets,能看到新增的Job即表示数据同步到Prometheus。
3.2.5 新增tcp或者http监控
经过上面的配置,当我们再有新增的端口监控,就不用再去直接更改prometheus的配置文件了,直接在web页面进行新增和更改即可。在这里添加完之后,立即会同步到prometheus的。如下所示
3.2.6. 导入Blackbox Exporter Dashboard
导入ID:9965 详细URL:https://grafana.com/grafana/dashboards/9965 最终在grafana访问的效果如下:
四 总结
到这里基本的监控项和报警规则都已经设定好了,接下来会介绍告警的方式和具体实现。