Zabbix 3.4+SNMP

部署网站架构(LNMP)

LNMP

“L”表示linux系统,“N”表示nginx网站服务,“M”表示mysql/mariadb数据库,“P”表示PHP

更改主机名

hostnamectl set-hostname zabbixserver

安装部署LNMP部署的依赖包

yum install -y gcc pcre-devel openssl-devel

部署nginx服务

安装wget

yum install -y wget

源码安装nginx

下载源码
wget -P /root https://nginx.org/download/nginx-1.12.2.tar.gz

解压源码包
tar -zxvf nginx-1.12.2.tar.gz

进入源码包进行源码编译安装
cd /nginx-1.12.2
./configure //检测环境
make && make install //编译并安装 

启动服务

/usr/local/nginx/sbin/nginx

访问网页进行验证

echo "<marquee><font color=red><h1>你好,世界<marquee>" > /usr/local/nginx/html/index.html

此时我们使用浏览器会发现中文变成了乱码,我们需要修改一个nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

39行:#charset koi8-r; 这一行取消注释,并修改为 charset UTF-8;

重启服务
将服务重启的目录进行一个软连接到root目录下面

ln -s /usr/local/nginx/sbin/nginx /root/
/root/nginx -s reload

如果访问还是乱码,记得清除浏览器的访问缓存

部署数据库

安装数据库

yum install -y mariadb mariadb-server mariadb-devel

启动数据库

systemctl start mariadb

部署PHP

安装PHP

yum install -y php php-mysql php-fpm

启动PHP

systemctl start php-fpm

配置nginx支持PHP动态网站

修改nginx配置文件

让nginx能够处理PHP动态页面,PHP是写网页的语言

vim /usr/local/nginx/conf/nginx.conf

取消65-71行的注释,并修改参数
server{
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi.conf;
}
)

配置nginx支持PHP动态网站,因为有大量的PHP脚本需要执行,因此还需要开启nginx的各种fastcgi缓存,加速PHP脚本的执行速度

vim /usr/local/nginx/conf/nginx.conf
server{
fastcgi_buffers 8 16k; //缓存PHP生成的页面内容,8个16k
fastcgi_buffer_size 32k; //缓存PHP生成的头部信息
fastcgi_connect_timeout 300; //连接PHP的超时时间
fastcgi_send_timeout 300; //发送请求的超时时间
fastcgi_read_timeout 300; //读取请求的超时时间
}

写PHP网页进行验证

vim /usr/local/nginx/html/test.php

<?php
$x=hello;
echo $x;
?>

浏览器url输入”IP地址/test.php“进行测试

部署zabbix的server端

安装zabbix需要的依赖包

yum install -y net-snmp-devel curl-devel libevent-devel

源码安装zabiix

源码包下载
wget -P /root https://cdn.zabbix.com/zabbix/sources/oldstable/3.4/zabbix-3.4.15.tar.gz

解压源码包
tar -zxvf zabbix-3.4.15.tar.gz
检测环境,指定安装功能
cd zabbix-3.4.15/
./configure --enable-server \ //zabbix服务端软件
--enable-agent \ //zabbix被监控端软件
--with-mysql=/usr/bin/mysql_config \ //配置mysql——config路径
--with-net-snmp \ //zabbix通过snmp监控其他设备
--with-libcurl //zabbix通过curl连接http,ftp等服务

编译安装
make&&make install

编译安装zabbix报错

报错代码:parse.c:391:2: error: ‘for’ loop initial declarations are only allowed in C99 mode for(int i = ctx->ops.values_num - 1; i >= 0; i --)

报错背景

编译安装zabbix
执行完./configure
make install的时候报错

解决方法

