批量部署Zabbix Agent

Zabbix学习之Server/Agent部署,zabbixagent

       公司最近需要上一套监控系统,之前的监控系统是
Nagios。我之前也没接触过
Nagios,后来就调研了一番。对比了市面上比较火的几款监控系统,还是感觉
Zabbix 更出色一点。

       下面是 Zabbix Server 和 Zabbix Agent 的部署流程。

环境: 
OS Version:CentOS 6.5 x86_64位 
采用最小化安装,系统经过了基本优化 selinux 为关闭状态,iptables 为无限制模式 
主机名:zabbix-master-rj
 I P :10.1.1.1

 

这里需要注意:

如果 iptables 不能关闭的话,可以按如下配置:

[[email protected] /root]#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
[[email protected]-master-rj /root]#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
[[email protected]-master-rj /root]#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
[[email protected]-master-rj /root]#iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT

如果 selinux 不能关闭的话,也可以按如下配置:

[[email protected] /root]#chcon -R -t httpd_sys_content_rw_t /usr/share/zabbix/conf
[[email protected]-master-rj /root]#setsebool -P httpd_can_network_connect=true
[[email protected]-master-rj /root]#semanage port -a -t http_port_t -p tcp 10051

 

一、Zabbix Server部署
1、准备 epel
yum 源

[[email protected] /root]# rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[[email protected] /root]# yum clean all
[[email protected]-master-rj /root]# yum list|grep zabbix22
zabbix22.x86_64 2.2.1-5.el6 epel
zabbix22-agent.x86_64 2.2.1-5.el6 epel
zabbix22-dbfiles-mysql.noarch 2.2.1-5.el6 epel
zabbix22-dbfiles-pgsql.noarch 2.2.1-5.el6 epel
zabbix22-dbfiles-sqlite3.noarch 2.2.1-5.el6 epel
zabbix22-proxy.noarch 2.2.1-5.el6 epel
zabbix22-proxy-mysql.x86_64 2.2.1-5.el6 epel
zabbix22-proxy-pgsql.x86_64 2.2.1-5.el6 epel
zabbix22-proxy-sqlite3.x86_64 2.2.1-5.el6 epel
zabbix22-server.noarch 2.2.1-5.el6 epel
zabbix22-server-mysql.x86_64 2.2.1-5.el6 epel
zabbix22-server-pgsql.x86_64 2.2.1-5.el6 epel
zabbix22-web.noarch 2.2.1-5.el6 epel
zabbix22-web-mysql.noarch 2.2.1-5.el6 epel
zabbix22-web-pgsql.noarch 2.2.1-5.el6 epel

 

2、安装 zabbix server
2.2.1

[[email protected] /root]# yum install zabbix22.x86_64 zabbix22-agent.x86_64 zabbix22-dbfiles-mysql.noarch zabbix22-server.noarch zabbix22-server-mysql.x86_64 zabbix22-web.noarch zabbix22-web-mysql.noarch -y
=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Installing:
zabbix22 x86_64 2.2.1-5.el6 epel 197 k
zabbix22-agent x86_64 2.2.1-5.el6 epel 149 k
zabbix22-dbfiles-mysql noarch 2.2.1-5.el6 epel 1.1 M
zabbix22-server noarch 2.2.1-5.el6 epel 20 k
zabbix22-server-mysql x86_64 2.2.1-5.el6 epel 405 k
zabbix22-web noarch 2.2.1-5.el6 epel 4.2 M
zabbix22-web-mysql noarch 2.2.1-5.el6 epel 9.6 k
Installing for dependencies:
OpenIPMI-libs x86_64 2.0.16-14.el6 base 473 k
apr x86_64 1.3.9-5.el6_2 base 123 k
apr-util x86_64 1.3.9-3.el6_0.1 base 87 k
apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k
fping x86_64 2.4b2-10.el6 epel 31 k
httpd x86_64 2.2.15-31.el6.centos updates2 824 k
httpd-tools x86_64 2.2.15-31.el6.centos updates2 73 k
iksemel x86_64 1.4-2.el6 epel 48 k
libXpm x86_64 3.5.10-2.el6 base 51 k
lm_sensors-libs x86_64 3.1.1-17.el6 base 38 k
net-snmp-libs x86_64 1:5.5-49.el6_5.4 updates2 1.5 M
php x86_64 5.3.3-27.el6_5.2 updates2 1.1 M
php-bcmath x86_64 5.3.3-27.el6_5.2 updates2 36 k
php-cli x86_64 5.3.3-27.el6_5.2 updates2 2.2 M
php-common x86_64 5.3.3-27.el6_5.2 updates2 526 k
php-gd x86_64 5.3.3-27.el6_5.2 updates2 108 k
php-ldap x86_64 5.3.3-27.el6_5.2 updates2 40 k
php-mbstring x86_64 5.3.3-27.el6_5.2 updates2 457 k
php-mysql x86_64 5.3.3-27.el6_5.2 updates2 83 k
php-pdo x86_64 5.3.3-27.el6_5.2 updates2 77 k
php-xml x86_64 5.3.3-27.el6_5.2 updates2 105 k
unixODBC x86_64 2.2.14-12.el6_3 base 378 k

