一、概述

为什么使用zabbix分布式监控。
假如zabbix server在杭州, 北京、上海、广州各有100台机器需要监控,天津有10台机器需要监控。

如果没有分布式的话,zabbix server就得添加310台主机,而且每台主机都要zabbix server去获取数据。

如果有分布式的话,北京部署一台proxy,北京一百台机器都让proxy代替server去获取数据。上海、广州各一台proxy,天津一台proxy。

zabbix server ip:172.16.0.3   192.168.1.106
zabbix proxy ip: 172.16.0.1
zabbix agent ip: 172.16.0.1

[TOC]

三.3.一 zabbix proxy安装(源码格局)

zabbix源码安装流程及报错解决办法

二、zabbix proxy安装脚本

#!/bin/sh
if [ -d "/usr/local/zabbix/" ];then
    echo "zabbix is install"
    exit 1
else
    echo "zabbix in not install"
fi

my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
    echo "$my_gcc"
else
    yum -y install gcc
fi

my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
    echo "$my_gcc_c"
else
    yum -y install gcc-c++
fi

mysql_devel=`rpm -qa mysql-devel`
if [[ -n "$mysql_devel" ]];then
    echo "$mysql_devel"
else
    yum install mysql-devel -y
fi

snmp_devel=`rpm -qa net-snmp-devel`
if [[ -n "$snmp_devel" ]];then
    echo "$snmp_devel"
else
    yum install net-snmp-devel -y
fi

libxml2_devel=`rpm -qa libxml2-devel`
if [[ -n "$libxml2_devel" ]];then
    echo "$libxml2_devel"
else
    yum install libxml2-devel -y
fi

libcurl=`rpm -qa libcurl-devel`
if [[ -n "$libcurl" ]];then
    echo "$libcurl"
else
    yum install libcurl-devel -y
fi

groupadd zabbix useradd -g zabbix zabbix
cd /usr/local/src/
tar -zxvf zabbix-3.0.9.tar.gz 
cd zabbix-3.0.9
./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make 
make install

安装

证实:系统为centos六.8安装zabbix三.0LTS版本,数据库使用postgresql,proxy的数据库用sqlite

架构

五台机器关系如下

agent -> proxy -> server -> db  <- web

不是很正确,web端也会造访server

用vagrant建立五台机械

  config.vm.define "zabbix_server" do |zabbix_server|
    zabbix_server.vm.box = "centos6"
    zabbix_server.vm.network "private_network", ip: "192.168.100.10"
    zabbix_server.vm.hostname = "server.zabbix"
  end

  config.vm.define "zabbix_db" do |zabbix_db|
    zabbix_db.vm.box = "centos6"
    zabbix_db.vm.network "private_network", ip: "192.168.100.11"
    zabbix_db.vm.hostname = "db.zabbix"
  end

  config.vm.define "zabbix_web" do |zabbix_web|
    zabbix_web.vm.box = "centos6"
    zabbix_web.vm.network "private_network", ip: "192.168.100.12"
    zabbix_web.vm.hostname = "web.zabbix"
  end

  config.vm.define "zabbix_proxy" do |zabbix_proxy|
    zabbix_proxy.vm.box = "centos6"
    zabbix_proxy.vm.network "private_network", ip: "192.168.100.13"
    zabbix_proxy.vm.hostname = "proxy.zabbix"
  end

  config.vm.define "zabbix_agent" do |zabbix_agent|
    zabbix_agent.vm.box = "centos6"
    zabbix_agent.vm.network "private_network", ip: "192.168.100.14"
    zabbix_agent.vm.hostname = "jsp.site.cos"
  end

  #box 指定使用的镜像
  #nework 指定ip
  #hostname指定hostname
  #运行 vagrant up zabbix_server zabbix_db zabbix_web zabbix_proxy zabbix_agent
  #然后就有五台机器了   

1.创设目录

mkdir -p /usr/local/zabbix

一. zabbix的介绍

三、查看下zabbix_proxy是或不是有安装成功

/usr/local/zabbix/sbin/zabbix_proxy -h

安装zabbix-db

yum install postgresql-server
[root@db ~]# service postgresql start

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.
                                                           [FAILED]
#启动就报错 按照提示运行                                                           
[root@db ~]# service postgresql initdb
Initializing database:                                     [  OK  ]

默认数据会建立在/var/lib/pgsql/data
cd /var/lib/pgsql/data

默认监听本地 修改为监听所有地址
vi postgresql.conf
#listen_addresses = 'localhost' -> listen_addresses = '*'

修改访问权限的文件 本地无密码访问,192.168.100.0/32段使用密码访问,其他地方无法访问
vi pg_hba.conf
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         192.168.100.0/32          md5
修改后重启服务器
service postgresql restart
创建zabbix的用户和库
sudo -u postgres createuser zabbix
sudo -u postgres createdb -O zabbix zabbix
测试一下
[root@db data]# psql -U zabbix
psql (8.4.20)
Type "help" for help.

zabbix=# \du
            List of roles
 Role name | Attributes  | Member of