这句话的意思是,直接在for循环中声明变量只在C99模式下允许的。这是什么意思?
这是因为,部分人使用的编译器是老版本的(一般都是C89的,例如:gcc编译器
而这种直接在for循环中声明变量的方法是C99后来添加的,所以在C89模式编译就过不去,必须换C99编译才可以

在执行./configure之前设置一个环境变量从新编译即可通过

export CFLAGS="-std=gnu99"

配置mysql数据库

创建一个数据库

创建一个名为zabbix的数据库,让zabbix把监控到的数据放进这个数据库里面

mysql
create database zabbix character set utf8;

mysql用户授权

zabbix需要把数据存放在数据库里面,但是数据库里面默认只允许root用户存储数据,所以我们需要创建授权一个用户

grant all on zabbix.* to zabbix@"localhost" identified by "zabbix";

zabbix.* 表示zabbix数据库中的所有表

这条命令行表示允许zabbix用户在本地进行登录管理zabbix数据库中的所有表,并且这个用户的密码设置为zabbix

测试连接数据库

mysql -uzabbix -pzabbix
use zabbix;

能够进入到之前创建的zabbix数据库说明用户授权完成

向数据库导入表格

现在只创建了数据库,但是zabbix的监控数据不知道如何往数据库里面存储,存储数据是需要创建表格的,但是zabbix的源码包里面官方已经给你设计了表格,不需要手动创建

官方设计好的表格在zabbix源码包里面,三张表格名字为data.sql,images.sql,schema.sql,并且导入表格是有顺序的,先导入schema.sql,再导入images.sql,最后再导入data.sql,从后往前的顺序进行导入

cd zabbix-3.4.15/database/mysql
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql

部署zabbix的web界面

zabbix的web界面官方也已经设计好了在zabbix的源码包里

cd zabbix-3.4.15/frontends/php/
cp -r * /usr/local/nginx/html/
chmod -R 777 /usr/local/nginx/html/*

修改zabbix的server端的配置文件

此时zabbix还不知道数据库是谁,我们需要去指定zabbix去连接数据库时相关参数

vim /usr/local/etc/zabbix_server.conf
DBHost=localhost //数据库主机,默认该行被注释
DBName=zabbix //数据库名称
DBUser=zabbix //数据库账户
DBPassword=zabbix //数据库密码,默认改行被注释
LogFile=/tmp/zabbix_server.log //日志文件位置

创建zabbix启动的系统用户

zabbix服务在启动之前必须使用名为zabbix系统用户来进行启动启动

useradd -s /sbin/nologin zabbix

启动服务

zabbix_server

查看是否启动成功

ss -anptul | grep zabbix
tcp LISTEN 0 128 *:10051

注意:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,一定要先使用killall zabbix_server关闭服务之后,再重新启动一次

linux自带的yum源安装的mariadb版本可能过低,导致无法启动zabbix服务,需要修改yum源安装更高版本的mariadb版本,可以参考[[mariadb高版本yum安装]]

部署zabbix的agent端

修改zabbix的agent端的配置文件

vim /usr/local/etc/zabbix_agented.conf

Server=192.168.134.139 //允许哪些主机来监控本机(因为现在是自己监控自己,所以IP地址是自己)
LogFile=/tmp/zabbix_agentd.log //日志文件位置
ServerActive=127.0.0.1,192.168.134.139 //允许哪些主机通过主动模式监控本机
Hostname=zabbixserver //设置本机主机名
UnsafeUserParameters=1 //是否允许自定义key,默认值为0,改成1,该行默认被注释

启动服务

zabbix_agentd

查看服务状态

ss -anptul | grep zabbix_agent
tcp LISTEN 0 128 *:10050

注意:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_agentd,一定要先使用killall zabbix_agentd关闭服务之后,再重新启动一次

配置zabbix的初始化页面

访问初始化页面

使用浏览器输入"192.168.134.139/setup.php"进行访问,如果访问的时候,网站页面显示“minimum required php version is 7.4.0”说明PHP的版本太低了,要高于等于7.4.0。安装高版本的PHP请参考[[使用yum安装指定版本的php]]

image.png

配置PHP先决条件

image.png

vim /etc/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai

重启PHP服务

systemctl restart php-fpm

安装zabbix需要软件包

重启完成php之后我们刷新网页继续访问会发现还是有些缺少软件包的条件没有满足,我们安装即可

yum install -y php-gd php-xml php-bcmatch php-mbstring php-bcmath

安装完成之后我们重启php,刷新页面最后发现LDAP的条件没有满足,这个条件是可有可无的。LDAP叫做统一用户认证,专门用来存放和管理账户的。如果没有部署LDAP,我们可以吧账户存放在数据库里面
image.png

配置数据库的参数

image.png
Database host表示部署数据库服务器的IP地址,这边布置在本机,所以使用localhost,修改完成之后只需要一直下一步即可

访问zabbix管理页面

默认zabbix软件提供用户认证,默认的用户名为admin,默认的密码为zabbix,默认界面为英文,我们修改为中文
image.png

image.png

默认监控是没有启用的,我们需要进入配置页面手动启用
image.png

到此为止,zabbix算是部署完成,配置完成之后我们今后只需要输入192.168.134.139/index.php直接来进行访问即可

配置zabbix监控snmp

路由交换设备启用snmp

如果客户端想要被监控,就必须要安装zabbix的agent端。如果想要监控交换机和路由器,就只需要在设备上面启用snmp即可。注意:监控的设备一定要和zabbix服务器在同一个网段下

我们配置需要监控的路由交换设备。给它们启用snmp
image.png

en
conf ter
snmp-server community public ro //配置只读通信字符串
snmp-server community public rw //配置读写通信字符串
snmp-server enable traps //配置网关SNMP TRAP
snmp-server host 192.168.134.139 rw //配置网关工作站地址
end

修改zabbix服务器的snmp配置文件

定义可以查看的snmp的范围

vim /etc/snmp/snmpd.conf

修改完成之后重新启动snmp

systemctl restart snmpd

安装snmp-utils软件包,并抓取数据

安装snmp-utils软件包

我们此时需要监控三层交换机,监控三层交换机我们就需要获取它的数据,此时就需要安装snmp-utils软件包,这是一个抓取数据的软件包

yum install -y net-snmp-utils

抓取数据

snmpwalk -v 2c -c public 192.168.134.60

2c表示snmp的版本号

public表示密钥,密钥对应的是snmp里面的团体名

配置管理页面监控

image.png

主机名称随便填写,添加组是为了方便管理
image.png | 1000

接下来我们开始选择监控的模板,一般选择这两个通用的模板
image.png | 1000

解决zabbix中文乱码

中文乱码现象
image.png | 1000

安装语言包

yum install -y wqy-microhei-fonts

拷贝语言文件替换原有文件

cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/local/nginx/html/fonts/DejaVuSans.ttf

刷新页面验证
image.png

配置zabbix的监控报警

配置邮件报警

image.png | 1000

image.png | 1000
localhost表示本机是邮件服务器
root@localhost表示以root的身份去发送邮件

配置admin超级管理员用户去发送邮件,并且设置发送给谁
image.png | 1000

image.png | 1000

想给谁发就设置这个参数
image.png

配置配置触发什么条件的时候才给你发送邮件消息
image.png | 1000

这边我们选择全部勾选上
image.png | 1000

我们继续配置发送邮件的时间间隔
image.png
这边我们配置出现报警每60s发送一次,只要出现错误就会一直发送邮件,直到解决问题为止

查看收到的邮件消息

yum install -y mailx
mail

zabbix总结

SNMP叫做简单网络管理协议,主要的作用是收集设备里的信息(例如:带宽,接口状态,CPU使用率,内存使用率等)然后传递到流量监控服务器里并实现一个报警的功能

SNMP设计之初主要是用于自动下发配置的,完成自动化部署。并不是只是为了收集设备的信息。常见的类型功能的还有华为的Agile Controller(敏捷控制器)中的一个南向协议(SNMP协议)来进行下发配置。

类似zabbix的功能的开源软件还有nagios,cacti(仙人掌),还有HC3的监控软件IMC,华为的监控软件eSight,windows常用的监控软件PRTG。

大的互联网公司都是使用开源的监控软件,比如说腾讯使用的监控系统是TMP

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孑然i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值