一、zabbix的定义及特点
Zabbix的安装方式有两种:源码编译安装和选择已编译好的程序包安装(如rpm、deb)。使用rpm包安装Zabbix时,Zabbix的 rpm包可由EPEL源或者Zabbix官方网站的Zabbix仓库提供。部分Zabbix依赖的程序包(fping)不是由Base源提供,而由 EPEL源提供,因此安装时需要指定EPEL源。以下以安装zabbix-3.0为例,演示Zabbix的安装过程。
定义:zabbix:是一个基于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等平台上。
特点:
安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
abbix的系统组成:
Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
Database Storage:存储配置信息以及收集到的数据。
Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
Proxy:可选组件,常用于分布式监控环境中。
Agent:部署在被监控主机上,负责收集数据发送给Server。
二.封装虚拟机
1.按照前边企业6.5的方法封装企业7.3的虚拟机
修改网卡类型 修改ip 主机解析 防火墙关掉 关闭防火墙开机自启动 yum源 主机名以及selinux的修改
三、zabbix的安装部署
配置环境:
OS:redhat 7.3 64bit
zabbix版本:3.4
mariadb:5.5
hostname:server1
ip:172.25.45.1
1.安装zabbix监控所需软件
在server1中(rhel7.3的虚拟机)
yum insatll -y zabbix-server-mysql-3.4.6-1.el7.x86_64.rpm ##zabbix服务器
zabbix-web-3.4.6-1.el7.noarch.rpm ##zabbix前端界面
zabbix-web-mysql-3.4.6-1.el7.noarch.rpm ##zabbix数据库
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安装包一定要和系统中的php版本一样
php-mbstring-5.4.16-42.el7.x86_64.rpm
cd /etc/zabbix/
ls ###查看是否生成zabbix_server.conf文件
2.安装mariadb数据库,打开并做初始化
yum install mariadb-server -y
systemctl start mariadb
mysql_secure_installation ##做安全初始化 (enter--->新密码-->确认密码-->y-->y-->y)
3.进入到数据库中使用utf-8编码并对用户授权
mysql -p
create database zabbix character set utf8 collate utf8_bin; ##时用utf编码
grant all privileges on zabbix.* to zabbix@localhost identified by 'westos'; ###进行授权
4.导入zabbix数据库
cd /usr/share/doc/zabbix-server-mysql-3.4.6/ ls
zcat create.sql.gz | mysql -u zabbix -p zabbix ###导入默认的zabbix数据库信息
Enter password:密码为westos,之前授权过的
登陆数据库查看导入的数据库show databases; show tables;
5.编辑zabbix的配置文件,与数据库之间连接套接字并修改数据库密码
cd /etc/zabbix/ ls
vim zabbix_server.conf ###修改数据库密码,数据库套接字
ll /var/lib/mysql/mysql.sock ##查看socket文件是否存在
cd /etc/httpd/conf.d/ ls
vim zabbix.conf
19 php_value date.timezone Asia/Shanghai ##修改时区
6.安装监控的软件zabbix agent:
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。yum install -y zabbix-agent-3.4.6-1.el7.x86_64.rpm
systemctl start zabbix-agent
7.打开服务zabbix监控服务
systemctl start zabbix-server
systemctl start mariadb #打开数据库
systemctl start httpd ##开启apache服务
iptables -L ##查看防火墙是否关闭
getenforce ##查看selinux的状态是否为disabled
cd /var/log/zabbix/ #如果在打开的过程中或者在web界面搭建的时候出现错误,我们可以查看系统日志来排错
cat zabbix_server.log
8.在浏览器中输入172.25.45.1/zabbix进行zabbix的web界面配置
(1)进入zabbix界面
(2)将zabbix与数据库连接,密码是设置的mariadb数据库密码
点击next step--->next step-->设置密码-->next step
(3)登陆zabbix监控平台,密码是导入zabbix数据库时导入的密码
设置名称点击next step
(4)成功安装zabbix监控平台
点击next step--->next step--->finish
安装完成,登录查看 用户为Admin,密码为zabbix
(5)进入zabbix平台后,可以修改监控语言和登陆密码(点击右上方的人头标志,开始修改密码和语言)
点击配置->主机->点击启用zabbix server
三、安装zabbix-agent并添加到zabbix web中监控
在server2中(rhel6.5)为redhat企业6.5版本的虚拟机:
1.安装zabbix-agent
rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm
2.编辑配置文件
cd /etc/zabbix/
vim zabbix_agentd.conf
3.开启zabbix-agent服务
/etc/init.d/zabbix-agent start
netstat -antlp ##查看端口是否开启:10050
4、在服务器端(zabbix web )添加监控
第一种:手动添加
点击配置—>主机—>创建主机
添加主机:
主机名称:必须要和agent中的HostName中一样,否则会出错,
agent代理程序的接口:填写zabbix-agent的ip 然后选择添加
添加模版:
模版–选择–“Template OS Linux” –选择–添加-更新;
添加 完成 agent添加到zabbix监控中,默认是被动模式
再次点击配置里的主机就可以看到添加成功
第二种:自动发现
配置–>自动发现–>local network
填写如下,主要是ip范围和检查项(zabbix),完成后添加启用
配置–>动作–>事件源–>自动发现
/etc/init.d/zabbix-agent restart ##在server2重启服务
然后查看主机出现server2
第三种:自动注册
点击配置–>动作-->事件源–>自动注册–>创建动作
动作里设置主机名字即可
在操作里添加主机、添加到主机群组、与模板关联(添加模板链接)
完成后添加,查看自动注册信息,并点击主机查看
/etc/init.d/zabbix-agent restart
五、zabbix使用api获取token,查看监控,删除监控,添加监控
什么是API:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。简单的说,API就是对外的接口,利用API可以直接到达软件硬件内部来进行操作….
zabbix中API的作用:
Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
API的大致工作流如下:
(1)API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式
(2)准备JSON对象,它描述了你想要做什么(创建主机,获取图像,更新监控项等)。
(3)获取JSON格式响应。
api文件内容:
调用Zabbix api使用的是HTTP的POST请求方式
如下图:请求头部为:’Content-Type: application/json’ -d’
请求的url为:http://172.25.45.1/zabbix/api_jsonrpc.php
成功后返回值,会显示zabbix版本和Token
1、获取Token
vim zabbix.api
chmod +x zabbix.api
./zabbix.api
curl -s -X POST -H 'Content-Type:application/json' -d '
# 利用curl命令模拟json格式的post请求
{
"jsonrpc": "2.0", #这是标准的JSON RPC参数以标示协议版本。所有的请求都会保持不变
"method": "user.login", #利用用户登陆的方式获取API
"params": {
"user": "Admin",
"password": "westos" #zabbix监控系统的用户名和密码
},
"id": 1, # 这个字段用于绑定JSON请求和响应。响应会跟请求有相同的"id"。在一次性发送多个请求时很有用,这些也不需要唯一或者连续
"auth": null
}' http://172.25.45.1/zabbix/api_jsonrpc.php | python -m json.tool
# 采用POST方法向http://example.com/zabbix/api_jsonrpc.php发送此JSON对象. http://example.com/zabbix/是Zabbix前端地址。
# api_jsonrpc.php是调用API的PHP脚本。可在安装可视化前端的目录下找到。
2.查看zabbix主机和被监控主机信息
zabbix server为服务端的hostid
server2为被监控的host
3.删除zabbix监控中的主机
api文件中的10254为之前get信息时,server2的hostid
在网页中查看发现server2已删除
4.在zabbix监控中创建被监控主机
vim zabbix.api
####groupid 在图形界面 配置--->主机群组--->Linux server然后查看上面地址栏
###templateid在图形界面 配置-->模板-->Template OS Linux
调用api结果
在server2上重启服务
在网页查看发现server2成功添加