Transaction Summary
=======================================================================================================================================
Install 29 Package(s)

 

3、配置数据库(zabbix支持MySQL/PostgreSQL/Oracle,这里以MySQL数据库为例)

[[email protected] /root]# /etc/init.d/mysqld start
[[email protected]-master-rj /root]# mysql -uroot -p
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL ON zabbix.* TO [email protected]'10.1.1.%' IDENTIFIED BY 'opszabbix';
[[email protected]-master-rj /root]# ls /usr/share/zabbix-mysql/*sql
-rw-r--r--. 1 root root 970301 Jan 29 2014 /usr/share/zabbix-mysql/data.sql
-rw-r--r--. 1 root root 1978341 Dec 9 2013 /usr/share/zabbix-mysql/images.sql
-rw-r--r--. 1 root root 106560 Dec 9 2013 /usr/share/zabbix-mysql/schema.sql

 依次倒入这三个 SQL 文件

[[email protected] /root]# mysql -uopszabbix -popszabbix zabbix < /usr/share/zabbix-mysql/schema.sql
[[email protected]-master-rj /root]# mysql -uopszabbix -popszabbix zabbix < /usr/share/zabbix-mysql/images.sql
[[email protected]-master-rj /root]# mysql -uopszabbix -popszabbix zabbix < /usr/share/zabbix-mysql/data.sql

 

4、安装 Zabbix Web
GUI

[[email protected] /root]# /etc/init.d/httpd start
[[email protected]-master-rj /root]# /etc/init.d/zabbix-server start

在游览器输入你zabbix22-web.noarch安装的服务器IP,比如

威尼斯网址开户网站 1

威尼斯网址开户网站 2

遇到该提示,说明php的配置没满足zabbix安装需求,此时你就需要修改php的相关配置项。

此处为修改之后的php相关配置项!

[[email protected] /root]# grep '^post_max_size|^max_execution_time|^max_input_time|^date.timezone' /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Shanghai

威尼斯网址开户网站 3

威尼斯网址开户网站 4

如果出现上图不能连接MySQL数据库的情况,请按如下思路排查问题:

1、首先查看本机的iptables是否限制3306端口

2、其次查看本机的selinux是否关闭

3、最后查看MySQL数据库的授权是否正常

威尼斯网址开户网站 5

威尼斯网址开户网站 6

威尼斯网址开户网站 7

OK,到这一步,Zabbix
Server 端安装就结束了。在安装过程中,我们输入的各个配置项在/etc/zabbix/web/zabbix.conf.php文件中都能看到!

