Projekt

Allgemein

Profil

Zabbix agent config » Historie » Version 1

Jeremias Keihsler, 13.01.2017 18:40

1 1 Jeremias Keihsler
h1. Zabbix Agent Config
2
3
h2. Userparameter
4
5
h3. Preliminary Note
6
7
Basically there is 2 ways to go the road. As the @Agentd@ is run with the @zabbix@ user 
8
* you will have to give zabbix sudo-rights for the programs needed
9
* prepare via cron-jobs data for extraction which are accessible by the zabbix-user
10
Both solutions have their shortcomings:
11
* SUDO-Version
12
** giving sudo-rights to zabbix might be considered a security risk
13
** flooding logs with sudo-messages
14
** you have to remove @requiretty@ to make sudo work with zabbix
15
* CRON-Version
16
** if you cron-job doesn't deliver data, zabbix will reread old data over and over
17
** the setup is more complex and not straight forward when it comes to debugging
18
19
h3. Sample UserParameter-List
20
21
<pre bash zabbix-agentd.conf>
22
#UserParameter=ipmi.temp.ambient,sudo ipmitool sdr type "Temperature" |grep Ambient |sed -e 's/.* | \([0-9]\+\).*/\1/'
23
#UserParameter=ipmi.fan.1,sudo ipmitool sdr | grep FAN1 |sed -e 's/.* | \([0-9]\+\).*/\1/'
24
#UserParameter=ipmi.fan.2,sudo ipmitool sdr | grep FAN2 |sed -e 's/.* | \([0-9]\+\).*/\1/'
25
#UserParameter=ipmi.fan.3,sudo ipmitool sdr | grep FAN3 |sed -e 's/.* | \([0-9]\+\).*/\1/'
26
#UserParameter=ipmi.fan.4,sudo ipmitool sdr | grep FAN4 |sed -e 's/.* | \([0-9]\+\).*/\1/'
27
UserParameter=system.smartd[*],cat /var/cache/myzabbix/smart.$1.status| grep $2| tail -1| cut -c 88-|cut -f1 -d' '
28
UserParameter=system.smartd.value[*],cat /var/cache/myzabbix/smart.$1.status| grep $2| tail -1| cut -c 38-|cut -f1 -d' '
29
UserParameter=system.smartd.worst[*],cat /var/cache/myzabbix/smart.$1.status| grep $2| tail -1| cut -c 44-|cut -f1 -d' '
30
UserParameter=system.smartd.thres[*],cat /var/cache/myzabbix/smart.$1.status| grep $2| tail -1| cut -c 50-|cut -f1 -d' '
31
#UserParameter=system.apcups[*],cat /var/cache/myzabbix/apcups.status| grep $1| tail -1|cut -c 12-|sed 's/^[ ]*//'|cut -f1 -d' '
32
</pre>
33
34
h3. Sudo-Version
35
36
<pre><code class="bash">
37
visudo
38
</code></pre>
39
<pre>
40
...
41
#
42
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear. 
43
#         You have to run "ssh -t hostname sudo <cmd>".
44
#
45
#JKE 2012-09-20 commented out to make zabbix-sudo work
46
#Defaults    requiretty
47
...
48
49
...
50
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
51
#includedir /etc/sudoers.d
52
</pre>
53
<pre><code class="bash">
54
visudo -f /etc/sudoers.d/zabbix
55
</code></pre>
56
<pre bash zabbix>
57
zabbix ALL = (ALL) NOPASSWD:/usr/bin/ipmitool
58
zabbix ALL = (ALL) NOPASSWD:/usr/sbin/smartctl
59
</pre>
60
61
h3. Cron-Version
62
63
create zabbix-data exchange-directory
64
<pre><code class="bash">
65
mkdir /var/cache/myzabbix
66
</code></pre>
67
create zabbix-data-file
68
<pre><code class="bash">
69
vim /usr/local/bin/smart_status.sh
70
</code></pre>
71
<pre bash smart_status.sh>
72
/usr/sbin/smartctl -A /dev/sda > /var/cache/myzabbix/smart.sda.status
73
/usr/sbin/smartctl -A /dev/sdb > /var/cache/myzabbix/smart.sdb.status
74
</pre>
75
<pre bash smart_status_megaraid.sh>
76
/usr/sbin/smartctl -d sat+megaraid,10 -a /dev/sda > /var/cache/myzabbix/smart.sda.0.status
77
/usr/sbin/smartctl -d sat+megaraid,11 -a /dev/sda > /var/cache/myzabbix/smart.sda.1.status
78
/usr/sbin/smartctl -d sat+megaraid,12 -a /dev/sdb > /var/cache/myzabbix/smart.sdb.0.status
79
/usr/sbin/smartctl -d sat+megaraid,13 -a /dev/sdc > /var/cache/myzabbix/smart.sdc.0.status
80
/usr/sbin/smartctl -d sat+megaraid,14 -a /dev/sdc > /var/cache/myzabbix/smart.sdc.1.status
81
</pre>
82
<pre><code class="bash">
83
vim /usr/local/bin/apcups_status.sh
84
</code></pre>
85
<pre bash apcups_status.sh>
86
/etc/init.d/apcupsd status > /var/cache/myzabbix/apcups.status
87
</pre>
88
create cron-job
89
<pre><code class="bash">
90
vim /etc/cron.d/zabbix
91
</code></pre>
92
<pre>
93
# JKE 2012-10-19
94
#
95
# minute hour day month dayofweek
96
# m h d m d
97
# - - - - -
98
# | | | | |
99
# | | | | +-day of week (0-7) sunday=0 or 7
100
# | | | +---month (1-12)
101
# | | +-----day of month (1-31)
102
# | +-------hour (0-23)
103
# +---------min (0-59)
104
# 
105
#	*/2	*	*	*	*	root	/usr/local/bin/apcups_status.sh
106
	*/5	*	*	*	*	root	/usr/local/bin/smart_status.sh
107
	5	1	*	*	*	root	/usr/local/bin/zabbix-mysql-backupconf.sh
108
109
</pre>