zabbix搭建

Zabbix 是由 Alexei Vladishev 开发的⼀种⽹络监视、管理系统,基于 Server-Client 架构。可⽤于监视各种⽹络服务、服务器和⽹络机器等状态。 使⽤各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语⾔、Web 管理端 frontend 则是基于 PHP 所 制作的。 Zabbix 可以使⽤多种⽅式监视。可以只使⽤ Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP … 各种协议定制监视。  在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、⽹络使⽤状况、硬盘容量等各种状态。⽽就算没有安装 Agent 在监视对象 中,Zabbix 也可以经由 SNMP、TCP、ICMP、利⽤ IPMI、SSH、telnet 对⽬标进 ⾏监视。 Zabbbix⾃带的Item⾜够满⾜普通⼩公司的监控需求,对于⼤公司也可以设定⾃定义 的Item,⾃动⽣成报表,也有API可以和其他系统集成

zabbix就是可以满足理想化的监控系统需求

⽀持⾃定义监控脚本,提供需要输出的值即可 zabbix存储的数据库表结构稍有复杂但是逻辑清晰 zabbix存在模板的概念,可以⽅便的将⼀组监控项进⾏部署 zabbix每⼀个item也就是监控项,都可以看到历史记录,且web界⾯友好 zabbix有强⼤的Trigger(触发器)定义规则,可以定义复杂的报警逻辑 zabbix提供了ack报警确认机制 zabbix⽀持邮件,短信,微信等告警 zabbix在触发告警后,可以远程执⾏系统命令 zabbix有原⽣的PHP绘图模块

基础配置

主机名 IP地址 配置 系统
server 192.168.200.131 2vCPU、4G内存、40G硬盘 centos7
agent 192.168.200.132 2vCPU、4G内存、40G硬盘 centos7

修改主机名

将两台虚拟机修改为指定的名称

 

 

 

 

 

 

 LNMP环境部署(Zabbix服务端):

上传LNMP环境部署包

 

 

 解压LNMP环境部署源码包

# tar zxvf lnmp1.6-full.tar.gz

 一键部署LNMP环

# cd lnmp1.6-full
修改MySQL数据目录:
# vi lnmp.conf     
MySQL_Data_Dir='/data/mysql'
# ./install.sh lnmp            #执行脚本

选择MySQL版本:

 

 

 

 设置MySQL密码;

选择InnoDB引擎是否开启:

选择PHP版本:

 

 

 选择不安装内存分配器:

 

按Enter键开始安装:

部署成功显示:

 

测试访问网页:

 

 

 

 

 zabbix安装部署

zabbix server 编译安装

安装依赖包

# yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel

创建zabbix用户

# useradd -s /sbin/nologin zabbix

zabbix-4.0.3.tar.gz传到/usr/local/src目录下解压编译安装

# tar zxvf zabbix-4.0.3.tar.gz         #解压源码包
# mkdir /usr/local/zabbix
# mv /usr/local/src/zabbix-4.0.3/* /usr/local/zabbix        #迁移到安装目录
# cd /usr/local/zabbix/
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 

with-libxml2

选项说明:

● --prefix指定安装目录

● --enable-server安装Zabbix server

● --enable-agent安装Zabbix agent

● --with-mysql用MySQL来存储

编译完成结果:

# make  && make install        #编译安装

环境变量设置

# vi /etc/profile
export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/
# source /etc/profile
# echo $PATH
# zabbix_server --version  #查看zabbix版本

配置启动脚本

# cp /usr/local/zabbix/misc/init.d/fedora/core/zabbix_server /etc/init.d/
#cp /usr/local/zabbix/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# vi /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix  #zabbix安装目录
# vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix  #zabbix安装目录

添加权限:

# chmod 755 /etc/init.d/zabbix_*

启动Zabbix服务及启动状态:

# systemctl start zabbix_server
# systemctl start zabbix_agentd
# systemctl status zabbix_server
# systemctl status zabbix_agentd

登录数据库创建Zabbix用户和导入Zabbix库

Mysql数据库 mysql -h 127.0.0.1 -uroot -p000000
mysql> create database zabbix character set utf8 collate utf8_bin;    ##创建Zabbix库和设置格式
mysql> grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';            ##创建Zabbix用户并分配权限
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
mysql> flush privileges;       ##刷新权限
mysql> set names utf8;       ##设置字符集
mysql> use zabbix       ##切换到Zabbix库中

