Linux 监控系统---zabbix

监控系统及zabbix基础(一)

===========================================================================

概述:


===========================================================================

监控系统

 1.监控系统介绍

★监控指标:

  • 硬件:如:cpu使用率,内存空间等
  • 软件:软件程序如:nginx,进程数量等
  • 业务:并发在线数量,事物数量等

★监控系统具备的功能:

  • 采样:sensor(传感器)
  • 存储:

    数据:历史数据、趋势数据;

  • 展示:用户接口展示系统
  • 报警:

★被监控对象:主机、交换机、路由器、UPS、...

 2.监控系统各功能介绍

★采样:

  • 周期性地获取某个关注指标相关的数据;

监控系统采集数据通道:

  • ssh/telnet:远程连接通道
  • agent:

    master/agent架构

    master:NMS(网络管理系统)

  • IPMI:智能平台管理接口
  • SNMP:Simple Network Management Protocol(简单网络管理协议)

    版本:v1, v2c (community, public),v3

  • JMX:Java Management extension(java管理扩展)

    监控JVM: Java Virtual Machine

存储系统:

☉存储数据

  • 历史数据:每次采样的结果,保存时长较短;
  • 趋势数据:聚合数据,保存时长较长周期内的数据;

存储系统:

  • 关系型数据库:MySQL, PGSQL, Oracle, ...
  • rrd:RoundRobin Database 循环数据库
  • NoSQL:redis/mongo,时间序列数据库

报警:

  • 邮件、短信、微信
  • 脚本实现

★展示:

  • WebGUI
  • GUI(图形化界面)
  • APP

★开源监控项目:

  • cacti, nagios;
  • zabbix(所有功能都支持)
  • ganglia

zabbix介绍

 1.版本和特性

★简介

  • 是一个基于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等平台上。

★Version: 

  • LTS:Long Time Support (长期维护的版本)
  • 3.0版本就是长期维护的版本

★特性:

  • 数据采样机制:snmp, agent, ipmi, jmx;
  • 报警:升级,步进
  • 数据存储:mysql/pgsql
  • 展示:php程序

    实时绘图:graph, screen, slide show(幻灯片播放), map

  • 支持监控模板
  • 网络自动发现
  • 分布式监控
  • API:支持二次开发

2.zabbix系统架构、组件及相关术语

Zabbix程序组件

  • Zabbix Server:

    负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行;

  • zabbix_database Storage:

    专用于存储所有配置信息,以及有zabbix收集的数据;MySQL/PGSQL

  • zabbix_web:

    zabbix的GUI接口,通常与server运行在同一台机器上;

  • zabbix_proxy:

    可选组件,常用于分布式监控环境中,代理Server收集部分被监控数据并统一发往Server端;

  • zabbix_agentd

    部署在被监控主机上,负责收集本地数据并发往Server端或者Proxy端;

  • zabbix_get:

    命令行工具,测试向agent端发起数据采集请求;

  • zabbix_sender:

    命令行,测试向server端发送数据;

  • zabbix_java_gateway:

    java网关;

附图1:

 zabbix宏观架构图

附图2

   zabbix具体工作图


Zabbix常用术语(逻辑组件)

  • host(主机):

要监控的网络设备,可由IP或DNS名称指定;

  • host group(主机组):

    主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;

  • item(监控项):

    一个特定监控指标的相关数据,这些数据来自于被监控对象;item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都有"key"进行标识;

  • application(应用):

    一组item的集合;

  • trigger(触发器):

    一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阀值;接受到的数据大于阀值是,触发器状态将从OK转变为Problem,当数据量再次回归到合理范围时,其状态将从Problem转换回OK;

  • event(事件):

    即发生的一个值得关注的事件,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;

  • action(动作):

    指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);

  • media(媒介):

    发送通知的手段和通道,如Email、Jabber或SMS;

  • notification(通知):

    通过选定的媒介向用户发送的有关某事件的信息;

  • remote command(远程命令):

    预定义的命令,可在被监控主机处于某个特定条件下时自动执行;

  • escalation(报警升级):

    发送警报或执行远程命令的自定义方案,如每隔5min发送一次警报,共发送5次等;

  • template(模板):

    用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至单个主机;

  • web scennaro(web场景):

    用于检测web站点可用性的一个或多个http请求;

  • frontend(前端):

    zabbix的web接口

  • 图形(graph)
  • 屏幕(screens)
  • 幻灯(slide show)

附图3

  zabbix逻辑架构:

zabbix Server安装、配置和启动

 1.安装配置过程

1.zabbix database

  • mysql>  CREATE DATABASE zabbix CHARSET ‘utf8‘;
  • mysql>  GRANT ALL ON zabbix.* TO ‘zbxuser‘@‘10.1.%.%‘ IDENTIFIED BY ‘zbxpass‘;

2.安装服务器端