-----------+-------------+-----------
 demo      | Create DB   | {}
 postgres  | Superuser   | {}
           : Create role
           : Create DB
 zabbix    | Superuser   | {}
           : Create role
           : Create DB

  zabbix-# \q
 修改zabbix的密码
[root@db data]# psql -U postgres
psql (8.4.20)
Type "help" for help.

postgres=# alter user zabbix with password 'zabbix';
ALTER ROLE

以上这个数据库就可以远程访问了

 2.设置供给软件

yum install -y fping(若安装不成功) 或 wget http://pkgs.repoforge.org/fping/fping-3.1-1.el6.rf.i686.rpm

yum install -y gcc make cmake mysql-server mysql-devel php php-gd php-devel php-mysql php-bcmath php-ctytpe php-xml php-xmlreader php-xlmwriter php-session php-net-socket php-mbstring php-gettext httpd net-snmp curl curl-devel net-snmp net-snmp-devel perl-DBI libxml libxml2-devel

 

1) zabbix是什么

zabbix是1款基于web页面包车型客车、开源的、公司级的,帮忙布满式铺排的监督软件。

四、zabbix_proxy mysql导入数据

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';
set names utf8;
use zabbix;
source /usr/local/src/zabbix-3.0.9/database/mysql/schema.sql;

安装zabbix-web

yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
安装zabbix-web-pgsql版
yum install zabbix-web-pgsql
安装php
yum install httpd php php-gd php-bcmath php-pgsql php-xml php-mbstring
为zabbix-web添加一个虚拟主机
[root@web ~]# cat /etc/httpd/conf.d/zabbix.conf
<VirtualHost *:80>
    DocumentRoot "/usr/share/zabbix"
    ServerName 192.168.100.12
    <Directory "/usr/share/zabbix">
     Options Indexes FollowSymLinks Includes ExecCGI
     AllowOverride All
     Order allow,deny
     Allow from all
    </Directory>
</VirtualHost>
重启服务,果然不能访问,报错如下


[Sat Jan 07 05:00:39 2017] [error] [client 192.168.100.1] PHP Parse error:  syntax error, unexpected '[' in /usr/share/zabbix/index.php on line 29

官网上zabbix-web3.0要求php5.4以上,centos默认php5.3
当然不想编译,还是用源来安装
删除旧的php
yum remove php*
安装一个源
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
安装php

yum install php56w php56w-bcmath php56w-xml php56w-mbstring php56w-pgsql php56w-gd

修改配置文件 /etc/php.ini
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

重启服务后就可以访问了

 3. 增加用户

groupadd zabbix
useradd -g zabbix zabbix -s /sbin/nologin

2)2.zabbix的作用

  • 监督检查windows和Linux主机上的软硬件状态。

  • 监理各网络设施,如路由器、沟通机、防火墙、f伍、打字与印刷机等。

  • 支撑邮件短信微信等楼台发送告警公告。

  • 因而web页面及图片体现监察和控制数据。

伍、把zabbix目录属主产生zabbix

chown zabbix:zabbix /usr/local/zabbix/ -R

安装zabbix-server

安装源
yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
安装zabbix-server-pgsql
yum install zabbix-server-pgsql
安装postgresql连接工具
yum install postgresql
导入库结构
zcat /usr/share/doc/zabbix-server-pgsql-3.0.7/create.sql.gz | psql -h 192.168.100.11 -U zabbix zabbix
修改配置文件 
vi /etc/zabbix/zabbix_server.conf
DBHost=zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
重启服务
service zabbix-server restart
这时候就可以回到zabbix-web的页面完成配置

用浏览器访问zabbix-web的地点

终极的配置是那般的,供给专注的是Database schema 的值时public

澳门金沙国际 1

 4. 创建数据库

service mysqld start
mysql -uroot -p
>create database zabbix_proxy default charset utf8;
> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
>flush privileges;
>exit

3)zabbix的特性

  • 由zabbix
    server和agent程序协同专业,还补助布满式监控,那时急需设置zabbix
    proxy程序

  • zabbix分为积极监督(agent active)和被动监督:

Zabbix主动情势:Agent主动请求server获取积极向上的监督检查项列表,并主动将监督项内须求检查实验的多少交到给server/proxy,zabbix
agent首先向ServerActive配置的IP请求获取active items,获取并提交active
tiems数据值server或然proxy;

Zabbix被动形式:Server向agent请求获取监察和控制项的数额,agent再次回到数据,Server张开2个TCP连接,Server发送请求agent.ping,Agent接收到请求并且响应,Server管理接收到的多寡。

  • 督察手腕(server或proxy通过怎样艺术来搜罗监察和控制到的数额)常用的有:

SNMP(polling,trapping)

IPMI(监察和控制硬件情状)

JMX(监控java应用)