[[email protected] /root]# cat /etc/zabbix/web/zabbix.conf.php    
<?php
// Zabbix GUI configuration file
global $DB;
$DB['TYPE'] = 'MYSQL';                      # zabbix server使用的数据库类型
$DB['SERVER'] = '10.1.1.1';                 # zabbix server使用的数据库IP地址
$DB['PORT'] = '3306';                       # zabbix server使用的数据库的端口
$DB['DATABASE'] = 'zabbix';                 # zabbix server使用的数据库的库名
$DB['USER'] = 'opszabbix';                  # zabbix server所使用的数据库用户
$DB['PASSWORD'] = '6a7b3efb855df9c';        # 经过加密的数据库用户密码
// SCHEMA is relevant only for IBM_DB2 database
$DB['SCHEMA'] = '';                         # 如果你使用DB2的数据库时,这一项配置才有用
$ZBX_SERVER = 'localhost';                  # zabbix server所在的IP地址
$ZBX_SERVER_PORT = '10051';                 # zabbix server 的 端口号
$ZBX_SERVER_NAME = 'zabbix-master-rj';      # zabbix server 的主机名
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
?>

 

5、初次登陆

依然是在  这个地址进行登陆。Zabbix Server 安装完毕之后的默认管理员为Admin,密码为zabbix。

威尼斯网址开户网站 8

登陆之后的界面如下:

威尼斯网址开户网站 9

6、配置开机自启动

[[email protected] /root]# chkconfig zabbix-server on

 

二、Zabbix Agent部署

1、准备 epel
yum 源

[[email protected] /root]# rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[[email protected]agent-node-rj /root]# yum clean all

2、安装 Zabbix
Agent

[[email protected] /root]# yum install zabbix22.x86_64 zabbix22-agent.x86_64

3、配置 Zabbix
Agent

[[email protected] /root]# # grep '^Server|^ServerActive|^Hostname' /etc/zabbix_agentd.conf
Server=10.1.1.120                 # 被动模式,允许哪台服务器连接Agent
ServerActive=10.1.1.120           # 主动模式,向哪台服务器传送数据
Hostname=agent-node-rj            # agent端的主机名

4、启动服务以及配置开机自启

[[email protected] /root]# chkconfig zabbix-agentd on
[[email protected] /root]# /etc/init.d/zabbix-agentd start

 

OK!

以上就是Zabbix Server 和 Zabbix Agent端的部署了!

目录

zabbix作为系统级的监控还是非常给力,它总是在后台孜孜不倦的进行反反复复的检查和校验,然后通过邮件,短信,图形等方式来把系统的预警表达出来。

批量部署Zabbix Agent

zabbix作为系统级的监控还是非常给力,它总是在后台孜孜不倦的进行反反复复的检查和校验,然后通过邮件,短信,图形等方式来把系统的预警表达出来。

zabbix agent是在客户端上需要的一个组件,在这种被动模式下,zabbix
server的压力就会大大减轻,因为是在agent端开始推送信息给服务端,而不是服务端主动去获取。

简单来上个图,其实这个架构和原理想必大家非常熟悉了。

威尼斯网址开户网站 10

客户单的server和zabbix
server之间通过网络的特定端口来进行交互。所以在两个server间需要考虑防火墙。

现在如果要在每个server安装这个agent,至少我们需要把安装介质拷贝过去,创建相应的目录,创建对应的用户,然后配置网络,最后运行agent的安装文件做make
install等等。

如果每个客户端都这么做一遍,其实步骤都是类似,花费时间不少,还是非常耗费精力的。我就自己试着手工方式安装,结果安装了几台之后,备受煎熬。中间某些步骤有操作失误,又得分析分析,最后发现是个很简单的小错误。

至少对于我来说,我认为最简单的安装方式就是只提供一个ip地址,然后剩下的事情都能自动完成。

比如假设我们有个脚本 zabbix_agent.sh
只需要输入需要安装agent的机器ip地址,就会开始自动安装,这样就省时省力了。

我们可以把问题继续细化,把它细化称为可以实现的几个部分。比如我在一台中间代理服务器上,需要通过这台服务器连接到各个server安装agent,那么首先要做的就是在目标机器上创建对应的目录,把安装所需要的文件等都给拷贝过去,可以简称发布agent

然后文件目录等都具备之后,我们就需要配置网络防火墙,创建zabbix
agent的操作系统用户,调用安装文件,这个部分简称为部署agent