把源码/usr/local/zabbix/database/mysql/安装路径下的3个sql文件导入数据库:

mysql> source /usr/local/zabbix/database/mysql/schema.sql
mysql> source /usr/local/zabbix/database/mysql/data.sql
mysql> source /usr/local/zabbix/database/mysql/images.sql
mysql> show tables;        ##查看导入的表格

 

 编辑Zabbix server的配置(记得先备份配置文件)

# cp /usr/local/zabbix/etc/zabbix_server.conf{,.bak} 
# vi /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=127.0.0.1        ##指定数据库信息(需配合参数 DBSocket 使用)
DBName=zabbix        ##服务端连接数据库的库名
DBUser=zabbix            ##连接数据库的用户
DBPassword=zabbix        ##连接数据库的密码
DBPort=3306        ##指定连接数据库的端口
Timeout=30          ##与AGNET和其它外部设备通信超时设置,单位为秒
LogSlowQueries=3000        ##用于服务端数据库慢查询功能,单位是毫秒
DBSocket=/tmp/mysql.sock        ##指定MYSQL的SOCK连接路径

修改Zabbix目录的权限:

# chown zabbix:zabbix -R /usr/local/zabbix/  

重启服务生效:

# systemctl restart zabbix_server

编译安装完成后,配置Nginx虚拟主机,修改PHP相关参数,完成Zabbix Web界面的部署安装。

配置Nginx虚拟主机
# vi /usr/local/nginx/conf/vhost/zabbix.com.conf
server
    {
        listen 80;
        server_name zabbix.com www.zabbix.com;
        index index.html index.htm index.php;
        root /data/nginx/zabbix;        ##Zabbix Web界面数据目录
     location ~ [^/]\.php(/|$)
        {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME /data/nginx/zabbix$fastcgi_script_name;
            include fastcgi_params;
        }
    }

源码安装包路径下的文件cp到Zabbix Web文件目录当中:

# mkdir -p /data/nginx/zabbix
# /etc/init.d/nginx reload        ##生效服务
# cp -rf /usr/local/zabbix/frontends/php/* /data/nginx/zabbix      

修改php.ini的配置文件

# vi /usr/local/php/etc/php.ini
post_max_size = 32M
max_execution_time = 350
max_input_time = 350
date.timezone = Asia/Shanghai

修改php-fpm.conf的配置文件

# vi /usr/local/php/etc/php-fpm.conf
[www]
listen = 127.0.0.1:9000

重启php-fpm服务

/etc/init.d/php-fpm restart

检查端口是否启动

# netstat -lntp | grep php
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      2141/php-fpm: maste 

Web界面部署安装

 

检查安装条件:(根据提示解决不满足条件的问题!)

 

 

 配置数据库连接信息

 

 

 配置Zabbix服务端详细信息

 

 

 安装前确认信息

 

 

 

 安装报错

 

 

 

 

 

 根据提示下载,并把它放到指定路径/data/nginx/zabbix/conf/zabbix.conf.php。

 

重新刷新界面

 

 

 登录界面:(账号:Admin 密码:zabbix)

 

 

 登录后界面

 

 

 完成Zabbix Web界面的部署安装之后,了解Zabbix客户端部署安装,了解配置主动模式与被动模式的区别,检测是否安装成功。

下载Zabbix客户端安装包

# yum -y install wget
# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.3-1.el7.x86_64.rpm

通过wget命令下载安装包。

安装Zabbix客户端

# rpm -ivh zabbix-agent-4.0.3-1.el7.x86_64.rpm

安装完后我们后面经常使用的文件如路径如下

/etc/zabbix/zabbix_agentd.conf     ##zabbix_agentd配置文件
/etc/zabbix/zabbix_agentd.d         ##zabbix_agentd进程文件
/var/run/zabbix/zabbix_agentd.pid         ##zabbix_agentd pid文件路径
/var/log/zabbix/zabbix_agentd.log         ##zabbix_agentd日志文件路径

备份配置文件

# cp /etc/zabbix/zabbix_agentd.conf{,.bak} 
# egrep -v '^$|#' /etc/zabbix/zabbix_agentd.conf.bak > /etc/zabbix/zabbix_agentd.conf