自定义监测(自定义各样督察脚本监测)

  • 灵活的阈值设定:帮助自定义难题阈值,即触发器(trigger),积攒于数据库中。

  • 高级的报告警察方装置:自定义报告警方进级、接受者以及报告警察方的格局,在安排中允许行使宏变量,能够因而中远距离命令来促成自动化动作。

  • 实时图像:课通过嵌入的绘图方式贯彻监察和控制数据绘图,并能够自定义视图等。

  • 模板:援助模板中增添组监察和控制,并同意承袭使用。

  • 网络活动开采及机关切册:自动开掘主机、网卡设备、SNMP等

  • zabbix API:提供程序级其余走访接口,第二方程序能够相当的慢接通

六、zabbix_proxy的配置

Server=172.16.0.3  #zabbix server的ip
Hostname=tj_proxy  #zabbix server网页上配置的名字
LogFile=/usr/local/zabbix/zabbix_proxy.log   #log的位置
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306

安装zabbix-proxy

同样安装源
yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
安装proxy
 yum install zabbix-proxy-sqlite3
 修改配置文件
vi /etc/zabbix/zabbix_proxy.conf
Server=192.168.100.10  #这里指向 zabbix-server
Hostname=server.zabbix
DBName=/var/zabbix/zabbix_proxy
设置一个目录给sqlite,并设置权限
[root@proxy ~]# mkdir /var/zabbix
[root@proxy ~]# chown zabbix.zabbix /var/zabbix
重启服务
service zabbix-proxy restart
查看日志就会发现下面这个问题,因为这个主机没有加到zabbix-server
tail /var/log/zabbix/zabbix_proxy.log
3224:20170107:061458.383 cannot send heartbeat message to server at "192.168.100.10": proxy "server.zabbix" not found
  3223:20170107:061458.472 cannot obtain configuration data from server at "192.168.100.10": proxy "server.zabbix" not found

在web分界面加多proxy

澳门金沙国际 2

澳门金沙国际 3

本条写对就足以了,然后就会开掘那个数据库已经写入数据了

[root@proxy ~]# ll /var/zabbix/zabbix.db
-rw-r--r--. 1 root root 544768 Jan  7 08:37 /var/zabbix/zabbix.db

 五. 导入数据库中的表

cd /root/zabbix-2.2.4/database/mysql
# mysql -uzabbix -pzabbix zabbix < schema.sql (proxy端只需要这一步,不需要数据)

四)zabbix系统的咬合

  • zabbix_server : 服务端守护进程,
    担当管理zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy提供的多寡,并经过web分界面展现这几个多少。

  • zabbix_agentd
    :客户端守护进程,负担搜集客户端上的数码并发送给server或proxy。

  • zabbix_get :
    服务端工具,在服务器上进行,用于手动搜集客户端的监督检查数据,能够用于监察和控制测试只怕排错。

  • 【澳门金沙国际】zabbix源码安装流程及报错化解措施,zabbix简单教程。zabbix_sender:
    客户端工具,用于发送数据给server或许proxy,日常用于耗费时间可比长的自己斟酌。许多反省格外耗费时间间,导致zabbix超时。于是大家在剧本试行完结之后,使用sender主动提交数据;

  • zabbix_proxy :
    类似于server,但它只是叁当中间转播站,当跨地区,跨机房安插zabbix系统时,要求采纳它,以将它搜罗到的数据发送给server。

七、启动zabbix_proxy

/usr/local/zabbix/sbin/zabbix_proxy

安装zabbix-agent

yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum install zabbix-agent
vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.100.13

ServerActive=192.168.100.13

Hostname=jsp.site.cos

这些就不解释了,server指向的是proxy

6. 编写翻译安装(proxy和client)

proxy:
cd /root/zabbix-2.2.4
./configure --enable-agent --enable-proxy --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --prefix=/usr/local/zabbix
make && make install

agent:

cd /root/zabbix-2.2.4
./configure --enable-agent  --prefix=/usr/local/zabbix
make && make install

5)zabbix的监察流程:

Zabbix监察和控制完整流程包含:Agentd安装在被监察和控制的主机上,Agent肩负定时收罗客户端本地各式数据,并发送到Zabbix
Server端,Zabbix Server收到多少,将数据存款和储蓄到数据库中,用户根据Zabbix
WEB能够看看数据在前端彰显图像。

8、 zabbix网页上增加proxy,并测试是还是不是成功

管理-> agent程序代理
看最近出现(时长)有没有超过60s,没有的话,就说明已经添加成功了

配置

 7. 编辑配置文件(zabbix_proxy)

cd /usr/local/zabbix/etc/

vi /usr/local/zabbix/etc/zabbix_proxy.conf
Server=192.168.1.100
Hostname=db-proxy
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ProxyLocalBuffer=24
ProxyOfflineBuffer=24
ConfigFrequency=300
DataSenderFrequency=3
StartPollers=20
StartIPMIPollers=2
StartPollersUnreachable=2
StartTrappers=10
StartPingers=15
StartHTTPPollers=3
StartVMwareCollectors=3
VMwareCacheSize=40M
StartSNMPTrapper=1
CacheSize=100M
StartDBSyncers=6
HistoryCacheSize=100M
HistoryTextCacheSize=200M
Timeout=30
LogSlowQueries=3000
AllowRoot=1

 

