zabbix 介绍、zabbix-agent的安装、zabbix-get的安装及使用

一 zabbix 概述

zabbix 是一个企业级的分布式开源监控方案。

二 zabbix结构

zabbix由几个主要的软件组件构成,这些组件及对应的功能如下:

1 server
zabbix server 是 zabbix 软件实现监控的核心程序,主要功能是与zabbix proxies 和 agents 进行交互、触发器计算、发送告警通知;并将数据集中保存等。

zabbix server配置文件位置:

[root@zabbix-server ~]# find / -name zabbix_server.conf
/etc/zabbix/zabbix_server.conf

Zabbix Server查看版本号:

zabbix_server -V                  (zabbix server下的命令行参数-V是大写的V)

[root@zabbix-server ~]# zabbix_server -V
zabbix_server (Zabbix) 4.0.2
......

Compiled with OpenSSL 1.0.1e-fips 11 Feb 2013
Running with OpenSSL 1.0.1e-fips 11 Feb 2013
[root@zabbix-server ~]# 

2 数据库存储

所有配置信息和zabbix收集到的数据都被存储在数据库中。

3 web 界面

为了从任何地方和任何平台都能轻松的访问zabbix, zabbix 提供了基于 web 的界面。该界面是 zabbix server 的一部分, 通常(但不一定)跟 zabbix server 运行在同一台物理机器上。

如果使用 SQLite, Zabix Web 界面必须要跟 Zabbix Server 运行在同一台物理机器上。

4 Proxy 代理服务器

一个帮助Zabbix Server 收集数据,分担Zabbix Server的负载的程序。
zabbix proxy 可以替 Zabbix Server 收集性能和可用性数据。Proxy 代理服务器是 Zabbix 软件可选择性部署的一部分;当然,Proxy 代理服务器可以帮助单台 Zabbix Server 分担负载压力。

5 Agent 监控代理

一个部署在监控对象上的,能够主动监控本地资源和应用的程序。
zabbix agent 监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

zabbix agent 配置文件位置:

[root@mysql-slave ~]# find / -name "zabbix_agentd.conf"
/etc/zabbix/zabbix_agentd.conf

 

zabbix agent 命令行参数解释:
-t    -- test  <item key>              测试指定监控项并退出。
-c   -- config  <config-file>         配置文件的绝对路径。我们可以使用此选项来指定配置文件,而不是使用默认文件
-p   -- print                                 显示已知监控项并退出。

zabbix agent 命令行参数举例:

// 如果使用的 item key 是 默认配置文件路径中的配置文件中配置的,则 -c 参数可省掉(c 意为 config)
[root@mysql-slave ~]# zabbix_agentd -t "mysql.replication"   
mysql.replication                             [t|2]
[root@mysql-slave ~]# zabbix_agentd -t "mysql.replication" -c /etc/zabbix/zabbix_agentd.conf 
mysql.replication                             [t|2]
[root@mysql-slave ~]#

 

三 停掉zabbix-server后,zabbix web界面会出现的提示;zabbix server启动、停止、查看运行状态

如果只是停掉zabbix-server,则在 zabbix web 界面,监测中>最新数据 ,会报zabbix server is not running.
[root@zabbix-server ~]# systemctl stop zabbix-server.service

补充:

1  启动zabbix_server

方式1: 
 systemctl start zabbix-server.service

方式2:
service zabbix-server start

方式3:./zabbix_server
[root@zabbix-server ~]# which zabbix_server
/usr/sbin/zabbix_server
[root@zabbix-server ~]# zabbix_server

注意:使用 方式3 启动zabbix_server后,无法使用 systemctl stop zabbix-server.service 或 service zabbix-server stop 方式停掉zabbix_server。

[root@zabbix-server ~]# systemctl stop zabbix-serve.service
Failed to stop zabbix-serve.service: Unit zabbix-serve.service not loaded.
[root@zabbix_server ~]# 
[root@zabbix_server ~]# service zabbix-server stop
Redirecting to /bin/systemctl stop zabbix-server.service

