一、zabbix简介
zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
1.zabbix的主要特点
安装与配置简单,学习成本低 、支持多语言(包括中文)、免费开源、自动发现服务器与网络设备、分布式监视以及WEB集中管理功能、可以无agent监视、用户安全认证和柔软的授权方式、通过WEB界面设置或查看监视结果、email等通知功能
2.zabbix的主要功能
CPU负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视
一、准备工作
服务端 |
客户端 |
|
主机名 |
server |
client |
IP地址 |
192.168.200.10/24 |
192.168.200.20/24 |
1.配置IP地址和主机名
① server端配置
# hostnamectl set-hostname server
# nmcli connection modify eno16777736 ipv4.method manual ipv4.addresses "192.168.200.10/24" ipv4.gateway "192.168.200.2" ipv4.dns "202.106.0.20" connection.autoconnect yes
# nmcli connection up eno16777736
② client 端配置
# hostnamectl set-hostname client
# nmcli connection modify eno16777736 ipv4.method manual ipv4.addresses "192.168.200.20/24" ipv4.gateway "192.168.200.2" ipv4.dns "202.106.0.20" connection.autoconnect yes
# nmcli connection up eno16777736
2.关闭防火墙和selinux安全机制
# systemctl stop firewalld
# setenforce 0
# vim /etc/selinux/config
# sed -i 's/^SELINUX.*$/SELINUX=disabled/g' /etc/selinux/config
3.安装yum仓库
三、server主机的安装
1.安装网站平台
① 安装数据库
# yum -y install mariadb mariadb-server mariadb-devel
# systemctl start mariadb
# systemctl enable mariadb
# mysqladmin password 123 //设置数据库密码是123
② 安装httpd
# yum -y install httpd
# systemctl start httpd
# systemctl enable httpd
# vim /etc/httpd/conf/httpd.conf //修改配置文件的参数
95 ServerName server:80
③ 安装php
(1)安装php依赖的软件包
# yum -y install php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
# vim /etc/php.ini //修改配置文件的参数
878 date.timezone = Asia/Shanghai
384 max_execution_time = 300
672 post_max_size = 32M
394 max_input_time = 300
405 memory_limit = 128M
(2)测试服务器情况
# vim /var/www/html/index.php
# 前面这段是测试php与mysql连通性的PHP代码
$link=mysql_connect('192.168.200.10','root','123'); # ip填写mysql主机ip,用户为mysql所授权的用户,密码
if($link) echo "DATABASE Connect Successfully!";
else echo "DATABASE Connect Faild!";
mysql_close();
?>
# 测试php是否正常工作的php代码
phpinfo() #此函数调用会显示php的详细信息
?>
# systemctl restart mariadb
# systemctl restart httpd
2.安装zabbix
① 下载源码包
链接地址:
https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.3/zabbix-3.4.3.tar.gz
② 安装依赖库
# yum -y install net-snmp-devel libxml2-devel libcurl-devel libevent libevent-devel gcc OpenIPMI-devel openldap openldap-devel unixODBC-devel
# yum install java* #--enable-java,可以省略
③ 解压并编译安装
# tar zxf zabbix-3.4.3.tar.gz -C /usr/local
# cd /usr/local/zabbix-3.4.3/
# ./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix/ --enable-server --enable-proxy --enable-proxy --enable-agent --enable-ipv6 --with-mysql --with-net-snmp --with-libcurl --witpenipmi --with-unixodbc --with-ldap --enable-java && make && make install
④ 创建用户和组
# groupadd zabbix
# useradd -r -g zabbix zabbix
# chown zabbix.zabbix /usr/local/zabbix/
⑤ 创建数据库zabbix并导入表结构
MariaDB [(none)]> create database zabbix character set utf8;
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> flush privileges;
[root@server zabbix-3.4.3] # cd /root/zabbix-3.4.3/
# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
# mysql -uzabbix -pzabbix zabbix < database/mysql/p_w_picpaths.sql
# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
⑥ 创建日志目录
# mkdir /usr/local/zabbix/logs
# chown zabbix:zabbix logs
⑦ 修改配置文件
# cd /etc/zabbix/
# cp zabbix_server.conf zabbix_server.conf.bak
# vim zabbix_server.conf
38 LogFile=/usr/local/zabbix/logs/zabbix_server.log
95 DBName=zabbix //数据库的名字
111 DBUser=zabbix
119 DBPassword=zabbix
126 DBSocket=/var/lib/mysql/mysql.sock
134 DBPort=3306
85 DBHost=localhost
# cp zabbix_agentd.conf zabbix_agentd.conf.bak
# vim zabbix_agentd.conf
134 ServerActive=192.168.200.10:10051
30 LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
93 Server=127.0.0.1,192.168.200.10
280 UnsafeUserParameters=1 //自定义脚本功能开启
261 Include=/etc/zabbix/zabbix_agentd.conf.d/ //定义agentd配置文件的存放路径
⑧ 将zabbix的页面文件copy到指定目录
# cd /usr/local/zabbix-3.4.3/
# cp misc/init.d/fedora/core/zabbix_* /etc/init.d
# ll -d /etc/init.d/zabbix_*
-rwxr-xr-x. 1 root root 2170 11月 1 09:44 /etc/init.d/zabbix_agentd
-rwxr-xr-x. 1 root root 2181 11月 1 09:44 /etc/init.d/zabbix_server
⑨ 创建php页面
# cd /usr/local/zabbix-3.4.3/
# cp -rf frontends/php/ /var/www/html/zabbix
# chown -R apache.apache /var/www/html/zabbix
3.访问测试zabbix
① 访问地址 http://192.168.200.10/zabbix
②确保下面的选项都是OK后,点击下一步
③ 将端口改为3306,数据库、用户名、密码都设为zabbix
④ 请输入主机名或主机的IP地址和Zabbix服务器端口号,以及安装的名称(可选)。
⑤登陆zabbix
默认用户名:zabbix
密码:zabbix
⑥ 锁定安装界面
# cd /var/www/html/zabbix
# mv setup.php setup.php.lock
# chmod 600 setup.php.lock
⑦ 修改链接地址
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
⑧ 启动服务
# /etc/init.d/zabbix_server restart
# /etc/init.d/zabbix_agentd restart
# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 67233/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 67090/zabbix_server
tcp6 0 0 :::10050 :::* LISTEN 67233/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 67090/zabbix_server
⑨ 更改语言
点击小人admin
将Language改为中文Chinese,点击Update即可
四、client主机的安装
1.安装软件包
① 下载源码包
链接地址:
https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.3/zabbix-3.4.3.tar.gz
② 安装依赖库
# yum -y install net-snmp-devel libxml2-devel libcurl-devel libevent libevent-devel gcc OpenIPMI-devel openldap openldap-devel unixODBC-devel
# yum install java* #--enable-java,可以省略
③ 创建日志目录
# useradd -s /sbin/nologin zabbix
# mkdir /etc/zabbix/ /usr/local/zabbix/logs
# chown zabbix.zabbix /usr/local/zabbix/logs
⑤ 解压编译安装包
# tar zxf zabbix-3.4.3.tar.gz -C /usr/src
# cd /usr/src/zabbix-3.4.3/
# ./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent && make && make install
# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d
⑥ 修改配置文件
# cd /etc/zabbix
# cp zabbix_agentd.conf zabbix_agentd.conf.bak
# vim zabbix_agentd.conf
134 ServerActive=192.168.200.10:10051
93 Server=127.0.0.1,192.168.200.10
30LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
280 UnsafeUserParameters=1
2.启动服务
# ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin
# /etc/init.d/zabbix_agentd start
# chkconfig zabbix_agentd on
五、创建监控节点
1.创建主机群组
点击配置-->主机群组-->创建主机群组-->添加组名
2.创建主机
点击配置-->主机-->创建主机
3.添加模板
4.启用服务器
5.报警问题
配置--模板--Template OS Linux--触发器--更改报警值或者停用--选择更改
Lack of free memory on server {HOSTNAME}
Processor load is too high on {HOSTNAME}
Too many processes on {HOSTNAME}
六、邮箱报警
1. 创建邮件脚本
# yum -y install mailx
# vim /etc/mail.rc
set [email protected] smtp=smtp.163.com
set [email protected] smtp-auth-password=mima
set smtp-auth=login
#!/bin/bash
echo "$3" | mail -s "$2" $1
# vim /usr/local/zabbix/share/zabbix/alertscripts/zabbix.sh
# chmod a+x /usr/local/zabbix/share/zabbix/alertscripts/zabbix.sh
# chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/za
bbix.sh
# /usr/local/zabbix/share/zabbix/alertscripts/zabbix.sh
[email protected] "zabbix" "zabbix test mail 2"
2. 创建报警媒体
管理--报警媒介类型--创建媒体类型
3. 创建报警用户
管理--用户--报警媒介
分别对应zabbix.sh脚本需要的3个参数:收件人地址、主题、详细内容然后添加完成:
4.创建报警动作
配置--动作--创建动作
动作:
操作:
恢复操作:
确认操作:
5.测试邮件报警
① 将客户端关闭,查看报警
# /etc/init.d/zabbix_agentd stop
Stopping zabbix_agentd (via systemctl): [ 确定 ]
② 调整时间
# vim /etc/zabbix/zabbix_server.conf
Timeout=30
# vim /etc/zabbix/zabbix_agentd.conf
Timeout=30
# /etc/init.d/zabbix_server restart
# /etc/init.d/zabbix_agentd restart
③ 确认报警