修改配置文件

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0        ##指定日志文件的大小,单位MB。0表示禁用日志轮转
ListenPort=10050    ##指定监听端口
StartAgents=3        ##Zabbix启动之后开启被动监控的进程数量,如果设置    为0,那么Zabbix被动监控被禁用
ListenIP=0.0.0.0        ##监听IP地址,默认为所有接口
Server=192.168.100.30        ##允许哪个Zabbix server的IP地址监控本机
#ServerActive=192.168.100.30        ##Zabbix 主动监控server的ip地址
Hostname=zabbix agent        
Include=/etc/zabbix/zabbix_agentd.d/*.conf    ##自定义配置文件

主动模式和被动模式的区别:

● 主动模式:Zabbix的agent端,也就是客户端,主动把自己监测到的数据,上报给Zabbix服务器,Zabbix服务器不需要向agent发起请求。

注意:ServerActive是主动模式开关,注释掉主动模式关闭;与Server不能同时配置。

●被动模式:Zabbix服务器向agent发送请求,告诉agnet我需要哪些数据,然后agnet执行相关操作,把执行结果返回给服务端。

注意:StartAgents=0表示被动模式关闭。

重启生效配置:

# systemctl restart zabbix-agent

查看日志: 

# tail -f /var/log/zabbix/zabbix_agentd.log

 

 

 查看端口10050是否启动

# netstat -lntp | grep zabbix

 

 

 Zabbix Web界面的使用管理操作

了解Web页面中的操作,如中文乱码处理、用户管理、主机和主机组的管理等

1. 首先设置中文

 

 

 

 

 

 

  解决中文乱码问题

从Windows控制面板找到字体,选择字体文件,拷贝到Zabbix服务器的/data/nginx/zabbix/fonts目录下。

 

 

 

将DejaVuSans.ttf字体备份起来,然后用simhei.ttf重命名成DejaVuSans.ttf

重新刷新页面后中文乱码消失:

 

 

 创建客户端监控主机

创建群组

 

 

 

 

 

 找到配置→主机→创建主机

 

 

 

 

接着配置主机链接模板,选择Template OS Linux,单击“添加”按钮。

 

 

 

 之后在最新数据中查看结果

 

 创建模板

选择配置→模板→创建模板→添加监控项

 

 

选择自带的监控项:

 

 

Zabbix自定义监控项

创建自定义监控脚本,并部署自定义监控项,实现监测。

配置自定义监控脚本,修改agent配置文件

# vi /etc/zabbix/zabbix_agentd.d/users.conf
UnsafeUserParameters=1
UserParameter=users, /bin/bash /scripts/user.sh        ##存放脚本位置 

配置监控脚本:

# mkdir /scripts
# vi /scripts/user.sh
#!/bin/bash
user=$(who |wc -l)
if [ $user -gt 3 ];then
        echo '1'
else
        echo '2'
fi

添加权限

# chown -R zabbix.zabbix /scripts/
# chmod 777 /scripts/user.sh

测试脚本

如果返回值为1说明在线用户超过3个,如果返回值为2,说明在线用户不超过3个;

生效配置

# systemctl restart zabbix-agent
# systemctl status zabbix-agent
# netstat -lntp | grep zabbix  ##查看端口是否都启动了

服务端测试

# zabbix_get -s [ip地址]  -k users 

 

zabbix_get命令是在server端用来检查agent端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据,以便判断问题症结所在。

Zabbix_get参数说明:

● -s --host:指定客户端主机名或者IP。

● -p --port:客户端端口,默认10050。

● -I --source-address:指定源IP,写上Zabbix server的IP地址即可,一般留空,服务器如果有多IP的时候,指定一个。

● -k --key:用户想获取的key

至于使用长参数还是短的,自己选择,我经常使用-s而不是-host,

如果不知道key参数可以使用 zabbix_agentd -p 命令寻找自己想要找的参数,如下:

 

 

进入Zabbix Web配置

流程:配置→主机→监控项→创建监控项;配置→主机→触发器→创建触发器。

具体配置参数如图所示

 

 

 

 

验证

客户端主机开多于三个用户,看是否会触发报警!

 

 

posted @ 2022-05-11 18:24  王路飞飞飞  阅读(337)  评论(0)    收藏  举报