超酷小 发表于 2018-7-29 09:38:03

ansible推送zabbix自定义key值

  首先在服务端自定义key值,测试服务器客户端的key值,并用ansible推送key值文件到客户端,实现对客户端的监控。
  服务器和客户端都在本机(10.0.0.128)
  1.获取默认的键值
  # cd /usr/local/zabbix/bin/
  # ./zabbix_get -s 10.0.0.128 -k system.users.num
  3
  2.自定义键值
  修改客户端参数,开启自定义监控项
  # vim /usr/local/zabbix/etc/zabbix_agentd.conf
  ServerActive=10.0.0.128 #指向服务器(本机)
  UnsafeUserParameters=1
  Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
  创建文件,监控tcp状态
  # cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
  # ls
  tcp_status.conf
  # cat tcp_status.conf
  UserParameter=netstats
[*], netstat -an | awk '/^tcp/{s[$NF]++}END{for (i in s) print i,s}'| grep $1 | awk '{print $$2}'
  #
  3.测试
  查看本机tcp状态,再测试
  # netstat -an |awk '/^tcp/{print $NF}'|sort |uniq -c
  4 CLOSE_WAIT
  5 ESTABLISHED
  1 FIN_WAIT2
  17 LISTEN
  76 TIME_WAI
  # ./zabbix_get -s 10.0.0.128 -k netstats
  17
  # ./zabbix_get -s 10.0.0.128 -k netstats
  5
  4.自动化部署zabbix客户端,并推送key值
  (服务器-10.0.0.128,客户端10.0.0.129)
  安装ansible(注意时间同步、hostname、免密钥登录)
  # yum install -y ansible
  推送的客户端IP
  # vim /etc/ansible/hosts
  
  10.0.0.129(按需添加主机)
  部署客户端,之前已经配置过,也可以参考如下
  # cat /etc/ansible/zabbix_install.yaml
- hosts: zabbix_client  
remote_user: root
  
tasks:
  
- name: copy
  
   copy: src=/usr/local/src/zabbix-3.2.7.tar.gz dest=/usr/local/src/zabbix-3.4.3.tar.gz
  
- name: tar
  
   shell: cd /usr/local/src;tar xf zabbix-3.4.3.tar.gz
  
- name: yum
  
    yum: name={{ item }} state=latest
  
    with_items:
  
    - make
  
    - gcc
  
    - curl
  
    - curl-devel
  
    - pcre-devel
  
- name: configure
  
   shell: cd /usr/local/src/zabbix-3.2.7;./configure --with-net-snmp --with-libcurl --enable-agent --prefix=/usr/local/zabbix;make && make install
  
- name: script
  
   shell: cp /usr/local/src/zabbix-3.2.7/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
  
- name: useradd zabbix
  
   shell: useradd zabbix
  
- name: quanxian
  
   shell: chmod 755 /etc/init.d/zabbix_agentd
  
- name: vim zabbix_agent
  
   shell: sed -i 's/ZABBIX_BIN="\/usr\/local\/sbin\/zabbix_agentd"/ZABBIX_BIN="\/usr\/local\/zabbix\/sbin\/zabbix_agentd"/g' /etc/init.d/zabbix_agentd
  
- name: vim_conf
  
   shell: sed -i 's/Server=127.0.0.1/Server={{ server_ip }}/g' /usr/local/zabbix/etc/zabbix_agentd.conf
  
- name: restart_server
  
   shell: /etc/init.d/zabbix_agentd restart
  执行:
  # ansible-playbook -e server_ip=10.0.0.128 /etc/ansible/zabbix_install.yaml
  推送自定义的key值到客户端,并启动
  # cat zabbix_key.yaml
- hosts: zabbix_client  
remote_user: root
  
tasks:
  
- name: copy
  
   copy: src=/usr/local/zabbix/etc/zabbix_agentd.conf.d/{{ keys }}.conf dest=/usr/local/zabbix/etc/zabbix_agentd.conf.d/{{ keys }}.conf
  
   notify: reload zabbix
  
handlers:
  
    - name: reload zabbix
  
   shell: /etc/init.d/zabbix_agentd restart
  执行:
  # ansible-playbook-e keys=tcp_status zabbix_key.yaml
PLAY ***************************************************************************************************************************************************************  
TASK *************************************************************************************************************************************************************
  
ok:
  
TASK ************************************************************************************************************************************************************************
  
changed:
  
RUNNING HANDLER ****************************************************************************************************************************************************
  
changed:
  
PLAY RECAP *************************************************************************************************************************************************************************
  
10.0.0.129    : ok=3    changed=2unreachable=0    failed=0
  查看客户端是否有推送过来的文件
  # pwd
  /usr/local/zabbix/etc/zabbix_agentd.conf.d
  # ls
  tcp_status.conf
  # cat tcp_status.conf
  UserParameter=netstats
[*], netstat -an | awk '/^tcp/{s[$NF]++}END{for (i in s) print i,s}'| grep $1 | awk '{print $$2}'
  测试:
  # pwd
  /usr/local/zabbix/bin
  # ./zabbix_get -s 10.0.0.129 -k netstats
  12
  测试成功。。。所以用ansible来管理客户端,即快捷又方便,记得再测试前要修改客户端的参数
  # vim /usr/local/zabbix/etc/zabbix_agentd.conf
  UnsafeUserParameters=1
  Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
  也可以用ansible远程命令修改。。。
页: [1]
查看完整版本: ansible推送zabbix自定义key值