二. zabbix安装前妄想zabbix3.2

9、增添第二台zabbix_agentd 172.16.0.1的配置(使用proxy)

PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogFile=/usr/local/zabbix/zabbix_agentd.log
Server=172.16.0.1  #以前讲的这里是配置zabbix server的ip,如果使用proxy的话,就得配置proxy的
ServerActive=172.16.0.1 #以前讲的这里是配置zabbix server的ip,如果使用proxy的话,就得配置proxy的
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
Hostname=host_172.16.0.1

添加主机,注意:最后一个由agent代理程序监测选择自己添加的proxy
添加system.uname测试。
如果测试过程中有问题,可以尝试重启proxy。测试过程的问题。

自行开掘

澳门金沙国际 4

布局- 动作-自动注册-创造动作

那里开创两条 一条机关进入host 一条依据hostname插足群组并链接模版

8. 配置proxy的agent文件

vi /usr/local/zabbix/etc/zabbix_agentd.conf修改如下内容:
Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=db-proxy
RefreshActiveChecks=60
MaxLinesPerSecond=800
Timeout=30
AllowRoot=1
UnsafeUserParameters=1
UserParameter=system.agent.checkSecure,/usr/local/ServerScript/check_secure.sh

一)zabbix安装不一样硬件配置情状样例:

澳门金沙国际 5

10、应用二个linux模板看下

如果测试过程中有问题,可以尝试重启proxy

督察项和触发器

以此能够在模板和单个主机增添监察和控制项和触发器。

 9. 添加到services

# vi /etc/services
在文件最后面添加如下的内容:
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

2)zabbix安装要求的数据库版本:

澳门金沙国际 6

拾壹、为何proxy要重启,因为若是没重启的话,Proxy是1钟头去赢得须求的监察项目。所以须要zabbix proxy增多配置

ConfigFrequency=60

 

自定义监察和控制项

直白写入agent的配置文件

无参数

UserParameter=ping,echo 1

有参数

UserParameter=ping[*],echo $1

调用三个剧本

[root@http zabbix_agentd.d]# cat
/etc/zabbix/shell/ping.sh
echo $1

UserParameter=ping[*],/etc/zabbix/shell/ping.sh $1

澳门金沙国际 ,自定义监察和控制项后急需重启服务才生效,能够用zabbix-get测试是或不是成功

zabbix_get -s 192.168.100.15 -p 10050 -k "ping[5]"

本来自定义的监察和控制项也是足以增加的 并且可以创建与之相应的触发器

 10. 运营守护进度

vi /etc/init.d/zabbix_proxy
vi /etc/init.d/zabbix_agentd
添加后面的脚本
chmod a+x /etc/init.d/zabbix_proxy
chmod a+x /etc/init.d/zabbix_agentd
service zabbix_proxy start
service zabbix_agentd start

三)zabix安装必要的前端软件版本:

澳门金沙国际 7

监督检查项里的觉察规则

zabbix私下认可的模板会自动发现磁盘和网卡,当然也得以团结写规则来开采摘运输转的劳务和监听的端口

zabbix的模版自带自动开掘硬盘的条条框框,先看看它是怎么工作的

vfs.fs.discovery 是zabbix自带的意识硬盘的key,看看它的内容

[root@web ~]# zabbix_get -s 192.168.100.15 -k vfs.fs.discovery
zabbix_get [3655]: Check access restrictions in Zabbix agent configuration

又是报错,看看日志

[root@http zabbix_agentd.d]# tail /var/log/zabbix/zabbix_agentd.log
  5829:20170108:022236.084 agent #5 started [active checks #1]
  5826:20170108:022236.085 agent #2 started [listener #1]
  5825:20170108:022236.086 agent #1 started [collector]
  5828:20170108:022406.557 failed to accept an incoming connection: connection from "192.168.100.12" rejected, allowed hosts: "192.168.100.13"
  5827:20170108:022538.861 failed to accept an incoming connection: connection from "192.168.100.12" rejected, allowed hosts: "192.168.100.13"

它那意思是它不容了您的哀求,并且它只接受1九二.16八.100.壹叁的央求,那么些是proxy的地址,上proxy实施同1的命令

[root@proxy ~]# zabbix_get -s 192.168.100.15 -k vfs.fs.discovery
{"data":[{"{#FSNAME}":"/","{#FSTYPE}":"rootfs"},{"{#FSNAME}":"/proc","{#FSTYPE}":"proc"},{"{#FSNAME}":"/sys","{#FSTYPE}":"sysfs"},{"{#FSNAME}":"/dev","{#FSTYPE}":"devtmpfs"},{"{#FSNAME}":"/dev/pts","{#FSTYPE}":"devpts"},{"{#FSNAME}":"/dev/shm","{#FSTYPE}":"tmpfs"},{"{#FSNAME}":"/","{#FSTYPE}":"ext4"},{"{#FSNAME}":"/selinux","{#FSTYPE}":"selinuxfs"},{"{#FSNAME}":"/dev","{#FSTYPE}":"devtmpfs"},{"{#FSNAME}":"/proc/bus/usb","{#FSTYPE}":"usbfs"},{"{#FSNAME}":"/boot","{#FSTYPE}":"ext4"},{"{#FSNAME}":"/proc/sys/fs/binfmt_misc","{#FSTYPE}":"binfmt_misc"},{"{#FSNAME}":"/vagrant","{#FSTYPE}":"vboxsf"}]}

