zabbix轻易教程,zabbix的理论知识

By admin in 美高梅手机版4858 on 2019年4月16日

1、主机自动注册的流程

zabbix agent指定server active主动自己的信息提供给zabbix_server,zabbix_server根据提供的信息自动添加主机,方便。

zabbix自定义监察和控制项

一、创制主机组,能够根据redis、mysql、web等创立对于的主机组

美高梅手机版4858 1

二、创造主机

美高梅手机版4858 2

3、创建Screens

美高梅手机版4858 3

美高梅手机版4858 4

四、自定义监察和控制项

zabbix_agentd.conf配置文件定义路线

美高梅手机版4858 5

cd/etc/zabbix/zabbix_agentd.d

概念四个nginx品质监察和控制配置文件
vim nginx.conf

?

12 # key名称,命令UserParameter=nginx.active,/usr/bin/curl -s http://192.168.137.11:8080/nginx-status |grep "Active"|awk '{print $NF}'

重启
systemctl restart zabbix-agent

别的脚本也足以上传在此目录下,如zabbix_linux_plugin.sh

测试
zabbix_get -s 192.168.137.11 -p 10050 -k ‘nginx.active’

页面创立items

美高梅手机版4858 6

美高梅手机版4858 7

美高梅手机版4858 8

开创趋势图

美高梅手机版4858 9

美高梅手机版4858 10

1.zabbix是什么

zabbix是1款基于web页面包车型大巴、开源的、集团级的,能够分布式安排的监察软件。

[TOC]

二、 linux zabbix agent配置

PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogFile=/usr/local/zabbix/zabbix_agentd.log
Server=192.168.1.106
ServerActive=192.168.1.106  #为zabbix server或者zabbix proxy的ip
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
Hostname=mysql_1_106  #自动注册的主机名
HostMetadataItem=system.uname  #根据uname的相关信息进行注册

哪些贯彻监督各使用

JMX:(使用Zabbix
Java Gateway代理)

三体系型:
无密码验证、用户名密码认证、SSL

1)安装
yum install -y zabbix-java-gateway java-1.8.0

2)配置
vim/etc/zabbix/zabbix_java_gateway.conf

三)运维systemctl
start zabbix-java-gateway.service (查看进程和端口状态)

4)配置zabbix_server,告知zabbix-java-gateway主机地址

vim
/etc/zabbix/zabbix_server.conf

美高梅手机版4858 11

运行5个进程轮询zabbix-java-gateway

美高梅手机版4858 12

6)重启zabbix_server

systemctl
restart zabbix-server

美高梅手机版4858 13

监控tomcat案例

美高梅手机版4858 14

/usr/local/tomcat/bin/startup.sh
启动tomcat

怎么展开tomcat
JMX远程监察和控制

vimcatalina.sh

美高梅手机版4858 15

?

12345 CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=8888-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Djava.rmi.server.hostname=192.168.137.12"

重启tomcat

?

12 /usr/local/tomcat/bin/shutdown.sh/usr/local/tomcat/bin/startup.sh

netstat
-ntlp 检查端口

美高梅手机版4858 16

经过友好Windows主机C:\Program
Files\Java\jdk1.8.0_101\bin的jconsole.exe连接测试

美高梅手机版4858 17

zabbix添加jmx

美高梅手机版4858 18

美高梅手机版4858 19

服务器硬件消息监察和控制IPMI

自定义item,本地试行ipmitool命令获取数据

网络设施SNMP

一)沟通机或防火墙开启SNMP服务

贰)在zabbix上增加监察和控制(设置SNMP
interface)

叁)关联监察和控制模板

美高梅手机版4858 20

2.zabbix的作用

  • 督察windows和Linux主机上的软硬件状态。
  • 监察各互联网设施,如路由器、调换机、防火墙、f5、打字与印刷机等。
  • 发送告警文告。
  • 通过web页面及图片显示监察和控制数据。

安装

证实:系统为centos陆.八安装zabbix3.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
  #然后就有五台机器了   

三、zabbix get测试

zabbix_get -s 192.168.1.106 -k system.uname

**自定义监理脚本**

开创脚本zabbix_linux_plugin.sh

安装权限chmod
77柒 zabbix_linux_plugin.sh

/etc/zabbix/zabbix_zabbix轻易教程,zabbix的理论知识。agentd.d目录下创办linux.conf