☉安装

  • # yum install zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm

程序环境

  • 配置文件:/etc/zabbix/zabbix_server.conf
  • Unit File:zabbix-server.service

导入数据库脚本,以生成数据库环境:

  • # gzip -d /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz
  • # mysql -uzbxuser -h127.0.0.1 -pzbxpass zabbix < /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql

注意:zabbix 2的sql脚本有三个,需要依次导入;

3.zabbix server配置启动

演示:

 操作环境:CentOS 7 虚拟机

---------------------------------------------------------------------------------------

1.设置zabbix database,创建一个数据库,并授权一个用户有权限连接并使用此数据库

 1)mariadb安装,配置,及启动

# 在CentOS 7 安装mariadb数据库,使用前要首先编辑其配置文件/etc/my.cnf,添加跳过名称解析等
[[email protected] ~]# vim /etc/my.cnf
skip_name_resolve = ON
innodb_file_per_table = ON

# 启动数据库,可以设置开机自启动
[[email protected] ~]# systemctl start mariadb.service
[[email protected] ~]# systemctl enabled mariadb.service

  2)创建zabbix database数据库,并授权一个用户可以远程和本地登录此数据库;

[[email protected] ~]# mysql -p134296
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.44-MariaDB MariaDB Server

Copyright (c) 2000, 2015, 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 charset ‘utf8‘;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON zabbix.* TO ‘zbxuser‘@‘10.1.%.%‘ IDENTIFIED BY ‘zbxpass‘;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON zabbix.* TO ‘zbxuser‘@‘127.0.0.1‘ IDENTIFIED BY ‘zbxpass‘;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mydb               |
| mysql              |
| performance_schema |
| test               |
| ultrax             |
| zabbix             |
+--------------------+
8 rows in set (0.08 sec)

----------------------------------------------------------------------------

2.安装服务器端  

  1)下载zabbix相关的所有程序包

# 下面是我下载的zabbix 3.0.2版本的所有程序包
[[email protected] zabbix]# ls
zabbix-agent-3.0.2-1.el7.x86_64.rpm         zabbix-proxy-sqlite3-3.0.2-1.el7.x86_64.rpm  zabbix-web-japanese-3.0.2-1.el7.noarch.rpm
zabbix-get-3.0.2-1.el7.x86_64.rpm           zabbix-sender-3.0.2-1.el7.x86_64.rpm         zabbix-web-mysql-3.0.2-1.el7.noarch.rpm
zabbix-java-gateway-3.0.2-1.el7.x86_64.rpm  zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm   zabbix-web-pgsql-3.0.2-1.el7.noarch.rpm
zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm   zabbix-server-pgsql-3.0.2-1.el7.x86_64.rpm
zabbix-proxy-pgsql-3.0.2-1.el7.x86_64.rpm   zabbix-web-3.0.2-1.el7.noarch.rpm

  2)安装server端的程序包:zabbix-server-mysql和zabbix-get

[[email protected] zabbix]# yum install ./zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm 

[[email protected] ~]# rpm -ql zabbix-server-mysql  # 查看生成的文件
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf                 # 主配置文件
/usr/lib/systemd/system/zabbix-server.service  # Unit File
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.0.2
/usr/share/doc/zabbix-server-mysql-3.0.2/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.0.2/COPYING
/usr/share/doc/zabbix-server-mysql-3.0.2/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.0.2/NEWS
/usr/share/doc/zabbix-server-mysql-3.0.2/README
/usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz  # sql脚本,要导入数据库中
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

 3)导入数据库脚本,以生成数据库环境

# 把sql脚本文件复制到本地,然后解压缩
[[email protected] ~]# cp  /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz ./zabbix/
[[email protected] ~]# gzip -d zabbix/create.sql.gz   # 解压缩
[[email protected] ~]# cd zabbix/ 
[[email protected] zabbix]# ls
create.sql  # 解压后的文件
# 导入数据库脚本
[[email protected] ~]# mysql -uzbxuser -h127.0.0.1 -pzbxpass zabbix < zabbix/create.sql 

# 登录zabbix数据库,查看生成的表,确定没有问题
[[email protected] ~]# mysql -uzbxuser -h127.0.0.1 -pzbxpass 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.44-MariaDB MariaDB Server

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

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

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)

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      |
| application_prototype      |
| application_template       |
| applications               |
| auditlog                   |
| auditlog_details           |
| autoreg_host               |
| conditions                 |
| config                     |
| dbversion                  |
| dchecks                    |
| dhosts                     |
| drules                     |
| dservices                  |
| escalations                 
                             |
+----------------------------+

--------------------------------------------------------------------------------------

3.zabbix server配置启动

  1)修改配置文件/etc/zabbix/zabbix_server.conf