有结果了,目测格式是json,{#FSNAME}那东西是zabbix里的宏

于是乎来写个意识端口的台本吧,其实是网络抄的

[root@http shell]# cat ports.py
#!/usr/bin/python
#coding=utf-8
import commands
##########返回命令执行结果
def getComStr(comand):
    try:
        stat, proStr = commands.getstatusoutput(comand)
    except:
        print "command %s execute failed, exit" % comand
    #将字符串转化成列表
    #proList = proStr.split("\n")
    return proStr
##########获取系统服务名称和监听端口
def filterList():
    tmpStr = getComStr("netstat -tpln")
    tmpList = tmpStr.split("\n")
    del tmpList[0:2]
    newList = []
    for i in tmpList:
        val = i.split()
        del val[0:3]
        del val[1:3]
        #提取端口号
        valTmp = val[0].split(":")
        val[0] = valTmp[1]
        #提取服务名称
        valTmp = val[1].split("/")
        val[1] = valTmp[-1]
        if val[1] != '-' and val not in newList:
            newList.append(val)
    return newList
def main():
    netInfo = filterList()
    #格式化成适合zabbix lld的json数据
    json_data = "{\n" + "\t" + '"data":[' + "\n"
    #print netInfo
    for net in netInfo:
        if net != netInfo[-1]:
            json_data = json_data + "\t\t" + "{" + "\n" + "\t\t\t" + '"{#PPORT}":"' + str(net[0]) + "\",\n" + "\t\t\t" + '"{#PNAME}":"' + str(net[1]) + "\"},\n"
        else:
            json_data = json_data + "\t\t" + "{" + "\n" + "\t\t\t" + '"{#PPORT}":"' + str(net[0]) + "\",\n" + "\t\t\t" + '"{#PNAME}":"' + str(net[1]) + "\"}]}"
    print json_data
if __name__ == "__main__":
    main()

运作一下

[root@http zabbix_agentd.d]# python /etc/zabbix/shell/ports.py
{
    "data":[
        {
            "{#PPORT}":"57278",
            "{#PNAME}":"rpc.statd"},
        {
            "{#PPORT}":"10050",
            "{#PNAME}":"zabbix_agentd"},
        {
            "{#PPORT}":"111",
            "{#PNAME}":"rpcbind"},
        {
            "{#PPORT}":"22",
            "{#PNAME}":"sshd"},
        {
            "{#PPORT}":"25",
            "{#PNAME}":"master"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"rpc.statd"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"zabbix_agentd"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"rpcbind"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"sshd"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"master"}]}

接下来把这些加到agent的布局文件里

UserParameter=ports.discovery,python /etc/zabbix/shell/ports.py

测试一下

[root@proxy ~]# zabbix_get -s 192.168.100.15 -k ports.discovery
Traceback (most recent call last):
  File "/etc/zabbix/shell/ports.py", line 44, in <module>
    main()
  File "/etc/zabbix/shell/ports.py", line 33, in main
    netInfo = filterList()
  File "/etc/zabbix/shell/ports.py", line 25, in filterList
    val[0] = valTmp[1]
IndexError: list index out of range

又是谬误,list凌驾范围,也就list没内容,也就也等于从未权限施行netstat
-tpln

下一场把agent的配置文件改下sudo施行

UserParameter=ports.discovery,sudo python /etc/zabbix/shell/ports.py

并且zabbix配置sudo 无密码

/etc/sudoers 最后加一行
zabbix   ALL=(ALL) NOPASSWD: NOPASSWD: /usr/bin/python
这里指定zabbix执行python的时候可以无密码

再试下

[root@proxy ~]# zabbix_get -s 192.168.100.15 -k ports.discovery
{
    "data":[
        {
            "{#PPORT}":"57278",
            "{#PNAME}":"rpc.statd"},
        {
            "{#PPORT}":"10050",
            "{#PNAME}":"zabbix_agentd"},
        {
            "{#PPORT}":"111",
            "{#PNAME}":"rpcbind"},
        {
            "{#PPORT}":"22",
            "{#PNAME}":"sshd"},
        {
            "{#PPORT}":"25",
            "{#PNAME}":"master"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"rpc.statd"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"zabbix_agentd"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"rpcbind"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"sshd"},
        {
            "{#PPORT}":"",
            "{#PNAME}":"master"}]}

明日已经成功3/陆了,前边都以在web里设置了

始建贰个模板,加多四个发觉规则

澳门金沙国际 8

过滤规则,{#PPORT} 符合后边的正则才会被发掘,也正是一到3个人的数字

PS:上边包车型客车正则写错了 应该是^[0-9]{1,4}$

澳门金沙国际 9

在意识规则里增添监察和控制项原型

澳门金沙国际 10

拉长触发器原型

澳门金沙国际 11

把模版链接到主机结果大致是如此

澳门金沙国际 12

为啥有10050 正则好像依旧不对,不过监控项活动发掘基本是打响了。

1壹. 加多开机运营

chkconfig zabbix_proxy on
chkconfig zabbix_agentd on

四)zabbix安装必要的php扩大:

澳门金沙国际 13

上边是本身源码安装php的流水生产线及编写翻译参数:

# wget http://cn2.php.net/get/php-5.6.31.tar.gz/from/this/mirror
# tar -zxf mirror 
# cd php-5.6.31/ 
# ./configure --prefix=/usr/local/php5.6  --with-config-file-path=/usr/local/php5.6/etc  \
    --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 \
    --with-gd --with-jpeg-dir=/usr/local/ --with-png-dir=/usr/local/ \
    --with-freetype-dir=/usr/local/  --enable-gd-native-ttf \
    --with-iconv-dir=/usr/local/ --enable-mbstring --enable-calendar \
    --with-gettext --with-libxml-dir=/usr/local/ --with-zlib \
    --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd \
    --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath \ 
    --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs
  1. 报错:checking
    for BZip2 in default path… not found configure: error: Please
    reinstall the BZip2 distribution

    解决:# yum -y install bzip-devel

  2. 报错: configure:
    error: Cannot find libmysqlclient_r under /usr/local/mysql/. Note
    that the MySQL client library is not bundled anymore!

其实这跟PHP未有关系,那是因为在编写翻译APACHE的时候,使用–with-mpm模块
所以就不能够不在编写翻译MYSQL的时候增加–enable-thread-safe-client.参数就行
上边是一对相比较便捷的不二等秘书技:

网上主流的办法:1. # cd /usr/local/mysql/lib/mysql/ 
                 # ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so  
                 #可是我并在/lib下并没有mysql这个库。所有此种方法没有成功#最后用下面这种办法解决:
                 2.# ln -s /usr/local/mysql/lib /usr/local/mysql/lib64

整合PHP和Apache:

# cp php.ini-development /usr/local/php5.6/etc/php.ini
# 在apachede的主配置文件中添加下面两条指令:
AddType application/x-httpd-php .php     //设置PHP文件类型
LoadModule php5_module  modules/libphp5.so  //加载PHP模块

#指明index.php文件:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

测试PHP是不是加载成功:(通过浏览器访问IP)

#echo "<?php phpinfo(); ?>" /usr/local/apache2/htdocs/index.php

警报通告

报告警察方布告类似活动发掘是在布局-动作-时间源选触发器,创立规则,那里也足以运作本人先行写好的台本

1②. 同意10050和1005一通过防火墙

iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
或者关闭防火墙
service iptables stop
setenforce 0

三.安装zabbix

全总工程师艺流程

安装以后,建立群组,建立监察和控制模版,写好报告警察方文告和自动开掘,安装好agent,注意指向的ip是proxy仍然server,hostname符合发掘规则,就自动增多了

1三. 伊始服务

service zabbix_proxy start
service zabbix_agentd start

1)安装遭遇:

