码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix 的部署及基础知识的讲解

时间:2014-10-11 09:10:55      阅读:670      评论:0      收藏:0      [点我收藏+]

标签:系统管理员   服务器   解决方案   linux   基础知识   

一、Zabbix的介绍

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员

快速定位/解决存在的各种问题,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。

- 安装与配置简单,学习成本低

- 支持多语言(包括中文)

- 免费开源

- 自动发现服务器与网络设备

- 分布式监视以及WEB集中管理功能

- 可以无agent监视

- 用户安全认证和柔软的授权方式

- 通过WEB界面设置或查看监视结果

- email等通知功能

Zabbix主要功能:

- CPU负荷

- 内存使用

- 磁盘使用

- 网络状况

- 端口监视

- 日志监视

-服务监控

    我个人用zabbix来做监控的主要原因是对比起其它两款开源软件cacit和nagios它具备了他们两款工具的优点。Cacti的优秀性主要在于对数据进行采样并绘制出直观的图片显示服务器的运行信息,对于服务器的报警功能支持不是很好(绘图室基于php开发的),而nagios则是更关注我们对服务器阈值的定义,对状态切换更敏感,报警功能强大。而zabbix则是结合和两者的优点。

二、基础知识讲解

1、zabbix工作的原理

Zabbix支持四种工作方式分别是

Snmp 、 zabbix(server/agent)、JMX、IPMI(基于硬件提供的专用接口)

Snmp 协议介绍

Agent:代理在UDP的161端口接收NMS的读写请求消息,agent:161,被监控端

Manger:管理站在UDP的162端口接收代理的事件通告消息 ,NMS:162,监控端

bubuko.com,布布扣

Zabbix 是基于zabbix协议工作的,其底层是依赖于snmp的工作方式来工作的,它的模型是

Server/agent 方式

Service : 10051 :由三部分组成(zabbix-web gui【依赖lamp平台、配置接口、展示数据】、zabbix-server【周期性去agent端采集数据】、service database【负责存储数据】)

Agent: 10050:收集本机数据、暂时存储、监听等待server端来采集数据

部署应用场景

bubuko.com,布布扣

2、zabbix一次监控的全过程原理图

定义监控主机,主机添加到主机组,定义item(监控主机的监控项,【监控资源】),graphs绘图【不是必须、套用用模板就不用】,teiggers:定义触发器,action:定义触发器触发后要执行的动作,比如服务重启,发邮件给管理员,动作升级,发邮件给部门主管

bubuko.com,布布扣

3、一次全监控的工作流程

数据采集、数据存储、数据展示、服务报警与升级

bubuko.com,布布扣

三、实验安装zabbix并监控服务器服务

node1  centos6.5 172.16.11.143  zabbix(agent)

node2 centos6.5 172.16.11.144 zabbix(server、agent)

实验前注意同步各主机的时间以免导致zabbix绘出图片时间跟现实时间不一致、注意主机名的定义

Node2

1、安装zabbix服务端、客户端、mysql-server、lamp #需要下载的软件

下载地方:

http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/

zabbix-release-2.4-1.el6.noarch.rpm      zabbix-sender-2.4.0-1.el6.x86_64.rpm

zabbix-2.4.0-1.el6.x86_64.rpm                zabbix-server-2.4.0-1.el6.x86_64.rpm

zabbix-agent-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm

zabbix-get-2.4.0-1.el6.x86_64.rpm            zabbix-server-pgsql-2.4.0-1.el6.x86_64.rpm

zabbix-java-gateway-2.4.0-1.el6.x86_64.rpm   zabbix-web-2.4.0-1.el6.noarch.rpm

zabbix-proxy-2.4.0-1.el6.x86_64.rpm          zabbix-web-japanese-2.4.0-1.el6.noarch.rpm

zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm    zabbix-web-mysql-2.4.0-1.el6.noarch.rpm

zabbix-proxy-pgsql-2.4.0-1.el6.x86_64.rpm    zabbix-web-pgsql-2.4.0-1.el6.noarch.rpm

zabbix-proxy-sqlite3-2.4.0-1.el6.x86_64.rpm

软件安装

yum install zabbix-server-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm

配置好yum源避免依赖关系

2、授权用户可以来存储数据

MariaDB [(none)]> create database zabbix character set utf8;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to ‘zbxuser‘@‘172.16.%.%‘ identified by ‘1234‘;

Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all on zabbix.* to ‘zbxuser‘@‘node1.org.com‘ identified by ‘1234‘;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.01 sec)

MariaDB [mysql]> select User,Password,Host from user;

+---------+-------------------------------------------+---------------+

| User    | Password                                  | Host          |

+---------+-------------------------------------------+---------------+

| root    | *A4B6157319038724E3560894F7F932C8886EBFCF | localhost     |

| root    | *A4B6157319038724E3560894F7F932C8886EBFCF | 127.0.0.1     |

| zbxuser | *A4B6157319038724E3560894F7F932C8886EBFCF | 172.16.%.%    |

| zbxuser | *A4B6157319038724E3560894F7F932C8886EBFCF | node1.org.com  |

