一、Zabbix是什么
zabbix是一个基于web界面提供分布式系统键是以及网络监视功能的企业级开源解决方案。
zabbix是由2部分构成,分别是zabbix server与zabbix agent
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上
二、Zabbix的特点
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
三、Zabbix的主要功能
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
四、基于LNMP环境搭建Zabbix监控
1、安装Nginx
#下载nginx
[root@localhost ~]# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#创建nginx yum安装源
[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1#安装nginx
[root@localhost ~]# yum install -y nginx
#启动nginx
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl enable nginx
2、安装mysql
#此处安装的是mysqldb
#下载mariadb
[root@localhost ~]# yum install -y mariadb-server mariadb
#启动mysql
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# systemctl enable mariadb.service
#修改数据库密码
[root@localhost ~]# mysql_secure_installation
3、安装php
#配置环境
[root@localhost ~]# yum install -y epel-release
或
rpm -Uvh https://dl.fedoraproject.rog/pub/epel/epel-release-latest-7.noar.rpm
#创建yum仓库
[root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#安装php
[root@localhost ~]# yum install -y php72w php72w-devel php72w-fpm php72w-gd-mbstring php72w-mysql
#查看php版本
[root@localhost ~]# php -v
4、配置nginx支持php
[root@localhost ~]# vim /etc/php-fpm.d/www.conf
user = nginx #第8行修改成nginx
group = nginx #第10行修改成nginx
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
index index.php index.html index.htm; #第10行配置php请求被传送到后端的php-fpm模块,默认情况下php配置是被注释掉的,此处去掉注释并修改
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;
}#30-36行把fastcgi——param中的/scripts改为$document_root。root是配置php程序放置的根目录
[root@localhost ~]# vim /etc/php.ini
expose_php = Off #359行:隐藏php版本
short_open_tag = On #202行:支持php短标签#为PHP兼容zabbix进行修改,优化配置要求
max_execution_time = 300 #368行:执行时间
max_input_time = 300 #378行:接收数据等待时向
memory_limit = 128M #389行:每个脚本占用内存
post_max_size = 16M #656行:POST数据大小
upload_max_filesize = 2M #799行:下载文件大小
always_populate_raw_post_data = -1 #800行:可以用$HTTP_RAW_POST DATA
date.timezone = Asia/Shanghai #877行:时区
5、重启服务
[root@localhost ~]# systemctl restart php-fpm.service
[root@localhost ~]# systemctl enable php-fpm
#查看9000端口是否开启
[root@localhost ~]# netstat -natp | grep 9000
[root@localhost ~]# systemctl restart nginx
6、网页测试
[root@localhost ~]# vim /usr/share/nginx/html/info.php
<?php phpinfo(); ?>
#登录192.168.27.129/info.php
7、测试连接数据库
[root@localhost ~]# vim /usr/share/nginx/html/info.php
<?php $link=mysqli_connect('127.0.0.1','root' ,'123123' ); if ($link) echo "成功"; else echo "失败"; ?>
8、建立数据库及用户并授权
[root@localhost html]# mysql -uroot -p
MariaDB [mysql]> CREATE DATABASE zabbix CHARACTER set utf8 COLLATE utf8_bin;
MariaDB [mysql]> GRANT ALL PRIVILEGES ON . TO ‘zabbix’@’%’ IDENTIFIED BY ‘admin123’;
MariaDB [mysql]> FLUSH PRIVILEGES;
9、测试zabbix数据库连接
[root@localhost ~]# vim /usr/share/nginx/html/info.php
<?php $link=mysqli_connect('127.0.0.1','zabbix' ,'admin123' ); if ($link) echo "zabbix成功"; else echo "zabbix失败"; ?>
#如果出现连接失败的情况
#进入数据库
mysql -u root -p123123
#查看用户和地址
select user,host from mysql.user;
#删除空用户
MariaDB [(none)]> drop user ‘’@localhost.localdomain;
10、zabbix 部署
#下载zabbix并安装
[root@localhost html]# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@localhost html]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
#修改zabbix配置
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log #第38行
LogFileSize=0 #第49行
PidFile=/var/run/zabbix/zabbix_server.pid #第72行
SocketDir=/var/run/zabbix #第82行
DBHost=localhost #第91行
DBName=zabbix #第101行
DBUser=zabbix #第117行
DBPassword=admin123 #注释去掉,zabbix的密码 #第125行
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log #第357行
Timeout=4 #第475行
AlertScriptsPath=/usr/lib/zabbix/alertscripts #第518行
ExternalScripts=/usr/lib/zabbix/externalscripts #第529
LogSlowQueries=3000 #第565行
#授权
[root@localhost ~]# cp -r /usr/share/zabbix/ /usr/share/nginx/html/
[root@localhost ~]# chown -R zabbix:zabbix /etc/zabbix/
[root@localhost ~]# chown -R zabbix:zabbix /usr/share/nginx/
[root@localhost ~]# chown -R zabbix:zabbix /usr/lib/zabbix/
[root@localhost ~]# chmod -R 755 /etc/zabbix/web/
[root@localhost ~]# chmod -R 777 /var/lib/php/session/
#开启服务
[root@localhost ~]# systemctl restart zabbix-server.service
[root@localhost ~]# systemctl enable zabbix-server.service[root@localhost ~]# systemctl restart zabbix-agent.service
[root@localhost ~]# systemctl enable zabbix-agent.service[root@localhost ~]# systemctl restart zabbix-agent.service
[root@localhost ~]# systemctl restart php-fpm.service
[root@localhost ~]# systemctl restart nginx#查看10051端口是否开启
[root@localhost ~]# netstat -natp | grep 10051
#登录zabbix
登录192.168.27.129/zabbix
#默认用户名:Admin,密码:zabbix
11、客户端部署zabbix-agent
#关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
#下载安装zabbix-agent
[root@localhost ~]# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@localhost ~]# yum install -y zabbix-agent
#修改配置文件
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.200.11 # 指向监控服务器
ServerActive=192.168.200.11 # 指问监控服务器
Hostname=test1 #指定名称
Include=/etc/zabbix/zabbix_agentd.d/*.conf
Zabbix邮件报警功能
一、安装mailx的软件
[root@localhost ~]# yum install -y mailx
#修改配置文件
[root@localhost ~]# vim /etc/mail.rc
set from=1512417076@qq.com #发送的邮箱地址
set smtp=smtp.qq.com #发送的smtp格式
set smtp-auth-user=1512417076@qq.com #smtp的使用者
set smtp-auth-password=授权码 #授权码
set smtp-auth=login
#授权码可以去网易或者QQ邮箱的设置里面去寻找
#测试邮箱功能
[root@localhost ~]# echo “hello world” | mail -s "testmail"1512417076@qq.com
#编写发送邮件的脚本
[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
#必须在这个目录下创建脚本,否则zabbix无法识别到
[root@localhost alertscripts]# vim mailx.sh
#!/bin/bash
messages=`echo $3 | tr ‘\r\n’ ‘\n’`
subject=`echo KaTeX parse error: Can't use function '\r' in math mode at position 9: 2 | tr '\̲r̲\n' '\n'\` echo…{messages}" | mail -s “${subject}” $1 >>/tmp/mailx.log 2>&1
#创建日志[root@localhost alertscripts]# touch /tmp/mailx.log
#授权
[root@localhost alertscripts]# chown -R zabbix:zabbix /tmp/mailx.log
[root@localhost alertscripts]# chmod +x mailx.sh
[root@localhost alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix#测试脚本
[root@localhost alertscripts]# sh mailx.sh 675043472@qq.com “say hi” “hello world”
二、zabbix页面配置
第一步
管理–报警媒介类型–创建媒体类型
脚本参数:新增以下三个
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
服务器重启zabbix服务
systemctl restart zabbix-*
代理端重启ssh服务,看是否能收到邮件
systemctl restart sshd