1、zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
2、zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
1、zabbix server与可选组件zabbix agent。
2、zabbix server:通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Windows,Linux等平台上。
3、zabbix agent:需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
4、zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
CPU负荷监控
内存使用监控
磁盘使用监控
网络状况监控
端口监视
日志监视
安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及web集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
1、服务器端配置文件zabbix_server.conf常用配置参数:
LogFile:设置服务端日志文件存放路径
ListenIP:设置服务端监听IP
ListenPort:设置服务端监听的端口号
PidFile :置服务端进程号文件存放路径
DBHost:指定zabbix的数据库服务器IP
DBName:指定zabbix使用的数据库库名
DBUser:指定zabbix数据库登录用户
DBPassword:指定zabbix数据库登录密码
DBPort:指定zabbix数据库端口号
User:设置zabbix以什么用户的身份运行
AlertScriptsPath:设置告警脚本存放路径
ExternalScripts:外部脚本存放路径
2、客户端配置文件zabbix_agentd.conf常用配置参数:
Server 指定zabbix服务器的IP或域名
ServerActive 指定zabbix服务器的IP或域名
Hostname 指定本机的主机名,此项必须与web界面配置项一致
UnsafeUserParameters 是否启用自定义监控项,可选值为{1
UserParameter 指定自定义监控脚本参数
LogFile 设置客户端日志文件存放路径
一、环境
- | IP | 安装的服务 |
---|---|---|
服务器(监控端) | 20.0.0.13 | lamp、zabber-server、zabber-agent |
客户端(被监控端) | 20.0.0.14 | zabber-agent |
二、部署lamp架构(服务器上)
#修改apache和php配置文件
vi /etc/httpd/conf/httpd.conf
ServerName www.aa.com:80
DirectoryIndex index.html index.php
vi /etc/php.ini
date.timezone = PRC
#关闭防火墙和核心防护
systemctl stop firewalld.service
setenforce 0
#开启apache和mariadb
systemctl start httpd.service
systemctl start mariadb.service
#验证服务的开启
netstat -anpt | grep 80
netstat -anpt | grep 3306
#初始化数据库
mysql_secure_installation
回车,Y,密码,重复密码,Y,n,Y,Y
#验证php网页是否可以开启
vi /var/www/html/index.php
<?php
phpinfo();
?>
#连接数据库,对zabbix用户授权
mysql -u root -p
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
flush privileges;
#验证php与mysql的联动性
<?php
$link=mysql_connect('192.168.1.11 ','zabbix','admin123');
if($link) echo "Success!!
";
else echo "Fail!!";
mysql_close();
?>
验证:http://20.0.0.14
三、部署zabbix服务器
#添加zabbix源
[root@zabbix-server ~]# cd /etc/yum.repos.d/ #导入epel.repo和 CentOS7-Base-163.repo
[root@zabbix-server yum.repos.d]# ls
backup CentOS7-Base-163.repo epel.repo local.repo repos.bak
[root@zabbix-server yum.repos.d]# yum clean all
[root@zabbix-server yum.repos.d]# yum makecache #建立缓存
#添加必要插件
[root@zabbix-server yum.repos.d]# yum install -y php-mbstring php-bcmath
#下载zabbix源,安装zabbix服务端软件
[root@zabbix-server yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@zabbix-server yum.repos.d]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent --nogpgcheck
#导入zabbix监控数据库
[root@zabbix-server yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -padmin123 zabbix
grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf //查看zabbix未注释的生效行
vi /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
100:DBName=zabbix
116:DBUser=zabbix
125:DBPassword=admin123 //修改此行即可
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
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai //修改时区,将此行注释去掉修改即可
vi /usr/share/zabbix/include/defines.inc.php //下面操作是修改图表中文乱码
113:define('ZBX_FONT_NAME', 'kaiti');
从微软系统C:\Windows\Fonts下复制相应的字体文件到 /usr/share/zabbix/assets/fonts 目录中注意字体名称要对应配置文件改为kaiti.ttf,且注意大小写
[root@zabbix-server yum.repos.d]# systemctl enable zabbix-server
[root@zabbix-server yum.repos.d]# systemctl start zabbix-server
[root@zabbix-server yum.repos.d]# netstat -anpt | grep zabbix //监听在10051端口上
[root@zabbix-server yum.repos.d]# systemctl restart httpd.service
四、安装登录
http://20.0.0.14/zabbix/
1、状态检查
2、连接数据库(输入密码:admin123)
3、zabbix服务器起名称(zabbix)
4、信息总览
5、完成
6、修改zabbix的监控语言
五、设置zabbix-agent(客户端)
1、设置yum源
[root@zabbix-client ~]# cd /etc/yum.repos.d/
[root@zabbix-client yum.repos.d]# ls
backup local.repo
[root@zabbix-client yum.repos.d]# vim zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
2、安装zabbix-agent
[root@zabbix-client ~]# yum install -y zabbix-agent --nogpgcheck
3、修改客户端配置
[root@zabbix-client ~]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=20.0.0.14 #服务器ip
123 StartAgents=3 ##如果为0 表示禁用
139 ServerActive=20.0.0.14
150 Hostname=client ##设置客户端在服务端上的名字
4、关闭防火墙和核心防护
[root@zabbix-client ~]# systemctl stop firewalld
[root@zabbix-client ~]# setenforce 0
5、启动服务
[root@zabbix-client ~]# systemctl enable zabbix-agent.service
[root@zabbix-client ~]# systemctl start zabbix-agent.service
[root@zabbix-client ~]# netstat -anpt | grep zabbix //默认监听在10050端口
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 65552/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 65552/zabbix_agentd
六、设置zabbix-agent(服务器上)
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=20.0.0.14
139 ServerActive=20.0.0.14
150 Hostname=server
[root@zabbix-server ~]# systemctl enable zabbix-agent.service
[root@zabbix-server ~]# systemctl start zabbix-agent.service
[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 23839/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 22089/zabbix_server
tcp6 0 0 :::10050 :::* LISTEN 23839/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 22089/zabbix_server
七、服务器端创建被监控主机与客户机
1、创建主机
2、配置主机信息
[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# vi /etc/mail.rc
#末尾添加
set bsdcompat
set from=604783724@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=604783724@qq.com
set smtp-auth-password=xlbmkltxlhuhbfaa #授权码
set smtp-auth=login
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vi 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
[root@zabbix-server alertscripts]# touch /tmp/mailx.log
[root@zabbix-server alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log
[root@zabbix-server alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@zabbix-server alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix
[root@zabbix-server alertscripts]# ./mailx.sh 604783724@qq.com "爆炸新闻" "隔壁的猫生了四胞胎"
八、网页上配置邮件报警
1、管理→报警媒体类型→创建媒体类型
2、管理→用户→点击Admin→报警媒介
3、配置→动作→创建动作
#添加动作触发条件
#添加操作内容
#添加恢复操作的内容
九、测试
#把客户端的网卡禁用
[root@zabbix-client ~]# ifconfig ens33 down
#等几分钟后,查看zabbix网页的监控信息,发现并未更新报错信息
#此时,不要慌,去看下报警媒介是否有问题
#果然!报警媒介没加载上,重新添加下
#此时,再刷新下zabbix网页的报错信息,发现问题出来了
#再回到客户机上,重启网卡,再刷新下zabbix网页的报错信息,发现问题已解决!
十、逃不过的排错之路
当我以为大功告成之时,细细一想,不对啊!邮件呢???
不要慌!!有错误,看日志!
报错信息:No media defined for user.
翻译一下:没有为用户定义媒体
还是用户的问题…在历经半小时的摸索后,发现了问题:
刚才添加报警媒介时,选错了类型:默认是Email,而我们前面配的一值是mail!
最终,我迎来了心心念念的报错邮件了~