細細.魚 发表于 2019-1-20 13:43:53

zabbix6

  项目:
  1.自动发现nginx调度器及后端apache构建的web服务集群;
  2.使用自定义参数监控调度器上nginx服务的相关统计数据及速率数据;
  3.使用自定义参数监控后端apache服务的相关统计数据及速率数据;(选做)
  4.制定出nginx调度器及后端apache服务的监控模板,在模板中定义出:items, trigger, graph;(选做)
  项目规划:
  zabbix-server端:172.16.1.2
  zabbix-agent端/nginx调度器:172.16.1.99
  zabbix-agent端/后端RS1:172.16.1.3
  zabbix-agent端/后端RS2:172.16.1.10
  把nginx调度器的ip地址设置的大一些,是为了设置zabbix Discovery的时候,自动区分发现nginx调度器及后端apache构建的web服务集群,所以下面可以设置两个zabbix Discovery,分别发现不同作用的主机。
  1.
  zabbix-server端:
  安装以下应用
  yum install zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent zabbix-get -y
  详细的server端配置请参照:http://blog.运维网.com/12667170/2044254
  三个zabbix-agent端:
  安装以下应用
  yum install -y zabbix-agent zabbix-sender
  详细的agent端配置请参照:http://blog.运维网.com/12667170/2044254
  2.创建nginx调度器
  在nginx.conf配置文件中的http段内添加upstream内容,将后端两台RS加入到该upstream中
  upstream zrs {

server 172.16.1.3;
server 172.16.1.10;
  }
  server {

listen 80;
location / {
proxy_pass http://zrs;
proxy_set_header X-Real-IP $remote_addr;
}
  }
  两个后端rs各配置一个index.html方便测试,并开启httpd服务
  测试可以看到使用了RoundRobin模式对后端rs访问。
  # for i in {1..10}; do curl http://172.16.1.99; done
  172.16.1.3
  172.16.1.10
  172.16.1.3
  172.16.1.10
  172.16.1.3
  172.16.1.10
  172.16.1.3
  172.16.1.10
  172.16.1.3
  172.16.1.10
  3.自动发现nginx调度器及后端apache构建的web服务集群
  创建nginx discovery
  1.png
  创建web discovery
  2.png
  分别打开nginx调度器端和后端rs主机上的zabbix-agent服务
  查看Hosts,已经添加进了这三台主机
  4.使用自定义参数监控调度器上nginx服务的相关统计数据及速率数据
  为了监控nginx状态,在nginx的主配置文件的server中添加location监控nginx的状态值。
  # vim /etc/nginx/nginx.conf
  location /status {

      stub_status on;
  }
  # systemctl restart nginx.service
  # curl 172.16.1.99/status
  Active connections: 1
  server accepts handled requests
  1 1 1
  Reading: 0 Writing: 1 Waiting: 0
  监控nginx的状态,需要item的key,默认的没有,需要自定义参数UserParameters
  5.自定义参数(UserParameters)
  nginx自定义参数
  vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
  UserParameter=nginx.active,curl -s http://172.16.1.99/status | awk '/^Active/{print $NF}'
  UserParameter=nginx.accepts,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+/{print $1}'
  UserParameter=nginx.handled,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+/{print $2}'
  UserParameter=nginx.requests,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+/{print $3}'
  保存退出,重启服务
  # systemctl restart zabbix-agent.service
  在server端查看,可以不用eno查看状态,直接用第二种方法就能获取值,都成功了
  # zabbix_get -s 172.16.1.99 -k net.if.in
  285905110
  # zabbix_get -s 172.16.1.99 -k nginx.active
  1
  # zabbix_get -s 172.16.1.99 -k nginx.accepts
  9
  # zabbix_get -s 172.16.1.99 -k nginx.handled
  10
  # zabbix_get -s 172.16.1.99 -k nginx.requests
  11
  接下来可以根据上面自定义的参数UserParameters,创建新的item项,可以输入刚才自定义的key。
  在Hosts的172.16.1.99主机后面点击Items,然后Create item
  如下创建4个监控项,也就是刚才设置的,注意的是preprocessing中改为Change per second
  3.png
  4.png
  5.png
  6.png
  可以给这些监控创建一个graph
  7.png
  经过一段时间后,查看这个graph有了数值,表示自定义参数监控设置成功。
  8.png
  6.nginx调度器创建监控模板,在模板中定义出:items, trigger, graph。
  创建nginx template
  9.png
  在这个模版上创建item,监控入站流量,注意的是preprocessing中改为Change per second
  10.png
  创建trigger
  11.png
  为了触发器被触发需要定义动作actions
  12.png
  13.png
  这时需要定义Administration中users下面的media
  14.png
  再定义media types中的email中的media type
  15.png
  创建graph
  16.png
  7.后端apache服务配置监控模板,在模板中定义出:items, trigger, graph。
  创建web template
  17.png
  在这个模版上创建item,监控出站流量,注意的是preprocessing中改为Change per second
  18.png
  创建trigger为了跟上面的trigger区分,这里Severity改为High
  19.png
  创建graph
  20.png
  8.链接应用模版
  如下图,在172.16.1.99的host旁边,选择templates
  21.png
  链接nginx template
  22.png
  同样的步骤为两个后端rs链接模版
  9.查看Hosts,刚才自定义配置监控都成功了。
  23.png



页: [1]
查看完整版本: zabbix6