zabbix监控搭建
Posted 噫噫噫呀呀呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix监控搭建相关的知识,希望对你有一定的参考价值。
目录
一、zabbix概述
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
二、zabbix功能
Zabbix 是一个高度成熟完善的网络监控解决方案,一个的软件包中包含了多种功能。
数据采集
可用性和性能检查;
支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
您可以参考后端数据库定义非常灵活的告警阈值,即触发器
高度可配置化的告警
可以根据递增计划、接收者、媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有用;
自动操作包含远程执行命令。
实时图形
使用内置图形功能可以将监控项实时绘制成图形。
Web 监控功能
Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
三、zabbix搭建
1、安装nginx
systemctl stop firewalld
setenforce 0
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
yum clean all
yum list
yum -y install nginx
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx
2、部署mariadb
yum -y install mariadb*
systemctl start mariadb.service
systemctl enable mariadb.service
netstat -natp | grep 3306
#mysql安全配置向导
mysql_secure_installation
3、部署php
yum -y install epel-release.noarch 多次安装
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql //安装PHP、语言和语言开发包、处理动态请求、支持图像化处理、可以处理多文本字符串
php -v //查看PHP版本
//修改php-fpm.d配置文件
vim /etc/php-fpm.d/www.conf
==8修改用户==
user = nginx
==10修改组==
group = nginx
//修改nginx主配置文件
vim /etc/nginx/conf.d/default.conf
//10 index.php
//30-36 取消注释
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
vim /etc/php.ini
//202 short_open_tag = On
//359 expose_php = Off
//368 max_execution_time = 300
//378 max_input_time = 300
//656 post_max_size = 16M
//799 upload_max_filesize = 2M
//800 always_populate_raw_post_data = -1
//877 date.timezone = Asia/Shanghai
systemctl start php-fpm
systemctl enable php-fpm
netstat -natp | grep 9000
4、测试连接数据库
vim /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
systemctl restart php-fpm.service
systemctl restart nginx
真机访问http://192.168.110.10/info.php
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','root','123456');
if ($link) echo '连接成功';
else echo '连接失败';
?>
==真机访问==
http://192.168.110.10/info.php
mysql -uroot -p123456
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on *.* to 'zabbix'@'%' identified by '123456';
flush privileges;
exit
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','zabbix','123456');
if ($link) echo 'zabbix成功';
else echo 'zabbix失败';
?>
==真机访问==
http://192.168.110.10/info.php
5、部署zabbix server
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
#多次安装
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
cd /usr/share/doc/zabbix-server-mysql-4.0.32/
zcat create.sql.gz | mysql -uzabbix -p zabbix
mysql -u zabbix -p 123456
use zabbix;
show tables;
#编辑zabbix服务端配置文件
vim /etc/zabbix/zabbix_server.conf
#定义日志文件位置和名称
//38 LogFile=/var/log/zabbix/zabbix_server.log
#定义日志文件大小,0表示不限制大小
//49 LogFileSize=0
#进程文件位置
//72 PidFile=/var/run/zabbix/zabbix_server.pid
#通信sock文件
//82 SocketDir=/var/run/zabbix
#数据库所在服务器,本地
//91 DBHost=localhost
#数据库名称
//100 DBName=zabbix
#数据库用户
//116 DBUser=zabbix
#数据库密码
//124 DBPassword=123456
#snmp协议日志位置
//356 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
#定义超时时间
//473 Timeout=4
#告警的脚本存放位置
//516 AlertScriptsPath=/usr/lib/zabbix/alertscripts
#扩展性脚本存放位置
//527 ExternalScripts=/usr/lib/zabbix/externalscripts
#定义慢查询时间
//563 LogSlowQueries=3000
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
netstat -napl | grep 10051
systemctl restart php
==真机访问==
http://192.168.110.10/zabbix
链接:zabbix.conf.php
提取码:yipx
cd /etc/zabbix/web
ls
压缩包
chmod +x zabbix.conf.php
systemctl restart php-fpm.service
systemctl start zabbix-service.service
重启登录
http://192.168.110.10/zabbix
6、配置代理端zabbix(192.168.110.20)
systemctl stop firewalld.service
setenforce 0
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum -y install zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
//98 Server=192.168.110.10 指向监控端地址
//139 ServerActive=192.168.110.10指向监控服务器
//150 Hostname=test 修改主机名
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
netstat -natp | grep 10050
7、配置告警自动发布邮件
首先,选择邮箱,开启pop3、smtp服务
QQ邮箱开启方式
在服务器上配置
server(192.168.110.10)
yum -y install mailx
vim /etc/mail.rc
#末行添加
set from=QQ号@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=QQ号@qq.com
set smtp-auth-password=授权码
set smtp-auth=login
#测试能否正常发送
echo 'hello wbw' | mail -s 'test' QQ号@qq.com
#编写发送邮件的shell脚本,一定要在这个目录下
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/
#测试脚本
. /usr/lib/zabbix/alertscripts/mailx.sh QQ号@qq.com "zabbix" "hello world"
8、Web 页面配置监控机制
ALERT.SENDTO
ALERT.SUBJECT
ALERT.MESSAGE
按照默认
服务器重启zabbix服务
server(192.168.110.10)
systemctl restart zabbix-*
代理端重启ssh服务,看是否能收到邮件
cilent(192.168.110.20)
systemctl restart sshd
以上是关于zabbix监控搭建的主要内容,如果未能解决你的问题,请参考以下文章
超详细配置Zabbix监控通过钉钉实现报警(3.4和4.0版本)