只能通过下面 “2 停掉zabbix_server” 中的 “方式3”

2 停掉zabbix_server

方式1:
systemctl stop zabbix-server.service

方式2:
service zabbix-server stop

zabbix_server启动后,zabbix_server开启的进程比较多(通过命令 ps -ef|grep zabbix_server  可查看到zabbix_server关联的进程号PID),使用 systemctl stop zabbix-server.service  或 service zabbix-server stop 都无法停掉 zabbix-server时,该怎么操作,

此时该如何停止:

方式3:
kill -9 `pidof zabbix_server`

方式3停掉zabbix-server方法示例:

[root@zabbix-server ~]# pidof zabbix_server
14278 14277 14276 14275 14252 14251 14250 14249 14248 14247 14246 14245 14244 14243 14242 14241 14240 14239 14238 14237 14236 14235 14234 14233 14232 14231 14230 14229 14228 14227 14226 14225 14224
[root@zabbix-server ~]# kill -9 `pidof zabbix_server`

3 查看zabbix-server 启动状态

[root@zabbix-server ~]# systemctl status zabbix-server.service
或
[root@zabbix-server ~]# service zabbix-server status

 



四 zabbix-agent 的安装

在mysql从机上安装zabbix-agent

1 下载zabbix组件 zabbix-agent

进入zabbix下载地址 http://repo.zabbix.com/zabbix/

我的linux系统是CentOS7.5 64位的,所以选择zabbix/4.0/rhel/7/x86_64/ 下的 rpm包,下载zabbix-agent-xxx.rpm, 并上传到mysql从机上。

2 使用rpm命令安装 zabbix组件 zabbix-agent

[root@mysql-slave ~]# rpm -ivh zabbix-agent-4.0.0-2.el7.x86_64.rpm 

或者直接1,2步合在一起

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm

3 编辑 zabbix agent 配置文件 zabbix_agentd.conf

[root@mysql-slave ~]# ls /etc/zabbix/
zabbix_agentd.conf  zabbix_agentd.d
[root@mysql-slave ~]# vi /etc/zabbix/zabbix_agentd.conf 

默认



改为:

Server=[your zabbix-server ip]
ServerActive=[your zabbix-server ip]
Hostname=[Hostname of client system]

比如我的改动如下:

Server=192.168.81.195
ServerActive=192.168.81.195
Hostname=mysql-slave

4 启动 zabbix agent

(zabbix agent 监听端口默认为 10050,可在 zabbix_agentd.conf 文件中更改监听端口号)

[root@mysql-slave ~]# systemctl start zabbix-agent.service 

扩展:
systemctl restart zabbix-agent.service                 重启zabbix-agent

systemctl status zabbix-agent.service                 查看zabbix-agent运行状态            

5 设置 zabbix-agent 服务开机自启动

[root@mysql-slave ~]# systemctl enable zabbix-agent.service 

 



五 zabbix-get 组件的安装及使用

一 首先在mysql-slave 端(192.168.81.182)创建mysql主从项取值

2)#测试 通过grep过滤出关键词"Running"状态,awk打印出第二列的"Yes",最后由grep -c统计“Yes”的个数

[root@mysql-slave ~]# mysql -uroot -psdbrk -e "show slave status\G" | grep "Running" | grep "Yes"
mysql: [Warning] Using a password on the command line interface can be insecure.
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
[root@mysql-slave ~]# mysql -uroot -psdbrk -e "show slave status\G" | grep "Running" | grep -c "Yes"
mysql: [Warning] Using a password on the command line interface can be insecure.
2
[root@mysql-slave ~]# mysql -uroot -psdbrk -e "show slave status\G" 2>/dev/null | grep "Running" | grep -c "Yes"
2
[root@mysql-slave ~]# 

二 在zabbix server 服务器上安装zabbix-get

zabbix get 是一种命令行应用,可以用于与zabbix agent 进行通信,并从 zabbix agent 那里获取所需的信息,该应用通常被用于zabbix agent 故障排除。