| zbxuser | *24E65C3D3577DA6C2A596788CEAA02923A74B75D | localhost    |

+---------+-------------------------------------------+---------------+

3、导入zabbix内置数据库

[root@localhost create]# mysql -u root -h 127.0.0.1 -p zabbix < images.sql

[root@localhost create]# mysql -u root -h 127.0.0.1 -p zabbix < images.sql

[root@localhost create]# mysql -u root -h 127.0.0.1 -p zabbix < data.sql

[root@localhost create]# mysql -u zbxuser -h 172.16.11.144 -p #测试登录

4、修改服务端配置文件注意和授权用户保持一致

vim /etc/zabbix/zabbix_server.conf

service httpd restart

DBHost=172.16.11.144

DBName=zabbix

DBUser=zbxuser

DBPassword=1234

DBSocket=/tmp/mysql.sock

Service zabbix-service restart

5、Zabbix监控本机自身配置

vim /etc/zabbix/zabbix_agentd.conf

Server=127.0.0.1,172.16.11.144

ServerActive=127.0.0.1,172.16.11.144

Hostname=node1.org.com

LogRemoteCommands=1 #允许服务端对客户端执行命令

Service zabbix-agent restart

前提是安装了lamp 并启动

安装zabbix-web

配置php时区

vim /etc/php.ini

date.timezone = Asia/Chongqing

Service httpd restart

6、安装zabbix web gui 配置zabbix监控主机服务

http://172.16.11.144/zabbix/setup.php

输入默认账户admin、和默认密码zabbix点击下一步

时区的设置、确保所有都ok不然要解决再点击下一步

bubuko.com,布布扣

配置数据存储连接数据库

bubuko.com,布布扣

端口设置及配置信息显示

bubuko.com,布布扣

安装完成

bubuko.com,布布扣

登录配置监控服务

zabbix 安装的默认账户和密码是

admin

zabbix

登录后注意改管理员密码

bubuko.com,布布扣

8、agent客户端(被监控端)安装软件

Node1

yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm

监控客户端配置文件修改

vim /etc/zabbix/zabbix_agentd.conf

Server=172.16.11.144

ServerActive=172.16.11.144

Hostname=node2.org.com

service zabbix-agent restart

四、监控服务的配置

1、item的定义

bubuko.com,布布扣

2、图片的定义

bubuko.com,布布扣

3、触发器的定义

bubuko.com,布布扣

4、添加用户并设置用户权限、否则无法报警、在此处我们也可以修改默认管理员账户密码、和添加新账户让它只有监控主机服务的权限不具有修改监控配的权限

bubuko.com,布布扣

5、添加报警发送方式,发邮件、有三种方式email、sms、script、jabber

bubuko.com,布布扣

6、四种报警方式选择

bubuko.com,布布扣

7、action的定义触发事件发邮件给谁

bubuko.com,布布扣

定义发邮件的级别

bubuko.com,布布扣

8、定义报警升级

bubuko.com,布布扣

9、图片设置展示

bubuko.com,布布扣

五、对key的理解

1、Key的主要应用是在定义item时,数据存储的设置,如果会自动增长的要改成

Delta(speed per second):每秒数率(value - prev_value)/(time - prev_time)

其它的则是AS is :不做任何处理

2、举例解释

Node2

MariaDB [zabbix]> select * from items\G

MariaDB [zabbix]> select key_,type from items;

zabbix_get -h 获取帮助

Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"

[root@localhost ~]# zabbix_get -s 172.16.11.144 -k "net.if.out[eth0]"

44660716

[root@localhost ~]# zabbix_get -s 172.16.11.144 -k "net.if.in[eth0]"

44660724

[root@localhost ~]# zabbix_get -s 172.16.11.144 -k "system.cpu.int"

10660724

AS is :不做任何处理

Delta(speed per second):每秒数率(value - prev_value)/(time - prev_time)

Delta (simple change): (value - prev_value)

触发器 {<server>:<key>.<function>(<parameter>)}<operator><constant>

3、解决绘图的时间与主机时间不同步的方法,在没有配置ntp服务器时,这里主要是为了试验,就不管啦,要想命令成功,要设置node1密钥认证node2

[root@localhost ~]# ssh 172.16.11.143 "date -s ‘20141008 15:24:30‘";date -s ‘20141008 15:24:30‘

Wed Oct  8 15:24:30 CST 2014

Wed Oct  8 15:24:30 CST 2014

解决时间不同步的机制

4、采样时间设置应该注意的事项

-数据保存时长  可以自己设定  #超过保存时长【heas】keep自动清理

-保留历史趋势数据:每小时的最大值、最小值、平均值、 [保存时间较数据时长较长]

-采样时长

-监控时长定义

node2

yum install hping3

hping3 172.16.11.144 --faster

5、自定义监控网页并设置action服务端可以远程重启agent的httpd服务

-添加item  net.tcp.service[service,<ip>,<port>]

-triggers {172.16.11.143:net.tcp.service[http,172.16.11.143,80].last(0)}=0

