准备环境:
需要公网环境,即两块网卡上网。仅主机模式不要设置网关。
systemctl stop firewalld
setenforce 0
首先搭建LAMP
yum install -y
httpd
mariadb-server mariadb
php
php-mysql
php-gd
libjpeg*
php-ldap
php-odbc
php-pear
php-xml
php-xmlrpc
php-mhash
vi /etc/httpd/conf/httpd.conf
ServerName www.aa.com //修改为主机名
DirectoryIndex index.html index.php //修改
vi /etc/php.ini
date.timezone = PRC //修改为中国时区
systemctl start httpd
systemctl start mariadb
netstat -anpt | grep 80
netstat -anpt | grep 3306
mysql_secure_installation //初始化mysql数据库,并配置root用户密码
设置Apache能够支持php语言
vi /var/www/html/index.php
< ?php
phpinfo();
?>
浏览器测试:http://192.168.80.102/ 会看到下面内容
mysql -u root -p123 //root用户登陆数据库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; //创建zabbix数据库(中文编码格式)
MariaDB [(none)]> grant all on zabbix.* to ‘zabbix’@’%’ identified by ‘admin123’; //授予zabbix用户zabbix数据库的所有权限,密码admin123
MariaDB [(none)]> flush privileges; //刷新权限
退出数据库,测试php与mariadb是否联通:
vi /var/www/html/index.php
删除里面已有的内容
添加以下内容:
如果联通,我们会看到如下图所示:
——————————到此LAMP架构完成——————————
下面开始部署zabbix server
yum install lrz* -y 安装上传下载工具命令
把以下的软件包放进虚拟机中:
php-mbstring-5.4.16-42.el7.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm
安装所需的软件包及yum源:
rpm -ivh php-bcmath-5.4.16-42.el7.x86_64.rpm --force --nodeps
rpm -ivh php-mbstring-5.4.16-42.el7.x86_64.rpm --force --nodeps
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //会自动生成yum源文件,保证系统可以上网
yum install zabbix-server-mysql zabbix-web-mysql -y //安装依赖包
zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p -h 192.168.80.100 zabbix
//以上为导入数据到数据库zabbix中(最后一个zabbix是数据库zabbix),且因为用户zabbix是%(任意主机),所以登录时需要加上当前主机ip(-h 192.168.80.102),密码是用户zabbix登陆密码admin123
vi /etc/zabbix/zabbix_server.conf //配置数据库用户及密码
修改如下配置代码行:
DBPassword=admin123 //修改125行,设置密码
grep -n ‘^’[a-Z] /etc/zabbix/zabbix_server.conf //检查上面的配置文件得到下面内容,保证内容一致,若不一致,需进入上面 的配置文件进行修改。
vi /etc/httpd/conf.d/zabbix.conf //修改时区
php_value date.timezone Asia/Shanghai
systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix //监听在10051端口上,如果没监听成功,可重启zabbix-server服务试试
systemctl restart httpd
访问http://192.168.80.102/zabbix/
//注意这里IE浏览器打不开,最好用谷歌或者360等浏览器
注:
Database type 数据库的类型
Database host 数据库地址
Database port 数据库端口
Database name 数据库名称
User 数据库用户
Password 数据库用户的密码
注:
Host zabbix服务的主机地址
Port zabbix服务的端口号
Name zabbix的服务名(自定义)
默认用户名:Admin //注意Admin是大写的A,图中是错误的写法
密码:zabbix
设置中文环境:Administrator-Users-点击用户Admin-在语言中设置(选择Chinese(zh_CN))-再点击update,效果如下:
—————配置代理端(被监控端)—————
如果监控服务器也需要被自己监控也需要安装——zabbix-agent插件
systemctl stop firewalld
setenforce 0
安装zabbix-agent
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //所需的源
yum install -y zabbix-agent
备份并更改zabbix-agent配置文件
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf_$(date +%F)
vi /etc/zabbix/zabbix_agentd.conf //配置zabbix agent
修改为如下代码行:
98:Server=192.168.80.102 修改
139:ServerActive=192.168.80.102 修改
150:Hostname=www.andrew.com 修改
注:修改agent配置文件指向服务端
grep -n ‘^’[a-Z] /etc/zabbix/zabbix_agentd.conf
systemctl enable zabbix-agent
systemctl restart zabbix-agent
netstat -anpt | grep zabbix //监听在10050端口
web界面添加客户机的监控:
1、界面操作:配置–主机—创建主机
填写客户机信息
注:
主机名称:该主机名是真实的,是被监控的服务器的主机名,而且服务端必须能解析到
可见的名称:该名称为web界面上线是的名称,相当于别名
群组:选择要将该主机创建在哪个主机组中
agent代理程序的接口:此处的ip地址为被监控端的真实ip地址
代理的端口默认都为10050,如果修改了则需要设置为对应的端口
选择要监控的模块,选择要监控哪些服务等
注,选择完后,一定要点击添加,再点更新,不然没模块没添加成功,如下图
当ZBX是绿色的时候,说明添加成功,如下图:
查看监控的内容以及数据成图
由上图可看出,web页面不识别中文
zabbix消除乱码:
在界面变成中文后,点击监测中–>图形,会发现下方图形中有乱码导致数据无法正常显示;该问题是由于zabbix默认使用的是“DejaVuSans.ttf”(zabbix3.*.*默认使用的是“graphfont.ttf”),该字体对中文支持度不好,因此下方数据会有乱码。
解决方法是将本地的中文字体上传至zabbix的fonts目录,之后修改include下的defines.inc.php,将文本中所有的“DejaVuSans.ttf”(graphfont.ttf),替换为上传的中文字体,这里以黑体为例演示
解决方法:
1、在本地的C:\Windows\Fonts下选择自己喜欢的字体,此处选择黑体
2、通过xftp(或其他上传工具)将黑体字体上传至zabbix的fonts目录(zabbix的web安装路径下的fonts)
注:上传后,会自动转为大写,这里需要手动将大写再改为小写字母,否则zabbix不识别。
whereis zabbix 查看zabbix的绝对路径
cd /usr/share/zabbix/fonts
将字体上传到该目录中
mv STKAITI.TTF stkaiti.ttf 重命名
chmod 777 stkaiti.ttf
注:拷贝进入的字体的权限,最好给777。要不会影响到zabbix图形显示异常
设置字体指向:两种方法
方法一:
rm -f /etc/alternatives/zabbix-web-font
ln -s /usr/share/zabbix/fonts/simkai.ttf /etc/alternatives/zabbix-web-font
systemctl restart zabbix-server
方法二:
cd /usr/share/zabbix/include/
vi defines.inc.php
使用%s/graphfont/stkaiti/g命令对graphfont进行全局替换
systemctl restart httpd
刷新浏览器即可
——————————配置邮件报警功能——————————
邮件报警有两种情况:
1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件。
2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。
在服务端(监控端)配置
一:使用Zabbix服务端本地邮箱账号发送邮件
安装sendmail或者postfix
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
yum install postfix -y
service postfix start
chkconfig postfix on
注:
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
sendmail和postfix只需要安装一个即可并开启服务即可。
二、安装邮件发送工具mailx
yum install mailx -y #安装
编译安装mailx
如果直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
echo “zabbix test mail” |mail -s “zabbix” [email protected]
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:[email protected]
—————以上使用Zabbix服务端本地邮箱账号发送邮件设置——————
—————使用外部邮箱账号发送报警邮件设置———————
vi /etc/mail.rc //注意网易邮箱需要开启客户端授权码进行第三方登录
----文件末尾新增—
set bsdcompat
#一般公司会有专门的报警发件邮箱,如果没有,可以找公司申请
set [email protected] #公司发件服务器地址smtp
set smtp=smtp.163.com #发件邮箱用户名
set [email protected] #发件邮箱密码(授权密码)
set smtp-auth-password=xxx #登录
set smtp-auth=login
echo “zabbix test mail” |mail -s “zabbix” [email protected]
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱: [email protected]
测试成功后
给zabbix服务器端编写邮件发送脚本
cd /usr/lib/zabbix/alertscripts
vi mailx.sh //编写发邮件脚本
#!/bin/bash
#send mail
messages=echo $3 | tr '\r\n' '\n'
#$3消息内容
subject=echo $2 | tr '\r\n' '\n'
#$ 2消息主题
echo “${messages}” | mail -s " ${subject}" $1 >>/tmp/mailx.log 2>&1 #$1收件人邮箱
注: tr ‘\r\n’ ‘\n’ 将换行符\r\n 替换为 \n
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 [email protected] “邮件标题test” “邮件内容test”
web界面邮件报警配置
1、创建mail.sh告警方式
管理-报警媒介类型-创建媒体类型
说明:
名称:可以随便自己定义(Mail-Test)
类型:选择scripts(脚本);
脚本名称:输入linux下编写的脚本名称,即mailx.sh
脚本参数:点击“添加”分别添加,3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容然后点击“添加”添加完成.
{ALERT.SENDTO} 收件人地址
{ALERT.SUBJECT} 主题
{ALERT.MESSAGE} 详细内容
2、给Admin管理员添加报警
管理-用户-点击Admin-报警媒介:
类型:Mail-Test //调用上面的脚本
收件人:[email protected]
其它默认-保存
设置Zabbix触发报警的动作
配置->动作->创建动作
修改触发条件
名称: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}
点击操作下面的“新的”按键
恢复操作:{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 //一定要配置否则邮件发送不成功
注:
一定记得要点击操作里面的小的添加然后才能点外面的蓝色背景的添加
下面可以测试邮件报警
systemctl restart zabbix-server
systemctl restart zabbix-agent