部署Zabbix监控

来源:互联网 发布:js得到select选中的值 编辑:程序博客网 时间:2024/05/01 00:20

监控系统基础

1、监控系统工作方式
数据采集 –> 数据存储 –> 报警 –> 数据展示

2、NMS
网络监控系统,(Network Management System)

3、SNMP协议
SNMP:(Simple Network Management Protocol),在Linux上实现SNMP协议的包是net-snmp

1、SNMP工作模式
NMS端向agent端发起采集数据的请求
agent端将收集到本地系统的状态信息向NMS端发送报告
NMS端还可以向agent端发起修改配置的请求

2、SNMP组件:基于TCP/IP实现的网络监控三个组件:
MIB:(management information base)管理信息库—-监控端或被监控端可以实现的数据采集规范。因为SNMP协议过于简单,所以需要MIB来规定
具体的规范来告知NMS要获取什么指标。{MIB试图,MIB树状结构}
SMI:MIB的表示符号。
SNMP:SNMP协议

3、NMS端可发起的操作:
GET:获取数据
GETNEXT:获取下一个参数
SET:请求Agent修改配置
TRAP:等待agent发送会报告

4、监听端口:
NMS:162
agent:161

5、SNMP协议版本:
v1
v2:v2c,实现了认证功能
v3:实现是认证、加密、解密的功能

zabbix程序架构及安装部署

1、组件

    zabbix-server       # 使用C语言开发    zabbix-agent        # 使用C语言开发,与server通信的协议有zabbix协议、ICMP/IPMI/SNMP、HTTP等协议    zabbix web GUI      # 使用PHP开发。能够通过数据库提取数据,实现数据可视化,同时zabbix web GUI也是zabbix-server的配置接口    zabbix proxy        # 分布式监控环境中的组件    zabbix database     # MySQL、PGSQL、Oracle、DB2、SQLite

2、zabbix常用术语

主机(host):要监控的网络设备,可由IP或DNS名称指定主机组(host group):主机的逻辑容器,可以包含主机的模板。但同一个组内的主机和模板不能相互链接,主机组通常在给用户或用户组指派监控权限时使用。监控项(item):一个特定监控指标的相关数据,这些数据来自于监控对象。对于item是zabbix进行数据收集的核心,没有item,将没有数据。相对某监控对象而言,每个item都有"key"进行标识。触发器(trigger):一个表达式。用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阈值。接收到的数据量大于阈值时,触发器状态将从 "OK" 撞边为 "Problem" ,当数据量再次回归到合理范围时,器状态将从 "Problem" 转变为 "OK"。事件(event):即发生的一个值得关注的事情,例如触发器状态转变,新的agent或重新上线的agent的自动注册等。动作(action):指对特定事件实现定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作) {动作包括:通知和执行外部命令}。报警升级(escalation):发送警报或执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次。媒介(media):发送通知的手段或通道,如Email、SMS等。通过(motificaton):通过选定的媒介向用户发送的有关某事件的信息。远程命令(remote command):预定义的命令,可在被监控的主机处于某特定条件下自动执行。模板(template):用于快速定义被监控主机的预设条目集合,通常包含item、grigger、graph、screen、application以及low-level discovery rule(发现规则)。模板可以直接链接至单个主机。应用(application):一组item的集合。web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求。前端(frontend):zabbix的web gui接口。

安装部署Zabbix
下面是我使用到的包
我是使用的现在最新的zabbix的版本

zabbix-agent.x86_64                       3.4.4-2.el7                  zabbix   zabbix-get.x86_64                         3.4.4-2.el7                  zabbix   zabbix-java-gateway.x86_64                3.4.4-2.el7                  zabbix   zabbix-proxy-mysql.x86_64                 3.4.4-2.el7                  zabbix     zabbix-proxy-sqlite3.x86_64               3.4.4-2.el7                  zabbix   zabbix-sender.x86_64                      3.4.4-2.el7                  zabbix   zabbix-server-mysql.x86_64                3.4.4-2.el7                  zabbix      zabbix-web-mysql.noarch                   3.4.4-2.el7                  zabbix   

下载官网的zabbix-release-3.4-2.el7.noarch.rpm 包

 [ root@node1 ~ ]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

解压后yum仓库会生成直接指向官网的源

 [ root@node1 ~ ]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm [ root@node1 ~ ]# yum repolist

首先要确保自己是否安装mysql或是pgsql,如没有则安装之。
我这里用的是mysql
先编辑配置

[ root@node1 ~ ]# vim /etc/my.cnf.d/server.cnf [server]skip_name_resolve = ONinnodb_file_per_table = ONinnodb_buffer_pool_size = 256Mmax_connections = 2000log-bin = master-log

启动

[ root@node1 ~ ]# systemctl start mariadb

安全初始化mysql,并删除匿名用户

[ root@node1 ~ ]# mysql_secure_installation 

由于zabbix要连接到数据库,我们就需要给他创建数据库。

MariaDB [(none)]> CREATE DATABASE zbxdb CHARACTER SET 'utf8';

授权用户访问

MariaDB [(none)]> GRANT ALL ON zbxdb.* TO 'zbxuser'@'172.18.25.%' IDENTIFIED BY 'zbxpass';

刷新授权

MariaDB [(none)]> FLUSH PRIVILEGES;

在监控端安装

[ root@node1 ~ ]# yum -y install zabbix-server-mysql  zabbix-web  zabbix-web-mysql  zabbix-agent  zabbix-get  zabbix-sender
[ root@node1 ~ ]# rpm -ql zabbix-server-mysql/etc/logrotate.d/zabbix-server/etc/zabbix/zabbix_server.conf                  #配置文件/usr/lib/systemd/system/zabbix-server.service/usr/lib/tmpfiles.d/zabbix-server.conf/usr/lib/zabbix/alertscripts                    #警告脚本/usr/lib/zabbix/externalscripts                 #其他外部脚本/usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz      #生成数据库的各种表的脚本