-graphs 设置为线条图 0  1

-action  注意要添加目标主机执行重启

###############################################################################

开启配置文件中的命令 vim /etc/zabbix/zabbix_agentd.conf # EnableRemoteCommands=1

此处经过验证zabbix用户去远程执行重启服务失败,配置没错,权限也有,但是就是实现不小,猜测可能是认证机制配置有错误,最后只好设置root用户去远程连接ssh执行重启httpd的任务,实验成功。

不行的话我们可以执行ssh   用root身份去重启服务

允许执行sudo命令 visudo #zabbix ALL=(ALL) NOPASSWD: /etc/rc.d/init.d/httpd restart

su - zabbix -c "/etc/rc.d/init.d/httpd restart" #测试权限不行,为系统用户

tail /etc/passwd #查看原因shell为/sbin/nologin

zabbix:x:494:491:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

tail /etc/shadow

zabbix:!!:16349::::::

[root@node1 ~]# chsh zabbix #修改shell

Changing shell for zabbix.

New shell [/sbin/nologin]: /bin/bash

Shell changed.

su -zabbix

sudo -l#有权限,但是还是不行

6、自定义报警脚本:

zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts

报警脚本的特点:

接受三个参数:

$1: 指定的用户的“Media"中的"send to"所指向的位置;

$2: 为指定的action中的“default subject”;

$3: 为指定的action中的“default message”;

短信报警:通过报警脚本实现

7、自定义宏:宏就是变量,可以方便用户自定义item、模板、tigger

宏:自动替换的文本模式

内置宏:{MACRO_NAME}

自定义宏:{$MACRO_NAME}

全局: adminitration --> general --> macros

模板: configration --> templates --> macros

主机: configration --> hosts --> macros

范围越小,优先级越高;

触发器宏的定义

bubuko.com,布布扣

模板宏的定义

bubuko.com,布布扣

8、trapper 监控机制测试agent端和server端的连通性

agent:zabbix-sender发送数据

注意

1、主机名

create host ---name

2、通过crontab周期性地通过zabbix-sender 发送数据给服务端

3、创建item时,item type 为zabbix-trapper:key可以任意命名,但使用zabbix-sender发送数据时,使用key要与此处保持一致

9、利用SNMP 协议来监控的简单介绍

yum install net-snmp

vim /etc/snmp/snmpd.conf

com2sec notConfigUser  default       public

可以修改认证方式

com2sec localhost 172.16.0.0/16       local_public

com2sec localhost 127.0.0.1       public

group localGroup v2c localhost

view  all   included .1.3.6.1.2

access  localGroup ""      any       noauth    exact  prefix  all  none  none

service snmpd restart

ss -tunl 161 #udp协议

snmpwalk -v 2c -c publick 127.0.0.1  #获取MIB树

六、监控nginx的请求连接状态

1、安装nginx 状态页配置

Vim /etc/nginx/conf.d/default.conf

  location /status {

                stub_status on;

                access_log off;

}

bubuko.com,布布扣

2、状态页面各项数据的意义:

active connections – 当前 Nginx 正处理的活动连接数。

serveraccepts handled requests — 总共处理了 4 个连接 , 成功创建 4次握手 (证明中间没有失败的 ), 总共处理了 2个请求

reading — nginx 读取到客户端的 Header 信息数。

writing — nginx 返回给客户端的 Header 信息数。

waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading + writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。

3、服务端测试并做处理

Node2

bubuko.com,布布扣

curl -s http://172.16.11.143/status | awk ‘/^Active/{print $NF}‘

Node1

vim /etc/zabbix/zabbix_agentd.conf

UserParameter=nginx.active[*],curl -s http://$1:$2/status | awk ‘/^Active/{print $$NF}‘

Service zabbix-agent restart

Node2 #测试修改

bubuko.com,布布扣

添加主机

bubuko.com,布布扣

自定义主机宏

bubuko.com,布布扣

自定义item

bubuko.com,布布扣

自定义图片

bubuko.com,布布扣

绘图成功

bubuko.com,布布扣

七、zabbix监控开启自动发现功能

主要功能就是自动发现主机、自动添加主机、自动套用模板、自动工作并绘图、注意开启这个功能的前提是1、它会耗费主机性能2、必须定义配置文件修改允许发现。

1、定义发现规则

bubuko.com,布布扣

2、定义发现后的action

bubuko.com,布布扣

3、指定去在那个范围内发现

bubuko.com,布布扣

4、定义发现主机后的动作、自动添加、自动套用模板

bubuko.com,布布扣

5、实验查看是否自动添加、然后查看是否绘图等等

bubuko.com,布布扣

另外zabbix还支持自动注册、只要主机上线就自动添加主机、对主机进行监控、主要是要配置服务配置文件、指定serviceactive、定义action就可以自动注册

bubuko.com,布布扣

自动注册功能,要选这项,其它和自动发现一样

zabbix 的部署及基础知识的讲解

标签:系统管理员   服务器   解决方案   linux   基础知识   

原文地址:http://1983939925.blog.51cto.com/8400375/1562374

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!