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]