?

1 UserParameter=linux_status[*],/etc/zabbix/zabbix_agentd.d/zabbix_linux_plugin.sh "$1" "$2" "$3"

重启systemctl
restart zabbix-agent

测试zabbix_get
-s 192.168.137.11 -k linux_status[美高梅手机版4858,nginx_status,8088,active]

页面创设模板

美高梅手机版4858 21

在新建的沙盘中开创items

美高梅手机版4858 22

美高梅手机版4858 23

在新建的沙盘中开创视图

美高梅手机版4858 24

模板创造达成导出内容nginx_export_templates.xml

3.zabbix的特性

  • 由server和agent程序协同工作,假若是分布式监察和控制还索要proxy程序。

  • 监察和控制措施站在agnet的角度分为主动监督(agent
    active)和低沉监督(agent)。

    • 积极监督
      当监察和控制条目配置为agent active时,即为主动监督,此时agent会主动依据陈设好的年月距离去向server或proxy询问要监督哪些item,然后将item的数码主动提交给server或proxy。
    • 被动监督
      当监控条目配置为agent时,即为被动监督,此时server或proxy会主动向agent请求它要监督的item的数额,然后agent会将数据发送给server或proxy。
  • 协助的监察手腕
    所谓监察和控制花招即server或proxy通过什么办法来搜聚监察和控制到的数额,常用的有:

    • SNMP(polling,trapping)
    • IPMI(监察和控制硬件景况)
    • JMX(监控java应用)
    • 自定义监测(自定义各样督察脚本监测)
  • 报告警方阈值定义

    • 在trigger中定义告警阈值或条件
    • 储存于后台数据库中
    • 能够自定义告警进级机制
    • 调用action完毕自动化动作
  • 监察和控制数据显现
    zabbix通过嵌入的图画软件将监督到的数目实时通过web页面展现出来。

  • 野史数据存款和储蓄

    • 积存于数据库中
    • 支撑三种数据库,mysql,db二,oracle,postgresql,sqlite
    • 积存时间长度可自定义
    • 机动清理超时历史数据
  • 监理主机配置

    • 透过加多监察和控制设施方式足够
    • 能够行使模板进行布局
  • 模板的选择

    • 模板包涵item,trigger,action等一层层单个主机帮忙的因素
    • 模板中可以使用组监察和控制
    • 模板能够三番五次
  • 自行发现功用

    • 互连网设施自动发现
    • agent自动注册
    • 自行发现文件系统、网卡、SNMP OID
  • web界面

    • web前端选取php编写
    • 分界面样式能够灵活自定义
    • 自带操作日志审计
  • zabbix API
    供第1方先后连接

  • 权力系统
    能够对用户进行分组认证及授权。

  • agent端
    支持Linux和Windows系统。

  • 守护进度
    听他们讲C语言开荒。

安装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

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

4、zabbix server网页添加自动注册

配置-> 动作 -> 事件源选择自动注册 -> 创建动作
名字:linux mysql group自动注册
条件:    主机元数据 似 Linux
主机名称 似 mysql
操作:
    添加主机 
    添加到mysql group
    链接linux模板

TCP状态监察和控制

模板TCP_export_templates.xml

美高梅手机版4858 25

导入后,在host主机参预监察和控制模板

美高梅手机版4858 26

新建触发器

美高梅手机版4858 27

美高梅手机版4858 28

四.zabbix系统的组合

  • zabbix_server

    • 服务端守护进度。
    • 承担处理客户端主动送上来以及它主动去取回的多寡。
    • 因而web分界面呈现那些数据。
  • zabbix_agentd

    • 客户端守护进程。
    • 负责征集客户端上的多少并发送给server或proxy。
  • zabbix_get

    • 服务端工具。
    • 在服务器上进行,用于手动搜聚客户端的监察数据,能够用来监察和控制测试可能排错。
  • zabbix_sender

    • 客户端工具。
    • 对此充裕耗费时间间的检查实验项,能够在其检查评定完毕之后,通过它将数据发送给server大概proxy。
    • 急需与trapper合营使用。
  • zabbix_proxy
    类似于server,但它只是四其中间转播站,当跨地区,跨机房布署zabbix系统时,须要动用它,以将它搜罗到的数额发送给server。

  • zabbix_java_gateway

    • 类似于agentd程序。
    • 只用于java应用程序的督察。
    • 只可以积极去获取数据,类似于agent active。
    • 最后将搜集到的数额发送给server或proxy。
  • zabbix_web
    构建zabbix专用的站点,将监督数据以web页面包车型大巴款型表现出来,并对zabbix系统开始展览安排设定。

