资讯详情

zabbix监控部署及其报警机制

zabbix监控部署及其报警机制

  • 一、zabbix简介
    • 1、关于zabbix
    • 2、zabbix主要功能
  • 二、部署LNMP zabbix
    • 1、LNMP安装环境
      • 1)安装nginx
      • 2)安装mysql 5.7
      • 3)安装php 7.2
      • 4)配置nginx支持php
      • 5)配置php
      • 6)测试首页
      • 7)数据库授权
      • 8)解决本地无法登录的问题(连接成功,可忽略)
    • 2、部署zabbix Server
      • 1)安装zabbix导入数据库脚本
      • 2)修改zabbix配置文件
      • 3)授权和开放服务
      • 4)打开浏览器验证
    • 3.配置代理端—即被控服务器
      • 1)安装zabbix存储库与agent代理服务及修改代理配置文件
      • 2)重启代理服务
  • 三、配置邮件报警功能
    • 1.获取邮箱客户端授权码
    • 2.安装并配置邮箱发送功能
    • 3试发信正常
    • 4.编写邮件脚本
    • 5、在服务器WEB页面上配置
      • 1)定义报警媒体类型
      • 2)指定用户
      • 3)配置监控端
      • 4)配置触发动作和条件
      • 5)重启zabbix在监控端停止服务sshd服务验证

一、zabbix简介

1、关于zabbix

Zabbix 是企业级分布式开源监控解决方案。

Zabbix 该软件可以监控许多网络参数和服务器的健康和完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 提供基于存储的数据的优秀报表和数据可视化功能。这些功能使 Zabbix 成为容量规划的理想选择。

Zabbix 支持主动轮询(polling)和被动捕获(trapping)。zabbix由两部分组成,zabbix server与可选组件zabbix agent。Zabbix所有报表、统计数据和配置参数都可以基于 Web 访问前端页面。基于 Web 前端页面确保您可以访问您监控的网络状态和服务器健康状况。适当配置后,Zabbix 可以在监控 IT 在基础设施方面发挥着重要作用。同样适用于服务器少的小组织和服务器多的大企业。

Zabbix 由 Alexei Vladishev 目前成立的公司—— Zabbix SIA 积极开发、更新和维护, 并为用户提供技术支持服务。

Zabbix 一个高度成熟完善的网络监控解决方案,一个软件包包包含多种功能。 所有的监控和协议都离不开SNMP协议。

2、zabbix主要功能

  • 您可以参考后端数据库中非常灵活的报警阈值,即触发器

  • 报警通知可根据递增计划、接收者、媒体类型自定义发送;
  • 使用宏变量可以使警告通知更有效、更有用;
  • 自动操作包括远程执行命令。

  • 使用内置图形功能实时绘制监控项。

  • Zabbix可以追踪模拟鼠标在 Web 查看网站上的点击操作 Web 网站的功能和响应时间。

  • 可将多个监控项组合到单个视图中,创建自定义图表;
  • 网络拓扑图;
  • 自定义聚合图形和幻灯片演示以仪表盘风格展示;
  • 报表;
  • 监控资源的更高层次展示视图(业务视图)。

  • 存储在数据库中的数据;
  • 历史配置;
  • 内置数据管理机制(housekeeping)。

  • 主机添加监控设备;
  • 一旦主机添加到数据库中,将收集数据进行监控;
  • 监控设备使用模板。

  • 分组检查模板;
  • 模板可以关联模板,继承相关模板的属性。

  • 网络设备自动发现;
  • Zabbix Agent 发现设备后自动注册;
  • 自动发现文件系统、网络接口和 SNMP OIDs 值。

  • 基于 PHP 的 Web 前端;
  • 任何地方都可以访问;
  • 您可以定制自己的操作方法;
  • 您可以通过审计日志查看您的操作。

  • Zabbix API 为 Zabbix 批量操作、第三方软件集成等用途提供可编程接口。

  • 安全用户身份验证;
  • 指定用户只能在指定权限范围内查看视图。

  • 部署在被监控对象上;
  • 支持 Linux 和 Windows ;

  • 为了更好的性能和更少的内存占用,使用 C 语言编写;
  • 便于移植。

  • 使用 Zabbix Proxy 可轻松实现分布式远程监控。

二、部署LNMP zabbix

环境搭建

主机 IP地址 软件
server 192.168.140.11 LNMP zabbix
client(node) 192.168.140.12 zabbix

server:192.168.140.11 这个部署LNMP zabbix除了配置代理端,它们都部署在服务器上

1、LNMP安装环境

然后修改主机名称关闭防火墙及安全机制

hostnamectl set-hostname server
su
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

1)安装nginx

wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm //从官网上下载nginx的rpm包

vim /etc/yum.repos.d/nginx.repo //手动创建nginx yum安装源
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

yum clean all
yum list

其中baseul=http://nginx.org/packages/OS/OSRELEASE/$basearch/,把”OS”替换成” thel”或” centos”,把”OSRELEASE”替换成”6”或”7”

安装并启动nginx

yum install nginx -y

systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx
//如果企业中开着软件防火墙,可以使用下面两条命令允许使用nginx通过
firewall-cmd --permanent --add-service=http --zone=public
firewall-cmd --reload

真机上访问nginx主页

http://192.168.140.11

2)安装mysql 5.7

yum install -y mariadb-server mariadb
systemctl enable mariadb.service
systemctl start mariadb.service

mysql_secure_installation
mysql -uroot -p

3)安装php 7.2

//使用rpm或yum下载epel源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
或
yum install epel-release -y

//yum仓库建立
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #建立yum的webtatic源

//等待时间取决于网络
yum install -y php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql
----------------
php72w是本身服务包;
php72w-devel用于构建PHP扩展所需的文件;
php72w-fpm是PHP FastCGI进程管理器;
php72w-gd是PHP应用程序的模块,用于使用gd图形库;
php72w-mbstring模块是需要多字节字符串处理的PHP应用程序的模块;
php72w-mysql是数据库mysql驱动模块,在mysql的官网下载的
————————————————

php -v  //查看php版本

4)配置nginx支持php

修改php-fpm配置文件

vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件,把apache改为nginx

//8 user = nginx //属主
//10 group = nginx //属组
vim /etc/nginx/conf.d/default.conf  #配置location,在index中添加index.php。以支持index.php的首页

/10 index index.php index.html index.htm;
//配置php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改
/30~36
location ~ \.php$ {
  root /usr/share/nginx/html;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

//把fastcgi_param中的/scripts改为$document_root。root是配置php程序放置的根目录。

5)配置php

vim /etc/php.ini   #修改PHP配置文件

/202 short_open_tag = On /支持php短标签
/359 expose php = Off /隐藏php版本
//以下为zabbix优化配置要求
/368 max_execution_time = 300 //执行时间
/378 max_input_time = 300 //接收数据等待时间
/389 memory_limit = 128M /每个脚本占用内存
/656 post_max_size = 16M //POST数据大小
/799 upload_max_filesize = 2M //上传文件大小
/800 always_populate_raw_post_data = -1 //需要添加可以用$HTTP_RAW POST_DATA接收post raw data(原始未处理数据)
/877 date.timezone = Asia/Shanghai //时区

systemctl start php-fpm
systemctl enable php-fpm
netstat -natp | grep 9000

systemctl restart nginx

6)测试首页

vim /usr/share/nginx/html/info.php
<?php
phpinfo();
?>

浏览器端访问

http://192.168.140.11/info.php

测试连接数据库

vim /usr/share/nginx/html/info.php

<?php
$link=mysqli_connect('127.0.0.1','root','123123');
if ($link) echo "连接成功!!!";
else echo "连接失败!!!";
?>

注: mysql_connect扩展自PHP 5.5.0起已废弃,改用mysqli或pdo_mysql

浏览器端再访问或者刷新

http://192.168.140.11/info.php

连接数据库成功

7)数据库授权

mysql -u root -p
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';

flush privileges;

collate的作用: 对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。COLLATE会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCT、GROUP BY、HAVING语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也会影响索引创建,只不过这种影响我们感知不到。总之,凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关。

vim /usr/share/nginx/html/info.php

<?php
$link=mysqli_connect('127.0.0.1','zabbix' , 'admin123');
if ($link) echo "Zabbix数据库连接成功!";
else echo "Zabbix数据库连接失败!";
?>

浏览器端再访问或者刷新

http://192.168.140.11/info.php

8)解决本地无法登录问题(连接成功,可忽略)

mysql -u root -p
select user,host from mysql.user;              //有空用户名称占用导致本地无法登录远程可登录
drop user ''@localhost;
drop user ''@server;
flush privileges;

浏览器端访问

http://192.168.2.6/info.php

2、部署zabbix Server

1)安装zabbix及导入数据库脚本

zabbix官网https://www.zabbix.com/download
//安装一个zabbix仓库;
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm //网络问题,需要多安装几次
//安装zabbix server,Web前端,agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

//导入数据库脚本
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix //生成数据库文件,注意密码不要输成root的
mysql -uzabbix -p
use zabbix;
show tables;

2)修改zabbix配置文件

vim /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log //日志文件位置
49:LogFileSize=0 //日志文件大小;设置为0,不限制日志文件大小
72:PidFile=/var/run/zabbix/zabbix_server.pid //pid文件位置
82:SocketDir=/var/run/zabbix //套接字文件位置;套接字是计算机之间进行通信的一种约定或一种方式
91 DBHost=localhost  //注释去掉,连接本地数据库
101:DBName=zabbix  //数据库名
117:DBUser=zabbix  //数据库用户名
124:DBPassword=admin123  //修改本行,登录数据库密码
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log  //采用的网络管理协议SNMP
473:Timeout=4  //超时时间
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts  //脚本文件
529:ExternalScripts=/usr/lib/zabbix/externalscripts  //扩展脚本文件
565:LogSlowQueries=3000  //慢日志时间,超过3000秒记录

grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
-------------------可选择操作-------
vim /usr/share/zabbix/include/defines.inc.php //修正图表中文乱码
:%s /graphfont/kaiti/g //从微软系统下复制相应的字体文件到/usr/share/zabbix/fonts目录中注意字体名称要对应配置文件,且注意大小写cp STKAITI.TTF /usr/share/zabbix/fonts/

