设为首页 收藏本站
查看: 1139|回复: 0

[经验分享] 监控系统及zabbix基础(一)

[复制链接]

尚未签到

发表于 2019-1-25 08:32:23 | 显示全部楼层 |阅读模式
监控系统及zabbix基础(一)

  ===========================================================================
  概述:
  本章我们将介绍Linux中的监控系统,zabbix,具体内容如下:

  •   监控系统概述及功能介绍;
  •   zabbix系统架构,功能及其相关术语;
  •   zabbix-server的安装、配置和启动;
  •   zabbix-web的安装、配置和启动;

  ===========================================================================
  
监控系统
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可以通过SNMPzabbix 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.安装配置过程

zabbix database

  • mysql>  CREATE DATABASE zabbix CHARSET 'utf8';
  • mysql>  GRANT ALL ON zabbix.* TO 'zbxuser'@'10.1.%.%' IDENTIFIED BY 'zbxpass';
安装服务器端
安装

  • # 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脚本有三个,需要依次导入;

zabbix server配置启动

  演示:
   操作环境:CentOS 7 虚拟机
  ------------------------------------------------------------------------------------------------------

  1.设置zabbix database,创建一个数据库,并授权一个用户有权限连接并使用此数据库
   1)mariadb安装,配置,及启动
# 在CentOS 7 安装mariadb数据库,使用前要首先编辑其配置文件/etc/my.cnf,添加跳过名称解析等
[root@centos7 ~]# vim /etc/my.cnf
skip_name_resolve = ON
innodb_file_per_table = ON
# 启动数据库,可以设置开机自启动
[root@centos7 ~]# systemctl start mariadb.service
[root@centos7 ~]# systemctl enabled mariadb.service   2)创建zabbix database数据库,并授权一个用户可以远程和本地登录此数据库;
[root@centos7 ~]# 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版本的所有程序包
[root@centos7 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
[root@centos7 zabbix]# yum install ./zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm
[root@centos7 ~]# 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脚本文件复制到本地,然后解压缩
[root@centos7 ~]# cp  /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz ./zabbix/
[root@centos7 ~]# gzip -d zabbix/create.sql.gz   # 解压缩
[root@centos7 ~]# cd zabbix/
[root@centos7 zabbix]# ls
create.sql  # 解压后的文件# 导入数据库脚本
[root@centos7 ~]# mysql -uzbxuser -h127.0.0.1 -pzbxpass zabbix < zabbix/create.sql
# 登录zabbix数据库,查看生成的表,确定没有问题
[root@centos7 ~]# 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
[root@centos7 ~]#  cd /etc/zabbix/
[root@centos7 zabbix]# ls
zabbix_server.conf
[root@centos7 zabbix]# cp zabbix_server.conf{,.bak}  # 备份配置文件[root@centos7 zabbix]# grep "^####" zabbix_server.conf # 获取配置段信息
############ GENERAL PARAMETERS #################
############ ADVANCED PARAMETERS ################
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######
[root@centos7 zabbix]# vim zabbix_server.conf
DBHost=10.1.252.153
DBName=zabbix  
DBUser=zbxuser  
DBPassword=zbxpass
# 其余的配置,如端口,socket这里使用默认的就可以    2)最后启动服务,但是这里要注意一个问题,就是zabbix要求trousers的程序包版本必须要在0.3.12才可以启动,如果小于的话很可能会启动不了;
[root@centos7 zabbix]# rpm -q trousers
trousers-0.3.13-1.el7.x86_64
# 启动服务,查看端口10051
[root@centos7 zabbix]# systemctl start zabbix-server.service
[root@centos7 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服务的启动要依赖于数据库mysql,所以,一定要确保mysql已经启动,再启动zabbix-server。
   如上,就是整个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环境,安装相应的程序包解决依赖关系
[root@centos7 ~]# yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml  --------------------------------------------------------------------------------------------------------------------------------------
  2.安装web GUI
[root@centos7 zabbix]# pwd
/root/zabbix
[root@centos7 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
[root@centos7 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中配置
[root@centos7 conf.d]# pwd
/etc/httpd/conf.d
[root@centos7 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右上角小人,进行修改




9)中文乱码问题:
zabbix对中文支持不是太好,会出现乱码问题,所以从Windows中找到字体包(运行--->fonts)


复制字体到 /usr/share/zabbix/fonts,并给予其执行权限;

修改 /usr/share/zabbix/include/defines.inc.php 如下:

  展示如下:
  
  ============================================================================
  注意:

    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的配置文件;

  

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

  

  

  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667221-1-1.html 上篇帖子: Centos7 Minimal上部署zabbix3.2遇到的两个坑 下篇帖子: CentOS6下编译安装zabbix_agent3.0客户端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表