安装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

重启服务后就可以访问了

五、验证

看下是否注册成功

**自定义报告警察方脚本**

1、存放在zabbix_server端,查看/etc/zabbix/zabbix_server.conf

美高梅手机版4858 29

短信通道可选拔如:Ali超越

贰、在页面增加脚本调用

美高梅手机版4858 30

美高梅手机版4858 31

修改Action

美高梅手机版4858 32

修改User

美高梅手机版4858 33

伍.zabbix 三.二.4的软件条件须要

**zabbix 三.二.四 web须要php的环境如下: **

Pre-requisite Minimum value
PHP version 5.4.0
PHP memory_limit option 128MB
PHP post_max_size option 16MB
PHP upload_max_filesize option 2MB
PHP max_execution_time option 300 seconds (values 0 and -1 are allowed)
PHP max_input_time option 300 seconds (values 0 and -1 are allowed)
PHP session.auto_start option must be disabled
Database support One of: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite
bcmath
mbstring
PHP mbstring.func_overload option must be disabled
PHP always_populate_raw_post_data option must be disabled
sockets
gd 2.0 or higher
libxml 2.6.15
xmlwriter
xmlreader
ctype
session
gettext

以上参数决定了php在编译时索要钦定的参数,以及要求设定的php.ini参数值。

安装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

美高梅手机版4858 34

六、windows zabbix agent配置

LogFile=D:\Program Files\zabbix_agents_3.0.4.win\zabbix_agentd.log
Server=192.168.1.106
ServerActive=192.168.1.106
Hostname=mysql_1_102
HostMetadataItem=system.uname

MySQL监控

行使percona监察和控制插件监察和控制Mysql

参考文书档案

yum仓库

此插件正视php和php-mysql

?

1 yum install -y php php-mysql

坚守参考文书档案实行持续安装

?

1 yum install percona-zabbix-templates -y

完整完结查看:
rpm -ql percona-zabbix-templates

美高梅手机版4858 35

将/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_二.0.玖-sver一.一.六.xml下载,通过页面导入zabbix模块

将配置文件复制到zabbix下

?

1 cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

vim/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf

?

123 <?php$mysql_user = 'zabbix';$mysql_pass = 'zabbix';

测试,调用/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
中的MySQL.Connections

美高梅手机版4858 36

?

1 /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh iz

美高梅手机版4858 37

备考:那么些mysql监察和控制脚本会在/tmp下生成一时半刻文件,若是刚才用root账号试行过剧本,会现出权力问题

美高梅手机版4858 38

缓解方式:更换文件的属主
chown zabbix:zabbix localhost-mysql_cacti_stats.txt

安装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

美高梅手机版4858 39

美高梅手机版4858 40

那么些写对就足以了,然后就会发觉那一个数据库已经写入数据了

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

七、zabbix get测试

zabbix_get -s 192.168.1.102 -k system.uname

WEB监控

以tomcat为例

美高梅手机版4858 41

美高梅手机版4858 42

美高梅手机版4858 43

美高梅手机版4858 44

###############################################################################

适用场景:

1、监察和控制主机多,品质瓶颈

2、多机房,防火墙

安装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

捌、zabbix server网页加多自动注册

配置-> 动作 -> 事件源选择自动注册 -> 创建动作
名字:windows mysql group自动注册
条件:    主机元数据 似 Windows
主机名称 似 mysql
操作 :
    添加主机
    添加到mysql group
    链接windows模板

zabbix监察和控制情势

针对agent来说

  • 被动情势

  • 主动方式

一)当监控主机抢先300台,提议使用主动形式

贰)当队列中有恢宏推迟的item

美高梅手机版4858 45

监察项主动情势更动,如下图

美高梅手机版4858 46

监理主机械修理改主动格局

vim/etc/zabbix/zabbix_agentd.conf

遮掩被动形式的Server

美高梅手机版4858 47

美高梅手机版4858 48

美高梅手机版4858 49

美高梅手机版4858 50