zabbix get 支持以下命令行参数:

-s --host <host name or IP>                               指定主机名或主机的IP地址。
-p --port <port number>                                   指定主机上运行代理(zabbix agent)的端口号,默认端口 10050。
-I --source-address <IP address> (大写的I,不是小写的i)   指定源 IP 地址。
-k --key <item key>                                       指定需要获取值的监控项。
-h --help                                                 帮助提示。
-V --version (大写的V)                                     显示版本号。

 

有时候会在zabbix 下创建脚本,自定义监控项,在zabbix上创建监控项前可以先使用zabbix-get 来判断脚本是否正确。

在zabbix server 服务器上安装zabbix-get

[root@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.0-2.el7.x86_64.rpm

(可以分两步:

step1: 先下载zabbix-get-4.0.0-2.el7.x86_64.rpm 上传到zabbix server服务器上

step2: rpm -ivh zabbix-get-4.0.0-2.el7.x86_64.rpm

)

三 在zabbix server服务器上使用 zabbix-get 获取 zabbix-agent端的监控数据

1 先确保zabbix-agent 端  停掉 selinux 的拦截行为:

setenforce 0

补充:

使用zabbix远程命令权限不足问题解决方案:

对zabbix-agent端服务器 setenforce 0 (仅仅是在zabbix-server端使用zabbix_get命令的话,zabbix-server端不用设置;但若要在zabbix-server端启动zabbix-server.service,也需setenforce 0)

[root@mysql-slave /]# getenforce
Enforcing
[root@mysql-slave /]# setenforce 0
[root@mysql-slave /]# getenforce 
Permissive

zabbix-agent端服务器 如果不 setenforce 0 的话,在zabbix-server 端 使用 zabbix_get命令时会报: Permission denied

比如:key item 为 mysql.replication 的 zabbix-agent端(192.168.81.182)的zabbix-agentd.conf 中配置:

UserParameter=mysql.replication,cat /data/text.txt

修改完配置文件zabbix-agentd.conf后重启该zabbix-agent 服务器:
[root@mysql-slave ~]# systemctl restart zabbix-agent.service

在zabbix-server 端执行 zabbix_get 命令(报:没有权限):

[root@zabbix-server ~]# zabbix_get -s 192.168.81.182 -k mysql.replication
cat: /data/text.txt: Permission denied

将zabbix-agent端 setenforce=0,再次执行上述命令(不再报错):
[root@zabbix-server ~]# zabbix_get -s 192.168.81.182 -k mysql.replication
123456

2 zabbix_get获取数据(zabbix-get端 不需要安装mysql)

命令格式如下:

zabbix_get -s 192.168.81.182 -p 10050 -k mysql.replication       // 如果没改zabbix-agent端口的话,端口号不用指定

zabbix_get -s 192.168.81.182 -k mysql.replication

参数说明:
-s   --host: 指定客户端主机名或者ip
-p   --port:  客户端端口,默认10050
-k   --key:   你想获取的 Item Key

将 上面那条语句写入 zabbix_agentd.conf 配置文件中

UserParameter=mysql.replication,mysql -uroot -psdbrk -e "show slave status\G" | grep "Running" | grep -c "Yes"

然后重启mysql-slavet端:

[root@mysql-slave ~]# systemctl restart zabbix-agent.service

最后在zabbix-server端抓取mysql-slave端的数据

[root@zabbix-server ~]# zabbix_get -s 192.168.81.182 -k mysql.replication
mysql: [Warning] Using a password on the command line interface can be insecure.
1

或者

[root@zabbix-server ~]# zabbix_get -s 192.168.81.182 -k "mysql.replication"
mysql: [Warning] Using a password on the command line interface can be insecure.
1

抓取mysql-slave端的key值,如果返回数值2,则表明IO和SQL线程状态都为yes状态,则表明主从正常.

 

注意:
可以在zabbix 客户端zabbix_agentd.conf中定义多个UserParameter

 

 



 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值