zabbix监控
时间:2023-02-26 12:30:01
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协议。
主要功能
数据采集
灵活的阈值定义
高度可配置的报警
实时图形
Web 监控功能
可视化选项丰富
可视化选项丰富
部署LNMP zabbix
LNMP安装环境
修改主机名称后,关闭防火墙和安全机制
hostnamectl set-hostname server
su
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
安装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
安装并启动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
安装mysql 5.7
yum install -y mariadb-server mariadb
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation
mysql -uroot -p
安装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版本
配置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 d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
include fastcgi_params;
}
//把fastcgi_param中的/scripts改为$document_root。root是配置php根目录放置在程序中。
配置php
vim /etc/php.ini #修改PHP配置文件
/202 short_open_tag = O /支持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
部署zabbix Server
安装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;
修改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
赋权及开启服务
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
配置代理端----就是被控服务器
安装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
重启代理服务
systemctl stop firewalld
setenforce 0
systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.service
netstat -anpt | grep zabbix //监听在10050端口
配置邮件报警功能
获取邮箱的客户端授权码
安装并配置邮箱发送功能
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
测试发信正常
echo “hello world” | mail -s “zb-test” 1418183423@qq.com
编写发邮件脚本
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 “ m e s s a g e s " ∣ m a i l − s " {messages}" | mail -s " 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 “主题” "内容”//测试发邮件脚本是否可以正常工作
在服务器WEB页面上配置
定义报警媒体类型
管理-》报警媒体类型-》创建媒体类型-》
名称:Mail-Test
类型:脚本
脚本名称:mailx.sh
脚本参数://新增以下三个参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
指定用户
管理-用户-点击Admin-报警媒介:
类型:Mail-Test //调用上面的脚本
收件人:1418183423@qq.com
其它默认-保存
配置被监控端
配置—>主机—>创建主机
主机:
主机名称:client
群组:linux servers
agent代理程序的接口:192.168.140.12
模板:
链接指示器:Template App SSH Service
配置触发动作和条件
配置-》动作-》创建动作-》删除默认标签,修改触发条件
名称: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 //一定要配置否则邮件发送不成功
重启zabbix服务,并在被监控端停止sshd服务验证
监控端
systemctl restart zabbix-server
systemctl restart zabbix-agent.service
被监控端
停止监控的sshd服务,验证是否发送服务down的邮件
systemctl restart zabbix-agent.service
systemctl stop sshd
被监控端
systemctl restart sshd