所以我把脚本分成两个部分,运行的时候只需要提供ip地址即可。

./publish_zabbix_agd.sh $1
./zabbix_agent_dep.sh $1

明确了目标任务之后,剩下的就是具体的实现了。

对于发布程序来说,为了达到一键式发布,部署的效果,使用expect的方式来动态运行脚本。

目前我采用的方式如下:

发布agent的脚本内容如下,假设agent的目录为new_agent,就线创建文件夹,然后把安装文件拷贝到指定的目录下/home/zabbix

#!/usr/bin/expect
 set ip_addr [lindex $argv 0]
 set timeout 2
 spawn ssh $ip_addr
 expect “*#”
 send “mkdir -p /home/zabbix \r”
 expect eof
 spawn scp -r  /home/jeanron/new_agent $ip_addr:/home/zabbix
 send “exit \r”
 expect eof

然后部署agent的脚本如下,我们把网络配置,调用安装文件的部分都浓缩在install-zabbix-agentd.sh里面。直接一次性调用即可。

#!/usr/bin/expect
 set ip_addr [lindex $argv 0]
 set timeout 120
 spawn ssh $ip_addr
 expect “*#”
 send “cd /home/zabbix/new_agent/zabbix_agent \r”
 send “chmod +x install-zabbix-agentd.sh \r”
 send “./install-zabbix-agentd.sh \r”
 send “exit \r”
 send “exit \r”
 expect eof

按照这个思路,基本就能够实现一键式安装zabbix
agent了。在吃饭前,开始跑脚本,等吃完饭回来,几十台的agent就自动安装完成了,在zabbix也能够自动识别。

一些Zabbix相关教程集合:

Ubuntu 14.04下Zabbix2.4.5 源码编译安装 

安装部署分布式监控系统Zabbix 2.06

《安装部署分布式监控系统Zabbix 2.06》

CentOS 6.3下Zabbix安装部署

Zabbix分布式监控系统实践

CentOS 6.3下Zabbix监控apache server-status

CentOS 6.3下Zabbix监控MySQL数据库参数

64位CentOS 6.2下安装Zabbix 2.0.6   

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

本文永久更新链接地址:

Agent
zabbix作为系统级的监控还是非常给力,它总是在后台孜孜不倦的进行反反复复的检查和校验,然后通过邮件,短信,图形…

Ansible的目录树结构如下:

威尼斯网址开户网站,zabbix 监控linux agent ,添加了监控项,需要在zabbix—agentdconf做什设置?

在agent.conf里面添加一个key,
agent.conf的最后有例子的。加入了之后就可以对你设置的key进行监控。
 

1. 准备工作

1.1 Linux+MySQL+PHP环境
1.2 添加软件包安装源
1.3 若mysql为空密码,需要修改mysql的root密码
1.4 时间同步

zabbix agent是在客户端上需要的一个组件,在这种被动模式下,zabbix
server的压力就会大大减轻,因为是在agent端开始推送信息给服务端,而不是服务端主动去获取。

# tree zabbix/

用zabbix,来监控应用如果应用CPU飙高到一定程度以后zabbix server端就不可以收到监控数据为何··

被监控机器在CPU飚高后,进入无法通信状态,所有无法监控到数据
 

公司最近需要上一套监控系统,之前的监控系统是 Nagios。我之前也没接触过
Nagios,后来就调研了一番…

2. 开始安装

2.1 创建zabbix用户
2.2 创建zabbix数据库
2.3 yum安装zabbix
2.4 导入zabbix数据库的sql文件
2.5 配置zabbix_server.conf
2.6
浏览器访问http://x.x.x.x/zabbix
,开始配置zabbix

简单来上个图,其实这个架构和原理想必大家非常熟悉了。

zabbix/
├── defaults
├── files
│  └── zabbix.tar.gz
├── handlers
├── meta
├── tasks
│  └── main.yml
├── templates
│  └── zabbix_agentd.conf.j2
└── vars
    └── main.yaml

3.部署Zabbix Agent

3.1 客户端安装agent
3.2 客户端配置zabbix_agentd.conf文件
3.3 重启zabbix-agent服务