centos7 httpd2.4.27 php5.6.31 mysql5.5.20

3.3.2 Agent端配置

2)安装zabbix_server:

下载安装zabbix:

# wget  http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
# groupadd zabbix# useradd  -g zabbix zabbix
# tar zxf zabbix-3.2.6.tar.gz
# cd   zabbix-3.2.6
#./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl# make&&make install# ln -s /usr/local/zabbix/sbin/zabbix_*  /usr/local/sbin/

创办zabbix数据库并授权:

# /etc/init.d/mysqld restart
# mysql -uroot -p
mysql> CREATE DATABASE zabbix charset=utf8;
mysql> GRANT ALL ON zabbix.* to zabbix@localhost IDENTIFIED BY 'jiajie';mysql> FLUSH PRIVILEGES;
mysql> EXIT#cd zabbix-3.2.6

将Zabbix基础SQL文件导入mysql数据至Zabbix数据库,注意server端应该导入上面多个数据库文件

# cd zabbix-3.2.6
# mysql -uzabbix -pjiajie zabbix<database/mysql/schema.sql 
# mysql -uzabbix -pjiajie zabbix<database/mysql/images.sql 
# mysql -uzabbix -pjiajie zabbix<database/mysql/data.sql

备份zabbix_server配置文件,并开采配置文件修改为地点安装的数据库密码DBPassword=jiajie

# cd /usr/local/zabbix/etc/
# cp  zabbix_server.conf{,.bak}# vim zabbix_server.conf
 DBPassword=jiajie  //数据库授权的密码

并且复制zabbix_server运转脚本至/etc/init.d/下

# cd  ../zabbix-3.2.6
# cp  misc/init.d/tru64/zabbix_server  /etc/init.d/zabbix_server
# chmod  o+x  /etc/init.d/zabbix_server