[[email protected] ~]#  cd /etc/zabbix/
[[email protected] zabbix]# ls
zabbix_server.conf
[[email protected] zabbix]# cp zabbix_server.conf{,.bak}  # 备份配置文件
[[email protected] zabbix]# grep "^####" zabbix_server.conf # 获取配置段信息
############ GENERAL PARAMETERS #################
############ ADVANCED PARAMETERS ################
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######

[[email protected] zabbix]# vim zabbix_server.conf
DBHost=10.1.252.153
DBName=zabbix  
DBUser=zbxuser  
DBPassword=zbxpass
# 其余的配置,如端口,socket这里使用默认的就可以

  2)最后启动服务,但是这里要注意一个问题,就是zabbix要求trousers的程序包版本必须要在0.3.12才可以启动,如果小于的话很可能会启动不了;

[[email protected] zabbix]# rpm -q trousers
trousers-0.3.13-1.el7.x86_64

# 启动服务,查看端口10051
[[email protected] zabbix]# systemctl start zabbix-server.service
[[email protected] zabbix]# ss -tnl
State       Recv-Q Send-Q           Local Address:Port                          Peer Address:Port              
LISTEN      0      50                           *:3306                                     *:*                  
LISTEN      0      128                          *:22                                       *:*                  
LISTEN      0      128                  127.0.0.1:631                                      *:*                  
LISTEN      0      100                  127.0.0.1:25                                       *:*                  
LISTEN      0      128                  127.0.0.1:6015                                     *:*                  
LISTEN      0      25                           *:514                                      *:*                  
LISTEN      0      128                          *:10051                                    *:*

 如上,就是整个zabbix-server的配置启动过程...



zabbix web配置:

 1.安装配置过程

1.解决依赖关系

  • # yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml

2.安装web GUI 

  • # yum install zabbix-web-3.0.2-1.el7.noarch.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm

3.配置php时区参数

  • php.ini
  • /etc/httpd/conf.d/zabbix.conf

    php_value date.timezone Asia/Shanghai

4.启动web服务

  • # systemctl start httpd.service

5.访问web

  • http://HOST/zabbix
  • 安装后生成的配置文件:/etc/zabbix/web/zabbix.conf.php
  • 安装后默认登录的管理员/密码:admin/zabbix

6.菜单:

  • Monitoring
  • Inventory
  • Reports
  • Configuration
  • Administration

演示:

  环境:zabbix web的配置可以在另外一台主机上配置,也可以和zabbix-server配置在同一台主机,这里我先配置在同一台CentOS 7 的主机之上

------------------------------------------------------------------------------------------

1.构建lamp环境,安装相应的程序包解决依赖关系

[[email protected] ~]# yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml

--------------------------------------------------------------------------------------------------------------------------------------

2.安装web GUI 

[[email protected] zabbix]# pwd
/root/zabbix
[[email protected] zabbix]# ls
create.sql                                  zabbix-proxy-pgsql-3.0.2-1.el7.x86_64.rpm    zabbix-web-3.0.2-1.el7.noarch.rpm
zabbix-agent-3.0.2-1.el7.x86_64.rpm         zabbix-proxy-sqlite3-3.0.2-1.el7.x86_64.rpm  zabbix-web-japanese-3.0.2-1.el7.noarch.rpm
zabbix-get-3.0.2-1.el7.x86_64.rpm           zabbix-sender-3.0.2-1.el7.x86_64.rpm         zabbix-web-mysql-3.0.2-1.el7.noarch.rpm
zabbix-java-gateway-3.0.2-1.el7.x86_64.rpm  zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm   zabbix-web-pgsql-3.0.2-1.el7.noarch.rpm
zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm   zabbix-server-pgsql-3.0.2-1.el7.x86_64.rpm

[[email protected] zabbix]# yum install ./zabbix-web-3.0.2-1.el7.noarch.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm

--------------------------------------------------------------------------

3.配置时区,既可以在php.ini中配置,也可以在/etc/httpd/conf.d/zabbix.conf中配置

[[email protected] conf.d]# pwd
/etc/httpd/conf.d
[[email protected] conf.d]# vim zabbix.conf
 php_value date.timezone Asia/Shanghai

------------------------------------------------------------------------------------------------------------------

4.启动web服务,查看80端口

  • ~]# systemctl start httpd.service

------------------------------------------------------------------------------------------------------------------

5.访问web

  1)在浏览器中打开,第一次需要安装zabbix,步骤如下:

  2)点击下一步

  3)填写数据库相关的信息

  4)可选填的信息,可以直接跳过

  5)显示我们的定义的信息,没问题点下一步

  6)提示安装完成,并自动生成了zabbix-web的配置文件,如果以后要修改其配置到相应路径下的配置文件中修改即可

  7)以管理员账户登录(默认管理员为admin,密码为zabbix)

  如下,就为默认的zabbix的控制面板

 8)更改为中文

   进入主页面:下面进行,将语言改为中文。

