分布式系统——网络监视系统zabbix3.4.2,以及向zabbix中添加被监视主机(一)

#一、认识zabbix

  • zabbix(音同 za:bix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
  • zabbix由2部分构成,zabbix server与可选组件zabbix agent。
  • zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

##zabbix的功能与特性

  • 安装与配置简单。
  • 可视化web管理界面。
  • 免费开源。
  • 自动发现。
  • 分布式监控。
  • 实时绘图。

##Zabbix的系统组成

  • Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
  • Database Storage:存储配置信息以及收集到的数据。
  • Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
  • Proxy:可选组件,常用于分布式监控环境中。
    Agent:部署在被监控主机上,负责收集数据发送给Server。
    ##zabbix系统包含的进程
    默认情况下zabbix包含5个程序:zabbix_agentdzabbix_getzabbix_proxyzabbix_senderzabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
  • zabbix_agentd 客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
  • zabbix_get zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用- - zabbix_get获取客户端的内容的方式来做故障排查。
  • zabbix_sender zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
  • zabbix_server zabbix服务端守护进程。zabbix_agentd、- zabbix_get、zabbix_sender、zabbix_proxy、- zabbix_java_gateway的数据最终都是提交到server
  • 备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
  • zabbix_proxy zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。。
  • zabbix_java_gateway zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。

各进程对应的zabbix/3.4/rhel/7/x86_64/安装包下载(地址http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/)

#二、部署zabbix
##实验环境

  • server1:rhel 7.3系统——172.25.54.1
  • server2:rhel 6.5系统——172.25.54.11

##搭建zabbix平台
####server1所需安装包
zabbix-server-mysql-3.4.6-1.el7.x86_64.rpm
zabbix-web-3.4.6-1.el7.noarch.rpm
zabbix-web-mysql-3.4.6-1.el7.noarch.rpm
fping-3.10-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm
zabbix-agent-3.4.2-1.el7.x86_64.rpm
####server1

[root@server1 ~]# ls
zabbix-server-mysql-3.4.6-1.el7.x86_64.rpm
zabbix-web-3.4.6-1.el7.noarch.rpm
zabbix-web-mysql-3.4.6-1.el7.noarch.rpm 
fping-3.10-1.el7.x86_64.rpm 
iksemel-1.4-2.el7.centos.x86_64.rpm 
php-bcmath-5.4.16-42.el7.x86_64.rpm 
php-mbstring-5.4.16-42.el7.x86_64.rpm
zabbix-agent-3.4.2-1.el7.x86_64.rpm
[root@server1 ~]# yum install -y *.rpm
//安装数据库mariadb并进行初始化
[root@server1 z~]# yum install -y mariadb-server
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# mysql_secure_installation
Set root password? [Y/n] y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
[root@server1 ~]# systemctl restart mariadb
[root@server1 ~]# mysql -p
Enter password:   //直接回车
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
//创建数据库
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
//进行授权
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> Bye
[root@server1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.6/
[root@server1 zabbix-server-mysql-3.4.6]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@server1 zabbix-server-mysql-3.4.6]# zcat create.sql.gz | mysql -u zabbix -p zabbix
Enter password:      //导入数据,输入授权用户zabbix的密码
[root@server1 zabbix-server-mysql-3.4.6]# mysql -p
Enter password:    
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |

............................

| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
140 rows in set (0.00 sec)

MariaDB [zabbix]> Bye
[root@server1 zabbix-server-mysql-3.4.6]# cd /etc/zabbix/
[root@server1 zabbix]# vim zabbix_server.conf 
125 DBPassword=redhat
132 DBSocket=/var/lib/mysql/mysql.sock
[root@server1 zabbix]# ll /var/lib/mysql/mysql.sock 
srwxrwxrwx 1 mysql mysql 0 Aug 14 15:28 /var/lib/mysql/mysql.sock
[root@server1 zabbix]# vim /etc/httpd/conf.d/zabbix.conf 
 19         php_value date.timezone Asia/Shanghai  //修改时区
[root@server1 zabbix]# systemctl start zabbix-server
[root@server1 zabbix]# systemctl start httpd
[root@server1 zabbix]# systemctl start zabbix-agent

####浏览器操作
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
#####修改密码后退出重新登陆
####server2

[root@serevr2 ~]# ls
zabbix-agent-3.4.6-1.el6.x86_64.rpm
[root@serevr2 ~]# rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm 
[root@serevr2 ~]# vim /etc/zabbix/zabbix_agentd.conf
 97 Server=172.25.54.1
138 ServerActive=172.25.54.1
149 Hostname=server2
[root@serevr2 ~]# /etc/init.d/zabbix-agent start
[root@serevr2 ~]# netstat -antpl

这里写图片描述
##向zabbix添加需要监视的主机的四种方式

  • 方式一:自动发现

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  • 方式二:手动创建

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  • 方式三:自动注册

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
等待些许时间后
这里写图片描述

  • 方式四、API
[root@server1 ~]# vim zabbix-api.sh
[root@server1 ~]# chmod +x zabbix-api.sh
[root@server1 ~]# cat zabbix-api.sh 
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "redhat"
    },
    "id": 1,
    "auth": null
}' http://172.25.54.1/zabbix/api_jsonrpc.php | python -m json.tool
[root@server1 ~]# ./zabbix-api.sh 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "2cb16ddca9d07e50b68cf736eaf3f283"
}
[root@server1 ~]# vim zabbix-api.sh
[root@server1 ~]# cat zabbix-api.sh 
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
	    "hostid",
	    "host"
	],
	"selectInterfaces": [
	    "interfaceid",
	    "ip"
	]
    },
    "auth": "2cb16ddca9d07e50b68cf736eaf3f283",
    "id": 2
}' http://172.25.54.1/zabbix/api_jsonrpc.php | python -m json.tool
[root@server1 ~]# ./zabbix-api.sh 
{
    "id": 2,
    "jsonrpc": "2.0",
    "result": [
        {
            "host": "Zabbix server",
            "hostid": "10084",
            "interfaces": [
                {
                    "interfaceid": "1",
                    "ip": "127.0.0.1"
                }
            ]
        },
        {
            "host": "server2",
            "hostid": "10259",
            "interfaces": [
                {
                    "interfaceid": "7",
                    "ip": "172.25.54.11"
                }
            ]
        }
    ]
}[root@server1 ~]#
//删除主机
[root@server1 ~]# vim zabbix-api.sh
[root@server1 ~]# cat zabbix-api.sh 
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10259"
     ],
    "auth": "2cb16ddca9d07e50b68cf736eaf3f283",
    "id": 2
}' http://172.25.54.1/zabbix/api_jsonrpc.php | python -m json.tool
[root@server1 ~]# ./zabbix-api1.sh 

