ansible安装zabbix_agent客户端
想着机器已经有几台了,说多不多,少也不算少,想着利用ansible安装zabbix_agent 客户端方便点了。做完了有些东西记录下,于是就有了这篇文章了。1
2
# tree
.├── ansible.cfg├── hosts├── roles│ └── zabbix_agent_install│ ├── files│ │ ├── gcc_zabbix.sh│ │ └── zabbix-2.4.5.tar.gz│ ├── tasks│ │ └── main.yml│ ├── templates│ │ ├── zabbix_agentd│ │ └── zabbix_agentd.conf│ └── vars│ └── main.yml└── zabbix_agent_install.yml6 directories, 9 files
1
2
# cat host
192.168.50.1:9831192.168.50.2:9831192.168.50.3:9831192.168.50.4:9831192.168.50.5:9831192.168.50.6:9831
1
2
3
4
5
6
7
8
9
10
11
# cat files/gcc_zabbix.sh
#!/bin/bash
#tar xf zabbix-2.4.5.tar.gz
cd /tmp/zabbix-2.4.5
./configure --prefix=/usr/local/zabbix-2.4.5/ --enable-agent
sleep 1
make
make install
mkdir -p /var/log/zabbix/
touch /var/log/zabbix/zabbix_agentd.log
chown zabbix:zabbix -R /var/log/zabbix/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# cat tasks/main.yml
- name: Create zabbix user
user: name={{ zabbix_user }} state=present createhome=no shell=/sbin/nologin
- name: replicate Zabbix Client
copy: src=zabbix-2.4.5.tar.gz dest=/usr/local/src/zabbix-2.4.5.tar.gz owner=root group=root
- name: Uncompression Zabbix Client File
shell: tar zxf /usr/local/src/zabbix-2.4.5.tar.gz -C /tmp/
- name: Install zabbix
script: gcc_zabbix.sh#这里是因为shell没办法编译,所以就用来script模块
- name: Copy zabbix start script
template: src=zabbix_agentd dest=/etc/init.d/zabbix_agentd owner=root group=root mode=0755
- name: Copy Zabbix Config File
template: src=zabbix_agentd.conf dest={{ zabbix_dir }}/zabbix-2.4.5/etc/zabbix_agentd.conf owner={{ zabbix_user }} group={{ zabbix_user }} mode=0664
- name: Modify Zabbix Dir Permisson
file: path= {{ zabbix_dir }}/zabbix owner= {{ zabbix_user }} group= {{ zabbix_user }} mode=0755 recurse=yes
- name: Start Zabbix Service
shell: /etc/init.d/zabbix_agentd start
- name: Add Boot start
shell: chkconfig --level 345 zabbix_agentd on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# cat templates/zabbix_agentd
#!/bin/sh
#chkconfig: 2345 10 90
#description: Activates/Deactivates zabbix_agentd Server
# Zabbix
# Copyright (C) 2001-2015 Zabbix SIA
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301, USA.
# Start/Stop the Zabbix agent daemon.
# Place a startup script in /sbin/init.d, and link to it from /sbin/rc.d
SERVICE="Zabbix agent"
DAEMON=/usr/local/zabbix-2.4.5/sbin/zabbix_agentd
PIDFILE=/tmp/zabbix_agentd.pid
case $1 in
'start')
if [ -x ${DAEMON} ]
then
$DAEMON
# Error checking here would be good...
echo "${SERVICE} started."
else
echo "Can't find file ${DAEMON}."
echo "${SERVICE} NOT started."
fi
;;
'stop')
if [ -s ${PIDFILE} ]
then
if kill `cat ${PIDFILE}` >/dev/null 2>&1
then
echo "${SERVICE} terminated."
rm -f ${PIDFILE}
fi
fi
;;
'restart')
$0 stop
sleep 10
$0 start
;;
*)
echo "Usage: $0 start|stop|restart"
;;
esac
1
2
3
4
5
6
7
8
9
# grep -v '^#' templates/zabbix_agentd.conf |grep -v '^$'
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.50.30
StartAgents=5
ServerActive=192.168.50.30:10051
Hostname={{ ansible_all_ipv4_addresses }}
Timeout=30
Include=/usr/local/zabbix-2.4.5/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
1
2
3
4
5
# cat vars/main.yml
zabbix_dir: /usr/local/
zabbix_user: zabbix
zabbix_port: 10050
zabbix_server_ip: 192.168.50.30
页:
[1]