分布式监控工具zabbix 配置安装

来源:互联网 发布:sql where执行顺序 编辑:程序博客网 时间:2024/05/17 09:16

监控软件zabbix (分布式监控,可设置中间代理,web前端)

这是一个分布式的监控套件,可以做到多层而不仅限于三层结构,即可以由server client 组成,此时由server 担任 proxy 和 server的任务,也可以使用单独的服务器作为proxy 从而降低server的负载。

 

搭建LAMP环境

下载所需软件包

Yum install curl curl-devel net-snmp net-snmp-devel perl-DBI php* zabbix-server zabbix-agent zabbix-sender zabbix-get

 

(其中zabbix-server为主服务程序 zabbix-agent为客户端程序,当需要监控服务器本身的时候自己即作为服务器也作为客户端)

 

创建数据库

Mysql –u root –p 

Mysql> create database zabbix character set utf8 collate utf8_bin;  (官方文是这么写的过一阵开始研究sql数据库,目前看不懂这句话啥意思,大概就是创建一个数据库zabbix 设置字符集为utf8 后面就看不懂了)

授权数据库

Mysql>grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;

(将zabbix库下面所有的表的权限授权给zabbix用户)

刷新权限 

Mysql>Flush privilegesexit

 

导入数据库(软件开发者已经把所有的数据库结构写好)

Cd /usr/share/doc/zabbix-server-mysql../create

 

Mysql –u root zabbix  < schema.sql -p

Mysql –u root zabbix  <images.sql  -p

Mysql –u root zabbix  <data.sql  -p

 

值得注意的是此处的导入顺序千万不能错,否则mysql报错(找不到数据库 找不到表 巴拉巴拉的 吃了一上午的亏 怎么弄都不对,就是没想到问题出在这里)

 

修改 /etc/services 标明zabbix所占用的端口 vim /etc/services

Zabbix-agent    10050/tcp

Zabbix-agent    10050/udp

Zabbix-trapper 10051/tcp

Zabbix-trapper 10051/udp

 

配置php服务 vim /etc/php.ini

Max_execution_time=300

Memory_limit=128M

Post_max_size=16M

Upload_max_filesize=2M

Max_input_time=200

Data.timezone=Asia/Shanghai

 

此处落下哪项也不要紧,在安装的时候会有一个大表告诉你哪个地方需要改的没改,到时候在改也行

 

启动zabbix_server  service zabbix-server start

启动httpd服务     service httpd start

然后一步一步的继续配置就行了,哪有问题点哪里


附上几个图


其实这个软件做的挺好,可以采用多种数据采集方式,目前用过的可以使用

zabbix-get 方式

snmp 协议数据采集

这个软件可以使用分布式的数据库,不过目前还没有试。

有个创新的discovery 发现主机方式,可以根据设置的发现规则自动按网段去找主机,规则可以是zabbix的key,也可以是snmp的OID MIB


今天在配置的过程中发现使用默认的snmp discovery规则,读取非常慢,时常需要好几个小时才能把数据读出来,

后找到原因,将发现的时间间隔由原来的3600秒改为60秒,数据瞬间全出来了。

明天继续折腾,使用SNMP协议读取目标的端口连接数。

由于这货不支持插件形式,也就无法调用自己的脚本,而且又不允许在目标机上操作,以至于这个问题好纠结。

后来想到一个好方法:

首先由cron 管理的脚本定期执行shell命令去读取数据然后写入到zabbix-server的文件中(linux 中一切皆文件),然后自定义一个key将这个值可以同过zabbix-sender 发送出去。由此可由shell到zabbix自己的协议对接的过程,然后再由zabbix-get 抓取发出的数据即可完成数据采集任务。

此过程中shell 执行的命令是对远程目标操作,然后通过sender的操作是本机对本机操作,即由本机发出然后由本机接受。

对于这个软件很难采集的数据(比如大型数据,多条数据)可以通过这个方法使用强大的linux shell脚本操作(cut awk egrep tr)完成几乎所有的文本加工动作。

缺点也很明显,经过的步骤太多,麻烦,出问题不好调试。

0 0
原创粉丝点击