这里写图片描述

//创建主机
[root@server1 ~]# cat zabbix-api.sh 
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server2",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.54.2",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ],
    },
    "auth": "2cb16ddca9d07e50b68cf736eaf3f283",
    "id": 2, 
}' http://172.25.54.1/zabbix/api_jsonrpc.php | python -m json.tool
[root@server1 ~]# ./zabbix-api1.sh

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简介 提供关于当前Zabbix软件的常用信息。阅读本章节将为您选择使用Zabbix提供一些好的理由。 Zabbix 概念 解释了Zabbix使用的术语,并且提供了Zabbix组件的详细信息。 安装 和 快速入门章节可以帮助您开始使用ZabbixZabbix 应用 是一个替代的方案,通过本章节,可以快速的使用Zabbix应用,并了解Zabbix应用是什么。 配置 是本手册内容最多最重要的章节之一。它包含一些重要的建议,关于如何设置Zabbix来监控您的环境、如何从主机设置到获取必要的数据、如何查看数据、如何配置告警通知和在出现问题时执行远程命令等。 IT 服务 IT服务章节详细的说明了如何利用Zabbix提升监控环境的高稳定性。 Web 监控 可以帮助您学会怎么样去监控Web网站的可用性。 虚拟机监控提供了如何配置VMware虚拟机环境监控的方法。 维护, 正则表达式, 事件确认 and XML 导出/导入 这些章节进一步说明了如何全面的使用Zabbix软件的功能。 发现 功能包含网络设备自动发现的指令,主动监控的指令,文件系统自动发现的指令,网络接口自动发现的指令等。 分布式监控 可以使用Zabbix系统支撑更庞大更复杂的环境。 加密 功能可以实现Zabbix组件之间的通讯加密。 Web 界面 包含Zabbix Web界面使用的特定信息。 API 章节详细的说明了Zabbix API的使用。 详细的技术细节表包含在附录。附录也包含常见问题的详细解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值