trssc 发表于 2019-1-22 12:20:42

Zabbix监控服务部署

Zabbix监控服务部署
  一、Zabbix介绍
  1.监控概述
      简单地理解,就是第一时间发现、定位并记录异常;复杂地理解,就是从外部/内部、业务/基础环境、功能/性能、预算/收入等各个方面对业务数据进行采集、展现和告苦的体系。对于运维人员,通过对各层次数据的展示和告警设置,快速、直观地发现和定位故障。按监控类型划分,可分硬件监控、系统监控、网络监控、应用监控等。
  
硬件监控:可以利用IPMI 监视服务器的物理特征如温度、电压、电扇工作状态、电源供应以及机箱***等。详细过程见http://www.ibm.com/developerworks/cn/linux/l-ipmi/。磁盘监控:MegaCli是一款管理维护硬件RAID软件。可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid上各磁盘状态,等等。http://blog.chinaunix.net/uid-25135004-id-3139293.html
系统监控:主要监控CPU 使用率、内存使用情况、磁盘io速度、传输和读/写比率等。可以利用nmon,帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。
网络监控:Smokeping、基调、博睿等。
  
2.Zabbix简介
  
zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbixserver与可选组件zabbix agent。zabbixserver可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,OpenBSD,OS X等平台上。
zabbix官网地址:http://www.zabbix.com/download.php
手册:https://www.zabbix.com/documentation/3.0/manual/
  3. zabbix的主要特点
多种数据收集方式(SNMP、IPMI、JMX)(SERVER、PROXY、AGENTS)
高级告警配置(自定义告警升级、告警信息支持使用宏macro变量、远程命令实现自动化动作)
实时绘图(自定义创建多监控项视图、网络拓扑、自定义面板screen,并允许在dashboard页面显示)
历史数据存储(数据存储在数据库中,可配置、内置数据清理机制)
多模板使用(模板中可以添加组监控、模板允许继承)
网络自动发现(自动发现网络设备、自动agent注册)
ZabbixAPI接口(提供程序级别的访问接口、第三方程序可很快接入)
4.Zabbix主要功能
  - CPU负荷
  - 内存使用
  - 磁盘使用
  - 网络状况
  - 端口监视
  - 日志监视。
5.Zabbix进程构成
  zabbix_agentd(客户端守护进程,手机客户端数据,如cpu负载、内存、磁盘使用等...)
  zabbix_get(zabbix工具,单独使用,常用于在server或者proxy端执行,用户获取监控数据,通常用于排错)
  zabbix_sender(用于向server端主动发送数据,常用于再执行耗时比较长的check时,导致zabbix超时,使用sender主动提交一次数据)
  zabbix_proxy(代理守护进程,数据中转站,最后还要将获取到的数据提交到server里,一般跨机房、地区的环境需要使用到proxy)
  zabbix_java_gateway(监控java时候使用到代理网关,类似于agent,最后数据还要提交给server)
  zabbix_server(server端守护进程,server可以被动去搜集数据,也可以让客户端主动提交数据)
二、 Zabbix安装
  要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
  1.环境准备
zabbix-server:192.168.80.107
zabbix-client:192.168.80.103、192.168.80.107
# cat /etc/redhat-release
CentOS release 6.6 (Final)
# uname -r
2.6.32-504.el6.x86_64  2.安装依赖
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install httpdphp mysql mysql-server mysql-devel php-pdo php-mysql gcc gcc-c++ glibc libxml2-devel curl curl-devel net-snmp net-snmp-devel libssh2-devel OpenIPMI-devel php-common php-gd perl-DBI php-xml php-mbstring php-bcmath
/etc/init.d/httpd start
/bin/cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
vi /etc/my.cnf            #在中加入如下内容
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
/etc/init.d/mysqld start
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@'localhost' identified by '123456';
flush privileges;
exit
yum install zabbix22-agent -y  
3.安装zabbix
1.编译安装
cd /server/tools/
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.8/zabbix-2.4.8.tar.gz
tar zxvf zabbix-2.4.8.tar.gz
cd zabbix-2.4.8/database/mysql/
mysql -uzabbix -p123456 zabbix{
>   
"jsonrpc": "2.0",
>   
"method": "user.login",
>   
"params": {
>      
"user": "Admin",
>      
"password": "zabbix"
>   },
>   
"id": 1
> }' http://192.168.80.107/api_jsonrpc.php |
python -mjson.tool
{
   "id": 1,
   "jsonrpc": "2.0",
   "result": "58512eef345e5ba2f01b474324819db2"
}  2.获取监控主机(带上session id)
官方文档:https://www.zabbix.com/documentation/2.4/manual/api/reference/host/get
在linux命令行执行如下命令
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
      "output": ["hostid"]
    },
    "auth": "58512eef345e5ba2f01b474324819db2",
    "id": 2
}' http://192.168.80.107/api_jsonrpc.php | python -mjson.tool  显示如下
# curl -s -X POST -H 'Content-Type:application/json' -d '
> {
>   "jsonrpc": "2.0",
>   "method": "host.get",
>   "params": {
>         "output": ["hostid"]
>   },
>   "auth": "58512eef345e5ba2f01b474324819db2",            #必须和获取到的session相同
>   "id": 2
> }' http://192.168.80.107/api_jsonrpc.php | python -mjson.tool   #下边为输出
{
    "id": 2,
    "jsonrpc": "2.0",
    "result": [
      {
            "hostid": "10084"
      }
    ]
}http://s3.运维网.com/wyfs02/M01/8C/98/wKioL1hxrwfR6YxzAACRWZB7JkU434.png
  3.创建主机
官方文档:https://www.zabbix.com/documentation/2.4/manual/api/reference/host/create
  在linux命令行执行如下命令(带上获取的session id)
curl -s -X POST -H 'Content-Type:application/json'
-d '
{
   "jsonrpc": "2.0",
   "method": "host.create",
   "params": {
       "host": "Linux server",
       "interfaces": [
            {
               "type": 1,
               "main": 1,
               "useip": 1,
               "ip": "192.168.80.103",
               "dns": "",
               "port": "10050"
            }
      ],
       "groups": [
            {
               "groupid": "8"
            }
      ],
       "templates": [
            {
               "templateid": "10001"
            }
      ]
    },
   "auth": "58512eef345e5ba2f01b474324819db2",
   "id": 1
}' http://192.168.80.107/api_jsonrpc.php | python
-mjson.tool获取模板的id号
http://s4.运维网.com/wyfs02/M00/8C/9B/wKiom1hxsGexIZq2AADKadZhqSM660.png
另外一种方式
点击模板进去,在网址输入框查看id号,如下图所示
同理可得组等id。
http://s1.运维网.com/wyfs02/M01/8C/98/wKioL1hxsKbTKp97AADUM1fw9Cs401.png
执行命令的输出
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
      "hostids": [
            "10111"             #返回的主机id
      ]
    }
}http://s3.运维网.com/wyfs02/M00/8C/98/wKioL1hxsN-w7KXrAAChng-Edo0186.png



页: [1]
查看完整版本: Zabbix监控服务部署