3)赋权及开启服务

systemctl stop firewalld
iptables -F

cp -r /usr/share/zabbix/ /usr/share/nginx/html/
chown -R zabbix:zabbix /etc/zabbix
chown -R zabbix:zabbix /usr/share/nginx/
chown -R zabbix:zabbix /usr/lib/zabbix/
//处理指定目录以及其子目录下的所有文件'

chmod -R 755 /etc/zabbix/web/
chmod -R 777 /var/lib/php/session/
//递归修改文件权限

systemctl start zabbix-server.service
systemctl enable zabbix-server.service
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -natp | grep 10051 #server的端口
netstat -natp | grep 10050 #agent的端口

systemctl restart php-fpm.service
systemctl restart nginx

4)打开浏览器验证

http://192.168.140.11/zabbix
cd /etc/zabbix/web/
ls
把zabbix.conf.php拖进来
ls
chmod +x zabbix.conf.php
ls
systemctl restart zabbix-server.service

打开浏览器

http://192.168.140.11/zabbix

设置为中文界面

3、配置代理端----就是被控服务器

1)安装zabbix存储库与agent代理服务及修改代理配置文件

client:192.168.140.12 如果服务器也需要被自己监控也需要安装–zabbix-agent

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm //安装zabbix源
yum install -y zabbix-agent  //安装zabbix代理端,即被监控端

vim /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid //pid文件位置
32:LogFile=/var/log/zabbix/zabbix_agentd.log  //日志文件位置
43:LogFilesize=0  //日志文件大小;设置为0,不限制日志文件大小
98:Server=192.168.140.11 //指向监控服务器
139:ServerActive=192.168.140.11 //指向监控服务器
150:Hostname=client //名称
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf  //包含zabbix_agentd.d目录下的所有.conf结尾的配置文件

grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf

2)重启代理服务

systemctl stop firewalld
setenforce 0
systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.service
netstat -anpt | grep zabbix //监听在10050端口

三、配置邮件报警功能

1、获取邮箱的客户端授权码

2、安装并配置邮箱发送功能

server:192.168.140.11

yum install -y mailx 

vim /etc/mail.rc  //注意网易邮箱需要开启客户端授权码进行第三方登录
----文件未尾新增---
set from=1418183423@qq.com
set smtp=1418183423.qq.com
set smtp-auth-user=1418183423@qq.com
set smtp-auth-password=授权码
set smtp-auth=login

3、测试发信正常

echo "hello world" | mail -s "zb-test" 1418183423@qq.com 

4、编写发邮件脚本

cd /usr/lib/zabbix/alertscripts

vim mailx.sh
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

touch /tmp/mailx.log
chown -R zabbix:zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/

./mailx.sh 1418183423@qq.com "主题" "内容”//测试发邮件脚本是否可以正常工作

进入邮箱刷新查看

5、在服务器WEB页面上配置

1)定义报警媒体类型

管理-》报警媒体类型-》创建媒体类型-》
名称:Mail-Test
类型:脚本
脚本名称:mailx.sh
脚本参数://新增以下三个参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2)指定用户

管理-用户-点击Admin-报警媒介:
类型:Mail-Test //调用上面的脚本
收件人:1418183423@qq.com

其它默认-保存

3)配置被监控端

配置--->主机--->创建主机
主机:
主机名称:client
群组:linux servers
agent代理程序的接口:192.168.140.12

模板:
链接指示器:Template App SSH Service

4)配置触发动作和条件

配置-》动作-》创建动作-》删除默认标签,修改触发条件

名称:Mailx
条件A主机群组=Linux servers

操作-》如下配置
默认操作步骤持续时间60
默认接收人: {
    
       TRIGGER.STATUS}:{
    
       TRIGGER.NAME}

默认信息:
告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{
    
       TRIGGER.SEVERITY)
告警信息:{
    
       TRIGGER.NAME}:{ITEM.VALUE}
事件ID:{EVENT.ID}
操作细节:-》

操作类型:发送消息
发送到用户: Admin (zabbix Administrator)
仅送到:Mail-Test //一定要配置否则邮件发送不成功

恢复操作:{
    
       TRIGGER.STATUS}:{
    
       TRIGGER.NAME}
恢复主机:{HOST.NAME}
恢复IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{
    
       TRIGGER.SEVERITY}
恢复信息:{
    
       TRIGGER.NAME}:{ITEM.VALUE}
恢复ID:{EVENT.ID}
操作细节:
操作类型:发送消息
发送到用户: Admin (Zabbix Administrator)
仅送到:Mail-Test      //一定要配置否则邮件发送不成功

5)重启zabbix服务,并在被监控端停止sshd服务验证

systemctl restart zabbix-server
systemctl restart zabbix-agent.service

停止监控的sshd服务,验证是否发送服务down的邮件

systemctl restart zabbix-agent.service
systemctl stop sshd

systemctl restart sshd

标签: 1414zb4m连接器1619zb4m连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台