接下去配置web端,相提并论启zabbix以及mysql服务
并查占卜关端口是不是起来。zabbix_server的端口是1005一,agent的端口是10050

# cp  -a zabbix-3.2.6/frontends/php/* /usr/local/apache2/htdocs/
# /etc/init.d/mysqld restart
# /etc/init.d/zabbix_server restart

然后修改PHP的安顿文件,使其帮衬zabbix。那个方面就有证实。之后重启httpd服务就能够。

# vim /usr/local/php5.6/etc/php.ini 
date.timezone = PRC
post_max_size =16M
max_execution_time=300
max_input_time=300
always_populate_raw_post_data = -1
# /etc/init.d/httpd restart

开班设置zabbix_web页面,浏览器访问httpd服务的IP地址就可以。依照提醒安装就能够。

澳门金沙国际 14

谬误:修改了php.ini参数依旧报错,分明是那多少个参数未有收效。那时候查看php.ini的不贰秘籍是不是科学。

假定php.ini的门径是未可厚非。查看了php.ini的门路是毋庸置疑的,可是依旧未有立见成效。

这时你能够在apache的布局文件中指明php.ini的路子。加上PHPIniDir
“/usr/local/php五.6/etc/” 那条指令就能够。

重启apache,获取到路线。完美消除。

澳门金沙国际 15[

](https://s3.51cto.com/wyfs02/M00/9F/5D/wKioL1mbww2xfZdjAABZc6EMTI8623.png)

布署数据库连接,输入数据库名、用户、密码,单击Test connection,展现OK,单击下一步就可以。

澳门金沙国际 16

填写Zabbix Title显示,可以为空,能够输入自定义的名称:

澳门金沙国际 17

澳门金沙国际 18单击下一步,出现需修成立zabbix.conf.php文件,实践如下命令,只怕单击“Download the configuration
file”下载zabbix.conf.php文件,将该公文上传到/usr/local/apache2/htdocs/conf,并安装可写权限,刷新WEB页面,最终单击Finish即可:

澳门金沙国际 19

登入Zabbix WEB分界面,私下认可用户名和密码为:admin/zabbix

澳门金沙国际 20

zabbix安装落成后,可是来得服务未有起来一直展现zabbix server is not running
,这时候查看端口和进度,**
并未有别的呈现。**

排错首先查看日志和端口:

# ss -tnl|grep 10051
# ps -ef|grep zabbix

# tail -f  /tmp/zabbix_server.log
 54587:20170821:151740.795 [Z3001] connection todatabase 'zabbix' failed: [2002]
 Can't connect to local MySQL server throughsocket '/var/lib/mysql/mysql.sock' (13)
54587:20170821:151740.795 database is down:reconnecting in 10 seconds
解决办法:一看就是找不到mysql.sock的路径,找到mysql.sock的路径并打开zabbix_server的配置文
件指明DBSocket的路径。重启服务即可
# find / -name mysql.sock
/tmp/mysql.sock
# vim/usr/local/zabbix/etc/zabbix_server.conf 
DBSocket=/tmp/mysql.sock

**3)安装zabbix_agent端:安装客户端和服务端的几近,那里就一直付出脚本吧:
**