复制生产数据库的各种表的脚本到本地

[ root@node1 ~ ]# cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz .

解压

[ root@node1 ~ ]# gzip -d  create.sql.gz 

然后把脚本导入到数据库

[ root@node1 ~ ]# mysql -uzbxuser -h172.18.25.51 -pzbxpass zbxdb < create.sql

然后登录数据库查看是否把表的生产了

MariaDB [(none)]> show databases;MariaDB [(none)]> use zbxdb;MariaDB [zbxdb]> show tables;

开始修改zabbix的配置文件
先原地备份

[ root@node1 ~ ]# cd /etc/zabbix/[ root@node1 /etc/zabbix ]# cp zabbix_server.conf{,.bak}
~]# grep "^#####" zabbix_server.conf   #查看配置段############ GENERAL PARAMETERS ############################# ADVANCED PARAMETERS ####################### LOADABLE MODULES ############## TLS-RELATED PARAMETERS #######
~]# grep -i "^###" zabbix_server.conf  #查看每个配置段里面的option

开始编辑配置文件

[ root@node1 /etc/zabbix ]# vim zabbix_server.confListenPort=10051                    #默认端口SourceIP=172.18.25.51       #默认服务端发采样请求的IPLogFileSize=10      # 指定日志文件大小,当到了此大小后,进行日志滚动DBHost=172.18.25.51DBName=zbxdbDBUser=zbxuserDBPassword=zbxpass      DBPort=3306

然后查看zabbix-web

[ root@node1 /etc/zabbix ]# rpm -ql zabbix-web | less/etc/httpd/conf.d/zabbix.conf

编辑Zabbix前端的PHP配置

# vim  /etc/httpd/conf.d/zabbix.conf   php_value max_execution_time 300  php_value memory_limit 128M  php_value post_max_size 16M  php_value upload_max_filesize 2M  php_value max_input_time 300  php_value always_populate_raw_post_data -1  php_value date.timezone Europe/Riga       # 修改时区(取消这行的注释,然后指定时区,或者去                                            # 修改/etc/php.ini 的   ;date.timezone = Asia/Shanghai

然后就可以启动httpd

[ root@node1 /etc/zabbix ]# systemctl start httpd   

使用谷歌访问
172.18.25.51/zabbix/setup.php
这里写图片描述
进行初始化设置
next
查看是否有false,有则修改
这里写图片描述
按要求填写
next最后结束
这里写图片描述

这里写图片描述
到登录界面
默认初始账号密码是
账号:admin
密码:zabbix
注意修改密码。

可以选择切换成中文版
点击右上角的人物头像
这里写图片描述

language 选择Chinese(zh_CN),点击save即可
也可在Administration里面选择user
比如Admin,在language 选择Chinese(zh_CN),点击save即可
这是单独改这个用户登陆的时候你的面板是否是中文的。
这里写图片描述
这里写图片描述

配置很多agent的时候可以使用ansible 或是puppet来帮助完成
而且,zabbix有一个功能是主机发现,扫描一整个网段,但是这样是特别
消耗资源的,一般只在大量主机新加入时才打开这个功能。

现在先给server配置agent,使之能监控自己

#vim /etc/zabbix/zabbix_agentd.confServer=127.0.0.1                        #指明服务器是谁,可以被多个server所监控ListenPort=10050                        #监听的端口ListenIP=0.0.0.0                        #监听的地址StartAgents=3                           #被监控项的数量,按需求写个数ServerActive=172.18.25.51               #主动监控时server是谁Hostname=node1                          #能被server端识别的主机名

简单查看以非#开头的行

[ root@node1 /etc/zabbix ]# grep -i "^[^#].*" zabbix_agentd.conf 

如果没有问题,就可以启动agent了

[ root@node1 /etc/zabbix ]# systemctl start zabbix-agent

现在我们在web界面手动把agent加入进去

首先在configuration下的host groups里面新加入一个组(右上角create host group)

然后再选择configuration下的hosts创建一个host(右上角)
然后按需求填写你的信息,被监控的参数,或是使用模板….

添加完成后出来选择监控项
这里写图片描述

现在配置agent端
首先配置yum仓库

 [ root@node2~ ]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm [ root@node2~ ]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm [ root@node2~ ]# yum repolist

安装zabbix-agent zabbix-sender

[ root@node2 ~ ]# yum install -y zabbix-agent zabbix-sender[ root@node2 /etc/zabbix ]# grep -i "^#####" zabbix_agentd.conf #配置板块############ GENERAL PARAMETERS ###################### Passive checks related##### Active checks related############ ADVANCED PARAMETERS ######################## USER-DEFINED MONITORED PARAMETERS ############## LOADABLE MODULES ############## TLS-RELATED PARAMETERS #######
[ root@node2 /etc/zabbix ]# grep -i "^###" zabbix_agentd.conf   #配置参数#vim /etc/zabbix/zabbix_agentd.confServer=172.18.25.51                     #指明服务器是谁,可以被多个server所监控ListenPort=10050                        #监听的端口ListenIP=0.0.0.0                        #监听的地址StartAgents=3                           #被监控项的数量,按需求写个数ServerActive=172.18.25.51               #主动监控时server是谁Hostname=node2                          #能被server端识别的主机名

启动agent

[ root@node2 /etc/zabbix ]# systemctl start zabbix-agent

好了,到这里最简单的的监控就配置完了,剩下的是你所要选择的里面要捕获的参数。

                            ღ ღ ღ 如果觉得文章对您有用,不妨赞一下ღ ღ ღ
原创粉丝点击