[root@localhost ~]# vim /usr/share/zabbix/include/locales.inc.php

  找到第55行,将false改为true

点击zabbix右上角小人,进行修改

============================================================================

注意:

1)我们还授权了本地(127.0.0.1)登录,如果要想使用本地登录,就需要修改zabbix-server的配置文件/etc/zabbix/zabbix_server.conf 和安装后生成web的配置文件,/etc/zabbix/web/zabbix.conf.php,把其对应的数据库主机改为127.0.0.1即可。

zabbix-server的配置文件;

zabbix-web的配置文件;

2)如果zabbix-server和zabbix-web在同一台主机,一定要想启动zabbix-server服务,再启动zabbix-web服务,否则zabbix-server是启动不了的

 如上,就是整个zabbix-web端的整个安装配置过程...




Linux 监控系统---zabbix

时间: 2024-10-28 20:40:44

Linux 监控系统---zabbix的相关文章

Linux监控系统之Zabbix

Linux监控系统之Zabbix Zabbix介绍 Zabbix是由 Zabbix 是由 Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态.整合了Catic和Nagios的特性. 使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料.Server 端基于 C语言.Web 管理端 frontend 则是基于 PHP

监控系统Zabbix的简单应用

一.简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题.zabbix由2部分构成,zabbix server与可选组件zabbix agent.        zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,

Linux监控系统之Nagios

Linux监控系统之Nagios Nagios工作原理 Nagios的功能是监控服务和主机,但是其自身并不包括这部分功能,所有的监控.检测功能都是听过各种插件去完成的.在启动Nagios后,它会周期性地去自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回的状态信息都进入队列,Nagios每次都会将从队首读取信息,进行处理后,再将状态结果通过web显示出来. Nagios模式 被动模式:就如同上图所显示的那样,客户端起nrpe进程,服务端通过check_nrpe插件向客户端

监控系统----zabbix

监控系统----zabbix zabbix-server 在搭建zabbix之前,首先我们需要搭建好LAMP环境(当然大神们也可以挑战自我选择用nginx,但是其配置会复杂很多) 1.关闭selinux setenforcce 0 vim /etc/selinux/config 2.安装php(这里选择最方便的方式,各位也可以尝试用高级的php) yum -y install php php-fpm 3.配置php参数 vim  /etc/php.ini date.timezone = Asia

分布式监控系统Zabbix使用percona监控MySQL

系统运维工程师 李超前面已经介绍了分布式监控系统Zabbix-自动发现-添加mysql多实例监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择采用Percona Monitoring Plugins监控MySQL.Percona有比较详细的监控Mysql的模版以及脚本,它提升了在高负载情况下的InnoDB的性能.为运维人员提供一些非常有用的性能诊断工具:另外它有更多的参数和命令来控制服务器行为.废话不多说,下面记录下使用Percona

细述:Linux 监控系统 Linux-dash

Linux-dash 是一个低开销 Linux 服务器监控系统,基于 Web 的监控界面.Linux-dash 的界面提供了一个详细的概述您的服务器的所有重要方面,包括内存和磁盘使用情况,网络,安装软件,用户,运行的流程.所有信息被组织成widget 部件,你可以跳转到一个特定的部分使用的主要工具栏中的按钮.Linux Dash不是最先进的监控工具,但它可能是一个适合用户寻找一个光滑,轻便,易于部署应用程序. 特性 漂亮的操作面板 在线,按需监控 RAM, Load, Uptime, Disk

企业级分布式监控系统Zabbix系列之01(Zabbix-Server安装)

本文以CentOS 6.7 x86_64系统为例,环境为刚做好的新系统. Zabbix-Server端环境监察 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [[email protected] ~]# uname -r 2.6.32-573.8.1.el6.x86_64 [[email protected] ~]# uname -m x86_64 [[email protected] ~]# 

CentOS7 企业级分布式监控系统Zabbix(01)

本次以CentOS 7.2 x64系统为例 系统环境 [[email protected] ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)[[email protected] ~]# uname -r3.10.0-327.el7.x86_64[[email protected] ~]# uname -mx86_64[[email protected] ~]# hostnamecentos72-node1.wangdo

【Zabbix】分布式监控系统Zabbix【一】

一.Zabbix功能及特性简介 Zabbix可以获取cpu,内存,网卡,磁盘,日志等信息 1.Zabbix数据收集方式: a.Agent客户端(Agent客户端支持多平台部署) b.如果是无法安装客户端的设备,例如网络设备,则可以通过SNMP(简单网络管理协议)获取监控数据 c.支持通过IPMI获取硬件的温度,风扇,硬盘,电源等 d.通过Zabbix自带的检测进行监控 2.Zabbix支持自定义监控: 可以通过shell,python,ruby等可执行的脚本收集监控数据 3.Zabbix可以通过