zabbix 安装与使用

2019-01-07  本文已影响0人  fangfc

1. Zabbix 介绍

1.1 概述

zabbix 是 Alexei Vladishev 创建, 目前由其成立的的公司维护,
Zabbix 是一个企业级分布式开源监控解决方案.
Zabbix 软件可以监控有众多网络参数 和服务器监控度 完整性, Zabbix 使用更加灵活的告警机制, 允许用户位所欲时间配置基于邮件的报警, 可以让用户快速响应服务器问题, Zabbix 基于存储的数据体用出色的报表和数据可视化功能, 功能使得Zabbix 成文容量规划的理想选择.
Zabbix 支持主动获取 和被动获取 数据, 所有的报告, 统计信息和配置参数都可以基于Web 前端访问, 基于Web 前端页面保证 网络状况和服务器状况可以任何地方访问, 通过配置后, Zabbix 可以在监控 IT 基础设施方面发挥重要作用, 无论对于拥有少量服务器的小型组织, 还是拥有大量服务器而言 同样适用.

1.2 Zabbix 功能

Zabbix 是一种高度集成的网络监控解决方案, 单一软件包中提供了多种功能.

1.3 Zabbix 结构

1. Server

Zabbix Server 是整个Zabbix软件的核心程序.
Zabbix Server 负责执行数据的主动轮询和被动获取, 计算触发器条件, 向用户发送通知, 它是Zabbix Agent 和 Proy报告系统可用性和完整性数据的核心组件, Server 自身可以可以通过简单服务远程检查网络服务(如 Web 服务器和邮件服务器)

Zabbix Server 是所有配置, 统计和操作数据的中央存储中心, 也是Zabbix 监控系统和告警中心, 在监控的系统中出现任何异常, 将被发出通知给管理员.

Zabbix 的所有配置信息都存储在Server 和 Web 前端进行交互的数据库中, 例如, 当通过Web 前端(或者API)新增一个监控项时, 会被添加到数据库的监控项表, 然后, Zabbix server 以每一分钟的频率查询监控项表中的有效项时, 会被添加到数据库的监控项表里, 然后, Zabbix Server 以没分钟一次的查询频率查询监控项表中的有效项, 接着春处在Zabbix Server 中的缓存里, 也会就是说Zabbix 前端做任何更改都是需要花费两分钟才能显示最新的数据段原因.

2. Agent

Zabbix agent 部署在被监控目标上, 以主动监控本地资源和应用程序(硬盘, 内存, 处理器统计信息等)

Zabbix agent 收集本地的操作信息并将数据报告给Zabbix server 用于进一步处理, 一旦出现异常(例如硬盘空间已满, 或服务进程崩溃), Zabbix server 会主动报告给管理员指定机器的异常.

agent 拥有两种数据采集方式.

执行 被动或主动检测 的通过选择相应的监控项类型 来配置的.

3. Proxy

部署 Zabbix proxy 是可选择, 但可能非常有利于分担单个Zabbix server 的负载, 如果只有代理采集数据, 那么server 上会减少CPU 和磁盘 I/O 的开销.

1.4 Zabbix 的 Sender和 Get

Zabbix 提供了两个独立的命令行程序, 用于 发送和接收 数据到server处理.

2. Zabbix 的安装

2.1 安装方法

2.1.1 获取Zabbix

2.1.2 从 软件的发行包安装

RHEL 7:
    # rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

RHEL 6:
    # rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm

RHEL 5:
    # rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/5/x86_64/zabbix-release-4.0-1.noarch.rpm
# 安装 Zabbix server
yum install zabbix-server-mysql

# 安装 Zabbix proxy
yum install zabbix-proxy-mysql

# 安装 Zabbix web 前端
yum install zabbix-web-mysql

2.1.3 从源码包安装

# 查看支持的配置项
./configure --help

# 配置server 和 proxy 的源码
./configure --enable-server --enable-agent --enable-proxy --with-mysql --enable-net-snmp --with-libcurl --with-libxml2

# 配置serer 源代码使用( PostgreSQL  数据库)
./cinfigure -enable-server --with-postgresql --with-net-snmp

# 仅配置agent
./configure --enable-agent

2.2 安装zabbix

[root@node10009 ~]# yum -y install zabbix-server-mysql zabbix-server-web
....
Installed:
  zabbix-server-mysql.x86_64 0:4.0.3-1.el7                zabbix-web-mysql.noarch 0:4.0.3-1.el7  
Dependency Installed:
  OpenIPMI-libs.x86_64 0:2.0.23-2.el7     OpenIPMI-modalias.x86_64 0:2.0.23-2.el7     fping.x86_64 0:3.10-4.el7               
  gnutls.x86_64 0:3.3.29-8.el7            iksemel.x86_64 0:1.4-2.el7.centos           libtool-ltdl.x86_64 0:2.4.2-22.el7_3    
  net-snmp-libs.x86_64 1:5.7.2-37.el7     nettle.x86_64 0:2.7.1-8.el7                 trousers.x86_64 0:0.3.14-2.el7          
  unixODBC.x86_64 0:2.3.1-11.el7         