威尼斯网址开户网站 11

zabbix.tar.gz:tar包是编译安装完zabbix后打的tar包

1. 准备工作

1.1 Linux+MySQL+PHP环境(zabbix安装后自动装了apache)
Server1:(角色:server)

  • CentOS6.8 x64
  • 192.168.1.190
  • zabbix server

Server2:(角色:agent)

  • CentOS6.8 x64
  • 192.168.1.191
  • zabbix agent

客户单的server和zabbix
server之间通过网络的特定端口来进行交互。所以在两个server间需要考虑防火墙。

zabbix_agentd.conf.j2:编译安装完zabbix,copy的zabbix_agentd.conf文件,略微添加点东西,后面会展示。

Zabbix架构

下面是我根据自己的理解,画的一个简单版架构图,旨在帮助大家能够快速理解Zabbix环境,zabbix
server和agent之间的工作原理,适合入门新手;由于是简版图,所以展示的只是比较单一情况的架构,不包括zabbix所有模块、站库分离、zabbix
proxy、数据收集的主动/被动模式、分布式等等。后续有时间的时候我会画出更多详细的原理图。更多权威信息,也请查看官方文档(http://www.zabbix.com/manuals)

威尼斯网址开户网站 12

Zabbix Architecture.png

Tips:

  1. 在开始部署之前,简单的解释一下zabbix
    server/agent的工作原理。zabbix作为一款开源的监控软件,是典型的C/S架构,分为server端和agent端,所有被监控的服务器上都要安装一个zabbix-agent的客户端软件,用来收集服务上的硬件信息、操作系统信息、应用信息等,负责收集和整理数据的服务器叫zabbix
    server,在zabbix
    server上,至少需要安装安装两个软件,一个是zabbix-server,另外一个是zabbix-agent,可能有的初学同学有疑问,为啥zabbix
    server上还要安装agent呢,这是因为zabbix
    server也要监控自己这台(或多台proxy)服务器的运行状况。
  2. zabbix的数据收集方式有两种,一种是主动式收集,另一种是被动式收集。这里的主动和被动都是相对于Server而言,如果Server的硬件配置比较好,可以采用主动方式收集数据,轮询去找所有的agent要数据,这样可以减少客户端的性能资源消耗,如果Agent的服务器硬件配置比较好,可以采用被动方式收集数据,由agent定期主动提交数据给server。

1.2 添加软件包安装源
我的系统版本是CentOS6.8
x64,因此在添加软件包源的时候选择的是epel中6系列的rpm源;若你的系统是CentOS5.x或者7.x也不必担心,可以去到http://dl.fedoraproject.org
中去寻找对应的源,切勿添加了错误的源,这样可能会导致后续再安装软件的时候都会检测不到对应版本的软件包,而需要额外很多不必要的操作。

  [root@example00 ~]# yum -y install wget
  [root@example00 ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  [root@example00 ~]# rpm -ivh epel-release-6-8.noarch.rpm 

1.3 若mysql为空密码,需要修改mysql的root密码

  [root@example00 ~]# mysql -u root -p
  mysql> use mysql;
  mysql> UPDATE user SET password = PASSWORD('123456') WHERE user='root';
  mysql> flush privileges;
  mysql> exit

1.4 时间同步
若是本地的自己测试环境,可以不关心时间同步的问题,但若是生产环境(支付、游戏、交易)或者是开发版测试环境,那么必须要保持服务器的时间同步,否则可能会导致灾难性的问题。

  [root@example00 ~]# crontab -l
  */20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1

现在如果要在每个server安装这个agent,至少我们需要把安装介质拷贝过去,创建相应的目录,创建对应的用户,然后配置网络,最后运行agent的安装文件做make
install等等。

zabbix_agentd:文件也是编译安装完zabbix,copy的启动脚本文件,修改了里面的zabbix_home变量。

2. 开始安装

2.1 创建zabbix用户

  [root@example00 ~]# groupadd zabbix
  [root@example00 ~]# useradd -g zabbix -m zabbix -s /sbin/nologin

2.2 创建zabbix数据库

  [root@example00 ~]# mysql -u root -p
  mysql> create database zabbix character set utf8;
  mysql> grant all privileges on zabbix.* to zabbix@'192.168.1.190' identified by 'zabbix' with grant option;
  mysql> flush privileges;
  mysql> show databases;
  mysql> exit

2.3 yum安装zabbix
查找zabbix的软件包

  [root@example00 src]# yum list | grep zabbix
  zabbix22.x86_64                            2.2.16-1.el6                 epel    
  zabbix22-agent.x86_64                      2.2.16-1.el6                 epel    
  zabbix22-dbfiles-mysql.noarch              2.2.16-1.el6                 epel    
  zabbix22-proxy-mysql.x86_64                2.2.16-1.el6                 epel    
  zabbix22-server-mysql.x86_64               2.2.16-1.el6                 epel      
  zabbix22-web-mysql.noarch                  2.2.16-1.el6                 epel

安装zabbix必须的包

  [root@example00 src]# yum -y install zabbix22 zabbix22-agent zabbix22-dbfiles-mysql zabbix22-proxy-mysql zabbix22-server-mysql zabbix22-web-mysql

2.4 导入zabbix数据库的sql文件

  [root@example00 src]# cd /usr/share/zabbix-mysql/
  [root@example00 zabbix-mysql]# ls
  data.sql  images.sql  schema.sql  upgrades

  [root@example00 zabbix-mysql]# mysql -u root -p zabbix < schema.sql 
  [root@example00 zabbix-mysql]# mysql -u root -p zabbix < images.sql
  [root@example00 zabbix-mysql]# mysql -u root -p zabbix < data.sql

注意:
zabbix-server的数据库导入顺序不能乱,3个都要导入
zabbix-proxy的数据库导入,只需要schema就可以

2.5 配置zabbix_server.conf

  [root@example00 zabbix-mysql]# cd /etc/zabbix
  [root@example00 zabbix]# ls
  alertscripts  externalscripts  web  zabbix_agent.conf  zabbix_agentd.conf  zabbix_proxy.conf  zabbix_server.conf
  [root@example00 zabbix]# vim zabbix_server.conf 
  78 DBHost=192.168.1.190       # 服务器的公网IP地址
  113 DBPassword=zabbix       # zabbix-server的mysql数据库密码

启动zabbix-server服务

  [root@example00 zabbix]# /etc/init.d/zabbix-server start
  Starting Zabbix server:                                    [  OK  ]

启动apache的httpd服务

  [root@example00 zabbix]# service httpd restart
  Stopping httpd:                                            [  OK  ]
  Starting httpd:                                          [  OK  ]

2.6
浏览器访问http://x.x.x.x/zabbix,开始配置zabbix

威尼斯网址开户网站 13

Welcome.png

威尼斯网址开户网站 14

Check of pre-requires.png

如果安装检查时提示php参数不对,需要修改php的配置文件

  [root@example00 zabbix]# find / -name php.ini
  /etc/php.ini
  [root@example00 zabbix]# vim /etc/php.ini 
  440 max_execution_time = 300
  449 max_input_time = 300
  729 post_max_size = 16M
  946 date.timezone = PRC

重启apache服务,使得配置生效

  [root@example00 zabbix]# service httpd restart
  Stopping httpd:                                            [  OK  ]
  Starting httpd:                                            [  OK  ]

刷新浏览器页面后,PHP必要的检查项目就都通过了

威尼斯网址开户网站 15

Check of pre-requires.png

威尼斯网址开户网站 16

Configure DB connection.png

威尼斯网址开户网站 17

Zabbix server details.png

威尼斯网址开户网站 18

Pre-Installation summary.png

威尼斯网址开户网站 19

Install.png

威尼斯网址开户网站 20

Login.png

zabbix web的默认登录账号/密码为:admin/zabbix


源码编译安装方法

参考链接:http://blog.chinaunix.net/uid-25266990-id-3380929.html


如果每个客户端都这么做一遍,其实步骤都是类似,花费时间不少,还是非常耗费精力的。我就自己试着手工方式安装,结果安装了几台之后,备受煎熬。中间某些步骤有操作失误,又得分析分析,最后发现是个很简单的小错误。

zabbix playbook文件如下:

3. 部署Zabbix Agent

客户端安装agent

  [root@example01 ~]# yum -y install zabbix22-agent

客户端配置zabbix_agentd.conf文件

  [root@example01 ~]# vim /etc/zabbix/zabbix_agentd.conf 
  81 Server=192.168.1.190               # zabbix server的地址
  122 ServerActive=192.168.1.190        # zabbix server的地址

重启zabbix-agent服务

  [root@example01 ~]# /etc/init.d/zabbix-agent start
  Starting Zabbix agent:                                     [  OK  ]

浏览器上刷新Zabbix Web
UI的监控页面,就可以查看到通过监控数据绘画的监控图

威尼斯网址开户网站 21

Zabbix Server Web UI.png


好了,整个安装过程就到此为止,若你在安装的过程中有报错没解决成功,可以看下我后面发布的几篇关于排错的文章。若你觉得松哥写的文章对你有用,谢谢土豪“喜欢”和“打赏”,我将继续坚持分享。

至少对于我来说,我认为最简单的安装方式就是只提供一个ip地址,然后剩下的事情都能自动完成。

cat zabbix.yml 

比如假设我们有个脚本 zabbix_agent.sh
只需要输入需要安装agent的机器ip地址,就会开始自动安装,这样就省时省力了。

  • hosts: all
      roles:
        – zabbix

我们可以把问题继续细化,把它细化称为可以实现的几个部分。比如我在一台中间代理服务器上,需要通过这台服务器连接到各个server安装agent,那么首先要做的就是在目标机器上创建对应的目录,把安装所需要的文件等都给拷贝过去,可以简称发布agent

tasks文件内容如下:

然后文件目录等都具备之后,我们就需要配置网络防火墙,创建zabbix
agent的操作系统用户,调用安装文件,这个部分简称为部署agent

# cat main.yml 

所以我把脚本分成两个部分,运行的时候只需要提供ip地址即可。

  • name: scp zabbix 到 client
      copy: src=zabbix.tar.gz dest={{ zabbix_home }}
  • name: scp zabbix_aegntd 到 client
      copy: src=/tmp/zabbix_agentd dest=/etc/init.d/ mode=777
  • name: tar zxf zabbix.tar.gz 解压
      shell: cd {{ zabbix_home }} && tar -zxf zabbix.tar.gz
  • name: Copy zabbix_agent.conf Config file
      template: >
            src=zabbix_agentd.conf.j2
            dest=/usr/local/zabbix/etc/zabbix_agentd.conf
            mode=0644 owner=root group=root
  • name: restart zabbix
      service: name=zabbix_agentd state=restarted

./publish_zabbix_agd.sh $1
./zabbix_agent_dep.sh $1

vars的内容如下:

明确了目标任务之后,剩下的就是具体的实现了。

# cat main.yaml 
zabbix_home: /usr/local

对于发布程序来说,为了达到一键式发布,部署的效果,使用expect的方式来动态运行脚本。

zabbix_agentd.conf.j2模板的文件内容如下:

目前我采用的方式如下:

#grep -v ‘^#’ zabbix_agentd.conf.j2  | grep -v ‘^$’
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1
Server=10.74.246.70
ListenPort=10050
ServerActive=10.74.246.70
Hostname={{ ansible_default_ipv4.address }}
AllowRoot=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
UserParameter=tomcat_port,/usr/local/zabbix/share/zabbix/alertscripts/tomcat_port.sh
$1
UserParameter=tcp[*],/usr/local/zabbix/share/zabbix/alertscripts/tcp_connection.sh
$1
UserParameter=nginx_port,/usr/local/zabbix/share/zabbix/alertscripts/nginx_port.sh
$1
UserParameter=erro_log[*],/usr/local/zabbix/share/zabbix/alertscripts/error_log.sh
$1

发布agent的脚本内容如下,假设agent的目录为new_agent,就线创建文件夹,然后把安装文件拷贝到指定的目录下/home/zabbix

然后就可以定义hosts文件,批量操作安装zabbix_agent。

#!/usr/bin/expect
 set ip_addr [lindex $argv 0]
 set timeout 2
 spawn ssh $ip_addr
 expect “*#”
 send “mkdir -p /home/zabbix \r”
 expect eof
 spawn scp -r  /home/jeanron/new_agent $ip_addr:/home/zabbix
 send “exit \r”
 expect eof

对于某些特定的主机,需要批量推送特定的zabbix_agentd.conf文件,可以修改完zabbix_agentd.conf.j2模板,然后使用ansible推送:

然后部署agent的脚本如下,我们把网络配置,调用安装文件的部分都浓缩在install-zabbix-agentd.sh里面。直接一次性调用即可。

#ansible-playbook zabbix.yml –start-at-task=’Copy zabbix_agent.conf
Config file’

#!/usr/bin/expect
 set ip_addr [lindex $argv 0]
 set timeout 120
 spawn ssh $ip_addr
 expect “*#”
 send “cd /home/zabbix/new_agent/zabbix_agent \r”
 send “chmod +x install-zabbix-agentd.sh \r”
 send “./install-zabbix-agentd.sh \r”
 send “exit \r”
 send “exit \r”
 expect eof

当然也可以指定推送那些机器,后面-l指定就行

按照这个思路,基本就能够实现一键式安装zabbix
agent了。在吃饭前,开始跑脚本,等吃完饭回来,几十台的agent就自动安装完成了,在zabbix也能够自动识别。

#ansible-playbook zabbix.yml –start-at-task=’Copy zabbix_agent.conf
Config file’ -l 192.168.121.128

一些Zabbix相关教程集合

一些Zabbix相关教程集合

Ubuntu
14.04下Zabbix2.4.5 源码编译安装 
http://www.linuxidc.com/Linux/2015-05/117657.htm

Ubuntu
14.04下Zabbix2.4.5 源码编译安装 
http://www.linuxidc.com/Linux/2015-05/117657.htm

安装部署分布式监控系统Zabbix 2.06
http://www.linuxidc.com/Linux/2013-07/86942.htm

安装部署分布式监控系统Zabbix 2.06
http://www.linuxidc.com/Linux/2013-07/86942.htm

《安装部署分布式监控系统Zabbix 2.06》
http://www.linuxidc.com/Linux/2013-07/86942.htm

《安装部署分布式监控系统Zabbix 2.06》
http://www.linuxidc.com/Linux/2013-07/86942.htm

CentOS
6.3下Zabbix安装部署
http://www.linuxidc.com/Linux/2013-05/83786.htm

CentOS
6.3下Zabbix安装部署
http://www.linuxidc.com/Linux/2013-05/83786.htm

Zabbix分布式监控系统实践
http://www.linuxidc.com/Linux/2013-06/85758.htm

Zabbix分布式监控系统实践
http://www.linuxidc.com/Linux/2013-06/85758.htm

CentOS 6.3下Zabbix监控apache server-status
http://www.linuxidc.com/Linux/2013-05/84740.htm

Zabbix Agent 源码编译安装
http://www.linuxidc.com/Linux/2016-04/130437.htm

CentOS 6.3下Zabbix监控MySQL数据库参数
http://www.linuxidc.com/Linux/2013-05/84800.htm

CentOS 6.3下Zabbix监控MySQL数据库参数
http://www.linuxidc.com/Linux/2013-05/84800.htm

64位CentOS 6.2下安装Zabbix 2.0.6 
 http://www.linuxidc.com/Linux/2014-11/109541.htm

64位CentOS 6.2下安装Zabbix 2.0.6 
 http://www.linuxidc.com/Linux/2014-11/109541.htm

ZABBIX
的详细介绍
:请点这里
ZABBIX
的下载地址
:请点这里

ZABBIX
的详细介绍
:请点这里
ZABBIX
的下载地址
:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/123008.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140874.htm

威尼斯网址开户网站 22

威尼斯网址开户网站 23

相关文章