
consul服务器:
docker run --name consul -d -p 8500:8500 consul
|
prometheus服务器:
vim /opt/monitor/prometheus/prometheus.yml scrape_configs: - job_name: 'webservers' basic_auth: username: prometheus password: 123.com consul_sd_configs: - server: 192.168.0.11:8500 services: ['webservers'] ------------------------------------------------------------------
cd /opt/monitor/prometheus ./promtool check config ./prometheus.yml
ps -ef |grep prometheus kill -HUP 62291
|
ansible服务器
yum -y install epel-release yum -y install ansible
mkdir ansible cd ansible
1.node_exporter-1.0.1.linux-amd64.tar.gz 2.node_exporter.service 3.config.yml 4.consul-register.sh 5.hosts 6.playbook.yaml
ansible-playbook -i hosts playbook.yaml -u root -k
|
下面进行对以上文件进行详细介绍
1.准备采集器部署包
2.node_exporter.service
解释:
–web.config:指定的是用户名密码配置文件
–collector.systemd:采集systemd管理的系统服务
[Unit] Description=node_exporter
[Service] ExecStart=/usr/local/node_exporter/node_exporter --web.config=/usr/local/node_exporter/config.yml --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|nginx).service ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure
[Install] WantedBy=multi-user.target
|
3.config.yml
下面的密码是用httpd-tools工具生成的
yum install httpd-tools –y
htpasswd -nBC 12 ‘’ | tr -d ‘:\n’
basic_auth_users: prometheus: $2y$12$ctQIqhh5l4qcSFAenR30eubhiVg4O71KHzl5N9MkuqTua72P7KPuy
|
4.consul-register.sh
定义位置参数
$1 在shell中传入“位置参数”,表示传入的第一个参数,以此类推
service_name=$1
instance_id=$2 ip=$3 port=$4
curl -X PUT -d '{"id": "'"$instance_id"'","name": "'"$service_name"'","address": "'"$ip"'","port": '"$port"',"tags": ["'"$service_name"'"],"checks": [{"http": "http://'"$ip"':'"$port"'","interval": "5s"}]}' http://192.168.0.11:8500/v1/agent/service/register
|
5.hosts
[webservers] 192.168.0.12 name=web1 192.168.0.13 name=web2
[dbbservers] 192.168.0.12 name=db1 192.168.0.13 name=db2 [loadbalances] 192.168.0.12 name=lb1 192.168.0.13 name=lb2
|
6.playbook.yaml
- hosts: webservers gather_facts: no tasks: - name: stop firewalld systemd: name=firewalld state=stopped - name: 推送二进制文件 unarchive: src=node_exporter-1.0.1.linux-amd64.tar.gz dest=/usr/local - name: 重命名 shell: | ntpdate ntp1.aliyun.com cd /usr/local if [ ! -d node_exporter ];then mv node_exporter-1.0.1.linux-amd64 node_exporter fi - name: 推送配置文件 copy: src=config.yml dest=/usr/local/node_exporter - name: 拷贝systemd文件 copy: src=node_exporter.service dest=/usr/lib/systemd/system - name: 启动服务 systemd: name=node_exporter state=restarted enabled=yes daemon_reload=yes - name: 推送注册脚本 copy: src=consul-register.sh dest=/usr/local/bin/ - name: 注册当前节点 shell: /bin/bash /usr/local/bin/consul-register.sh {{ group_names[0] }} {{ name }} {{ inventory_hostname }} 9100
|
web服务器--------->要监控的web服务器