Complete!
[root@node10011 app]# yum -y install zabbix-agent
...
Installed:
  zabbix-agent.x86_64 0:4.0.3-1.el7                                                                                           

Complete!
[root@node10009 ~]# cp /usr/share/doc/zabbix-server-mysql-4.0.3/create.sql.gz  /opt/backup/
[root@node10009 ~]# cd /opt/backup/
[root@node10009 backup]# gunzip create.sql.gz 
[root@node10009 backup]# ls create.sql 
create.sql
[root@node10009 backup]# mysql -uroot -p
...
MySQL [(none)] > CREATE DATABASE zabbix DEFAULT CHARACTER SET='utf8';
Query OK, 1 row affected (0.01 sec)

MySQL [(none)] > GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)

MySQL [(none)] > FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


MySQL [(none)] > \q
Bye
[root@node10009 backup]# mysql -uroot -p zabbix < create.sql 
Enter password: 
[root@node10009 backup]# 
[root@node10009 backup]# cp -r /usr/share/zabbix/ /opt/case/
[root@node10009 backup]# 
[root@node10009 backup]# /opt/app/nginx/sbin/nginx 
[root@node10009 backup]# /opt/app/php7/sbin/php-fpm 
...
server {
    listen              82; 
    server_name         localhost;
    root                /opt/case/zabbix;
    index               index.html index.php;
    charset             utf8;
    access_log          logs/zabbix.access.log;
    error_log           logs/zabbix.error.log;

    location ~ .*\.php$ {
        root            /opt/case/zabbix;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME     /opt/case/zabbix/$fastcgi_script_name;
        include         fastcgi_params;
    }   
}
zabbix.png 002.png 003.png

3. Zabbix 配置

3.1 账户相关

  1. 登陆
    • zabbix 默认管理员账户为 Admin, 密码为 zabbix
004.png
  1. 修改默认账户和账户密码和添加账户
05.png 006.png

3.2 添加主机

  1. 客户端启动服务
...
Server=192.168.10.9         # zabbix-server 的地址
ServerActive=192.168.10.9   # 主动提交模式的 提交地址(一般函数Zabbix-server 或则 zabbix-proxy)
Hostname=node10011          # 这台主机的主机名
...
[root@node10011 ~]# ss -tanp | grep zabbix
LISTEN     0      128          *:10050                    *:*                   users:(("zabbix_agentd",pid=1646,fd=4),("zabbix_agentd",pid=1645,fd=4),("zabbix_agentd",pid=1644,fd=4),("zabbix_agentd",pid=1643,fd=4),("zabbix_agentd",pid=1642,fd=4),("zabbix_agentd",pid=1641,fd=4))
LISTEN     0      128         :::10050                   :::*                   users:(("zabbix_agentd",pid=1646,fd=5),("zabbix_agentd",pid=1645,fd=5),("zabbix_agentd",pid=1644,fd=5),("zabbix_agentd",pid=1643,fd=5),("zabbix_agentd",pid=1642,fd=5),("zabbix_agentd",pid=1641,fd=5))
[root@node10011 ~]# 

3.3 Zabbix 监控相关

  1. 主机
  1. 主机组
  1. 监控项
  1. 应用集
  1. 触发器
  1. 模板
  1. Web 场景

3.4 主机管理

007.png

3.4 模板管理

  1. 添加模板
008.PNG 009.png

3.5 配置自定义监控项

  1. 概述
  1. 配置
[root@node10011 ~]# mkdir /opt/shell/zabbix/
[root@node10011 ~]# vim /opt/shell/zabbix/check_mysql.sh
[root@node10011 ~]# chmod 755 /opt/shell/zabbix/check_mysql.sh 
[root@node10011 ~]# cat/opt/shell/zabbix/check_mysql.sh 
    #!/bin/sh
    res=`/opt/bin/mysqladmin -uroot -p123 ping 2> /dev/null | grep -c alive`
    echo $res

[root@node10011 ~]# /opt/shell/zabbix/check_mysql.sh 
1
[root@node10011 ~]# 
...
UnsafeUserParameters=1
UserParameter=check_mysql[*],/opt/shell/zabbix/check_mysql.sh
...
[root@node10009 nginx]#  zabbix_get -s 192.168.10.11 -p 10050 -k check_mysql
1
[root@node10009 nginx]# 
010.png

3.6 配置邮件告警

  1. 编辑发送邮件的脚本
[root@node10009 nginx]# vim /usr/lib/zabbix/alertscripts/send_mail.py 
[root@node10009 nginx]# 
  1. 编辑用户权限
011.png
  1. 编辑动作
012.png 013.png
  1. 测试
[root@node10011 ~]# mysqld.sh stop
Shutdown MySQL...
SUCESS! MySQL Stop                                         [  OK  ]
014.png

END

上一篇 下一篇

猜你喜欢

热点阅读