首先在服务端自定义key值,测试服务器客户端的key值,并用ansible推送key值文件到客户端,实现对客户端的监控。
服务器和客户端都在本机(10.0.0.128)
1.获取默认的键值
[root@zxb ~]# cd /usr/local/zabbix/bin/
[root@zxb bin]# ./zabbix_get -s 10.0.0.128 -k system.users.num
3
2.自定义键值
修改客户端参数,开启自定义监控项
[root@zxb ~]# 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状态
[root@zxb ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@zxb zabbix_agentd.conf.d]# ls
tcp_status.conf
[root@zxb zabbix_agentd.conf.d]# 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}'
[root@zxb zabbix_agentd.conf.d]#
3.测试
查看本机tcp状态,再测试
[root@zxb ~]# netstat -an |awk '/^tcp/{print $NF}'|sort |uniq -c
4 CLOSE_WAIT
5 ESTABLISHED
1 FIN_WAIT2
17 LISTEN
76 TIME_WAI
[root@zxb bin]# ./zabbix_get -s 10.0.0.128 -k netstats[LISTEN]
17
[root@zxb bin]# ./zabbix_get -s 10.0.0.128 -k netstats[ESTABLISHED]
5
4.自动化部署zabbix客户端,并推送key值
(服务器-10.0.0.128,客户端10.0.0.129)
安装ansible(注意时间同步、hostname、免密钥登录)
[root@zxb ~]# yum install -y ansible
推送的客户端IP
[root@zxb ~]# vim /etc/ansible/hosts
[zabbix_client]
10.0.0.129 (按需添加主机)
部署客户端,之前已经配置过,也可以参考如下
[root@zxb ~]# 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
执行:
[root@zxb ~]# ansible-playbook -e server_ip=10.0.0.128 /etc/ansible/zabbix_install.yaml
推送自定义的key值到客户端,并启动
[root@zxb ansible]# 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
执行:
[root@zxb ~]# ansible-playbook -e keys=tcp_status zabbix_key.yaml
PLAY [zabbix_client] ***************************************************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************************************************
ok: [10.0.0.129]
TASK [copy] ************************************************************************************************************************************************************************
changed: [10.0.0.129]
RUNNING HANDLER [reload zabbix] ****************************************************************************************************************************************************
changed: [10.0.0.129]
PLAY RECAP *************************************************************************************************************************************************************************
10.0.0.129 : ok=3 changed=2 unreachable=0 failed=0
查看客户端是否有推送过来的文件
[root@zxb2 zabbix_agentd.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agentd.conf.d
[root@zxb2 zabbix_agentd.conf.d]# ls
tcp_status.conf
[root@zxb2 zabbix_agentd.conf.d]# 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}'
测试:
[root@zxb bin]# pwd
/usr/local/zabbix/bin
[root@zxb bin]# ./zabbix_get -s 10.0.0.129 -k netstats[LISTEN]
12
测试成功。。。所以用ansible来管理客户端,即快捷又方便,记得再测试前要修改客户端的参数
[root@zxb2 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
也可以用ansible远程命令修改。。。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com