编译方式
编译安装 -> 打包到zabbix站点 客户端curl 执行服务端shell安装脚本
1.安装
代码语言:javascript复制tar zxvf zabbix-3.0.3.tar.gz
#官网下载解压源码包
cd zabbix-3.0.3
./configure --prefix=/usr/local/zabbix-agent --enable-agent
make &&make install
#编译安装到本地硬盘
2.修改配置
cat /usr/local/zabbix-agent/etc/zabbix_agentd.conf
代码语言:javascript复制#version 1
LogFile=/tmp/zabbix_agentd.log
#日志路径
Server=zabbix.ops.net
ServerActive=zabbix.ops.net
#指定服务器地址
Hostname=88lm-accesscore
#定义agent主机名
Include=/usr/local/zabbix-agent/etc/zabbix_agentd.conf.d
#cat all.key
#HostMetadataItem=system.uname
#它的值来自key
#HostMetadata=Linux xxxxx
#可直接定义值
通过使用各式各样的metadata我们可以用于区分各个主机,来达到我们各种需求
3.自定义key(常用)
代码语言:javascript复制# System
UserParameter=tcp[*],/usr/local/zabbix-agent/shell/tcp_check.sh $1
#tcp状态
UserParameter=ports.discovery[*],python /usr/local/zabbix-agent/shell/ports.py $1
#服务端口自动发现
2.自定义shell
存放路径 /usr/local/zabbix-agent/shell
3 打包
代码语言:javascript复制cd /usr/local
tar zcvf zabbix-agent.tar.gz zabbix-agent/
mkdir -p /www/zabbix/agent/6
mkdir /www/zabbix/agent/7
mv zabbix-agent.tar.gz /www/zabbix/agent/7/zabbix-agent.tar.gz
4 远程安装
curl -s http://zabbix.ops.net/agent/zabbix-agent_install.sh |bash
代码语言:javascript复制wget -c http://zabbix.ops.net/agent/7/zabbix-agent.tar.gz
#/www/zabbix/agent 目录下存放包
tar -xf zabbix-agent.tar.gz -C /usr/local/ && rm zabbix-agent.tar.gz
#解压和清理
groupadd zabbix
useradd -M -s /sbin/nologin -g zabbix zabbix
#添加用户
(grep "zabbix" -lr /etc/sudoers)||cat >> /etc/sudoers << EOF
zabbix ALL=(ALL) NOPASSWD: /bin/netstat
Defaults:zabbix !requiretty
EOF
#sudoer
chmod x /etc/rc.local
echo "/usr/local/zabbix-agent/sbin/zabbix_agentd" >> /etc/rc.local
#开机启动
chown zabbix:zabbix -R /usr/local/zabbix-agent
/usr/local/zabbix-agent/sbin/zabbix_agentd
#启动服务
启动服务
代码语言:javascript复制/usr/local/zabbix-agent/zabbix_agentd
rpm方式
- 将rpm存放到zabbix服务器
- 定义key和shell打包
- 写安装shell整合
批量安装
一键安装以编译的agent包
代码语言:javascript复制curl -s http://zabbix.monitor.com/agent/base_install.sh |sh
salt:
salt '*' cmd.run "curl -s http://zabbix.monitor.com/agent/base.sh |sh"
salt "*" state.sls base.init.zabbix.install pillar='{env:[jb]}'
ansible:
ansible all -m shell -a 'curl -s http://zabbix.monitor.com/agent/base.sh |sh'