重启服务systemctl
restart zabbix-agent

WEB页面增加1玖二.16捌.137.1二主机的监察项

一)创立主动格局监察和控制模板,将已部分模板如Template
OS Linux,复制1份并将装有item的Type改成Zabbix agent

贰)创造监察和控制主机

美高梅手机版4858 51

美高梅手机版4858 52

可参考

配置

九、验证:

 看下是否注册成功

 

Zabbix Proxy

流程:
zabbix-server –> zabbix proxy –> zabbix agent

美高梅手机版4858 53

合法文书档案

?

1 yum install zabbix-proxy zabbix-proxy-mysql mariadb-server -y

?

1 systemctl start mariadb

zabbix
proxy数据导入

?

12345 mysqlcreate database zabbix_proxy character set utf8;grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';<br>exitcd /usr/share/doc/zabbix-proxy-mysql-3.0.5/zcat schema.sql.gz |mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy

安顿文件修改

?

123456 vim /etc/zabbix/zabbix_proxy.conf Server=192.168.137.11 # zabbix server地址Hostname=zabbix-proxyDBHost=localhostDBUser=zabbix_proxyDBPassword=zabbix_proxy

启动systemctl
start zabbix-proxy

页面创立zabbix-proxy

美高梅手机版4858 54

代办监察和控制的汇报主机设置

vim/etc/zabbix/zabbix_agentd.conf

?

123 ServerActive=192.168.137.12StartAgents=0Hostname=linux-node2

页面设置

美高梅手机版4858 55

美高梅手机版4858 56

重启systemctl
restart zabbix-agent.service

机关发现

美高梅手机版4858 57

配备- 动作-自动注册-创设动作

此处创办两条 一条机关进入host 一条依据hostname插手群组并链接模版

 10、自动注册发送邮件

 

自动化监控

一.电动注册

  1.1Zabbix agent 自动抬高

2.
积极发现

  二.一自动发现Discover

  2.2
zabbix api

Zabbix
agent 自动抬高配置

?

123456 vim /etc/zabbix/zabbix_agentd.conf ServerActive=192.168.137.11 # zabbix serverStartAgents=0Hostname=linux-node2# HostMetadata= # 如果这个设置,以HostMetadata优先,HostMetadataItem不起作用HostMetadataItem=system.uname

重启systemctl
restart zabbix-agent.service

创办机关切册Action

美高梅手机版4858 58

美高梅手机版4858 59

机动注册的系统为Linux

美高梅手机版4858 60

增加主机

美高梅手机版4858 61

增加主机组

美高梅手机版4858 62

挑选四个模板

美高梅手机版4858 63

电动发现方法

法定文书档案

修改配置文件

?

123456 vim /etc/zabbix/zabbix_agentd.conf Server=192.168.137.11#ServerActive=192.168.137.11 #注释StartAgents=3Hostname=linux-node2HostMetadataItem=system.uname

创办机关发现规则

美高梅手机版4858 64

美高梅手机版4858 65

创建Discovery

美高梅手机版4858 66

重启systemctl
restart zabbix-agent.service

监察和控制项和触发器

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

Zabbix API

合法文书档案:

自定义监察和控制项

直接写入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]"

理所当然自定义的监察项也是能够加上的 并且能够创立与之对应的触发器

监理项里的意识规则

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八.拾0.一叁的呼吁,这一个是proxy的地址,上proxy执行同样的下令

[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"}]}

未来已经成功四分之2了,后边都以在web里设置了

创建二个模板,增添1个发现规则

美高梅手机版4858 67

过滤规则,{#PPORT} 符合前面包车型大巴正则才会被察觉,也正是一到4人的数字

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

美高梅手机版4858 68

在发现规则里增多监察和控制项原型

美高梅手机版4858 69

丰硕触发器原型

美高梅手机版4858 70

把模版链接到主机结果大概是那样

美高梅手机版4858 71

为什么有拾050 正则好像还是不对,然而监察和控制项活动发现中央是成功了。

警报布告

报告警察方公告类似活动发现是在配置-动作-时间源选触发器,创制规则,那里也足以运作自身先行写好的剧本

万事流程

设置以往,建立群组,建立监察和控制模版,写好报告警察方公告和自动发现,安装好agent,注意指向的ip是proxy照旧server,hostname符合发现规则,就机关增加了

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有