#!/bin/bash
#auto install zabbix agent
#by jiajie 20170822#############
ZABBIX_SOFT="zabbix-3.2.6"
INSTALL_DIR="/usr/local/zabbix"
URL=http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
IP=`ifconfig ens33|sed -n '2p'|awk '{print $2}'`
read -p "Please input zabbix_server IP:" SERVER_IP
###jump IP is rightful
if [[ $SERVER_IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];then
          continue
     else
            echo -e  "\033[31mIP format error!\033[0m"
        exit 0
fi

AGENT_INSTALL(){
if [ -d $INSTALL_DIR ];then
    echo "zabbix_agent is already install..."
        exit 1
    else
        if [ ! -d /software ];then
        mkdir /software    
        fi
fi
cd /software    
yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI 
groupadd zabbix ;useradd -g zabbix zabbix
wget $URL tar -xf download 
cd  $ZABBIX_SOFT
./configure  --prefix=/usr/local/zabbix  --enable-agent
if [ $? -eq 0 ];then
        make install
    else 
    echo "./configure is error,please check..."
    exit 2
fi
ln -s $INSTALL_DIR/sbin/zabbix_* /usr/local/sbin/
cp  misc/init.d/tru64/zabbix_agentd  /etc/init.d/zabbix_agentd &&
chmod o+x /etc/init.d/zabbix_agentd
#config zabbix agentdcat >$INSTALL_DIR/etc/zabbix_agentd.conf<<EOF
LogFile=/tmp/zabbix_agentd.log
Server=$SERVER_IP
ServerActive=$SERVER_IP
Hostname = $IP 
EOF
#start zabbix agentd
iptables -F
setenforce 0
/etc/init.d/zabbix_agentd restart
}
AGENT_INSTALL

1.更改客户(agent)端配置文件

vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agented_om.pid
LogFile=/var/log/zabbix/zabbix_agented_om.log
LogFileSize=0
Server=10.19.1.18
ListenPort=10060
ServerActive=10.19.1.18
Hostname=db-proxy
Include=/etc/zabbix_agentd_om/etc/zabbix_agentd.conf.d/

 贰.重启客户端

service zabbix_agentd restart

3.脚本zabbix_proxy

 1 #!/bin/sh
 2 # chkconfig: 345 95 95
 3 # desctription: Zabbix Proxy
 4 # Zabbix
 5 # Copyright (C) 2001-2013 Zabbix SIA
 6 #
 7 # This program is free software; you can redistribute it and/or modify
 8 # it under the terms of the GNU General Public License as published by
 9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  
21  
22 # Start/Stop the Zabbix agent daemon.
23 # Place a startup script in /sbin/init.d, and link to it from /sbin/rc[023].d
24  
25  
26 SERVICE="Zabbix proxy"
27 DAEMON=/usr/local/zabbix/sbin/zabbix_proxy
28 PIDFILE=/tmp/zabbix_agentd.pid
29 BASEDIR=/usr/local/zabbix/
30 ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_proxy
31 case $1 in
32 'start')
33 if [ -x ${DAEMON} ]
34 then
35 $DAEMON
36 # Error checking here would be good...
37 echo "${SERVICE} started."
38 else
39 echo "Can't find file ${DAEMON}."
40 echo "${SERVICE} NOT started."
41 fi
42 ;;
43 'stop')
44 if [ -s ${PIDFILE} ]
45 then
46 if kill `cat ${PIDFILE}` >/dev/null 2>&1
47 then
48 echo "${SERVICE} terminated."
49 rm -f ${PIDFILE}
50 fi
51 fi
52 ;;
53 'restart')
54 $0 stop
55 sleep 10
56 $0 start
57 ;;
58 *)
59 echo "Usage: $0 start|stop|restart"
60 ;;
61 esac
62  
63  

 4.脚本zabbix_agentd

 1 #!/bin/sh
 2 #chkconfig: 345 95 95
 3 #description:Zabbix agent
 4 # Zabbix
 5 # Copyright (C) 2001-2013 Zabbix SIA
 6 #
 7 # This program is free software; you can redistribute it and/or modify
 8 # it under the terms of the GNU General Public License as published by
 9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  
21  
22 # Start/Stop the Zabbix agent daemon.
23 # Place a startup script in /sbin/init.d, and link to it from /sbin/rc[023].d
24  
25  
26 SERVICE="Zabbix agent"
27 DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
28 PIDFILE=/tmp/zabbix_agentd.pid
29 BASEDIR=/usr/local/zabbix
30 ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd
31  
32  
33 case $1 in
34 'start')
35 if [ -x ${DAEMON} ]
36 then
37 $DAEMON
38 # Error checking here would be good...
39 echo "${SERVICE} started."
40 else
41 echo "Can't find file ${DAEMON}."
42 echo "${SERVICE} NOT started."
43 fi
44 ;;
45 'stop')
46 if [ -s ${PIDFILE} ]
47 then
48 if kill `cat ${PIDFILE}` >/dev/null 2>&1
49 then
50 echo "${SERVICE} terminated."
51 rm -f ${PIDFILE}
52 fi
53 fi
54 ;;
55 'restart')
56 $0 stop
57 sleep 10
58 $0 start
59 ;;
60 *)
61 echo "Usage: $0 start|stop|restart"
62 ;;
63 Esac

 

三.三.二 zabbix proxy安装(yum安装格局轻便安装)

1、安装yum源

yum clean all
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

2、安装proxy和agent

yum install zabbix-proxy-3.0.3   zabbix-proxy-mysql-3.0.3  zabbix-agent-3.0.3
yum install  zabbix-agent-3.0.3

 

3、导入表文件

mysql -uzabbix -pzabbix zabbix_proxy < schema.sql 

 

4、数据库授权

use mysql
grant all privileges on *.* to root@"%" identified by "EhqSDFW{OZzS7XX";
update user set password= password('EhqW{OZSFDzS7XX') where user='root';
flush privileges;

create database zabbix_proxy default charset utf8;
grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
flush privileges;

 

5、配置proxy

cat /etc/zabbix/zabbix_proxy.conf

LogFile=/var/log/zabbix/zabbix_proxy.log
PidFile=/var/log/zabbix/zabbix_proxy.pid
Server=172.29.31.112
Hostname=gz-qxg-proxy
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
ProxyLocalBuffer=24
ProxyOfflineBuffer=24
ConfigFrequency=300
DataSenderFrequency=3
StartPollers=100
StartIPMIPollers=2
StartPollersUnreachable=2
StartTrappers=10
StartPingers=15
StartHTTPPollers=3
StartVMwareCollectors=3
VMwareCacheSize=40M
StartSNMPTrapper=0
CacheSize=256M
StartDBSyncers=4
HistoryCacheSize=256M
Timeout=30
LogSlowQueries=10000

6、运转服务

启动proxy

service zabbix-proxy start

 

启动agent

service zabbix-agent  start

 

 

相关文章