1、zabbix监控
- 监控服务器
-- 监控服务器可以通过snmp和agent来采集数据
-- 数据可以写入MySQL、Oracle数据库中
-- zabbix的页面采用php
-- 服务器使用lnmp实现web端的管理 - 被监控主机
-- 被监控主机需要安装zabbix-agentd端
-- 常见的网络设备都是支持snmp协议
2、搭建监控服务器
2.1、搭建管理zabbix页面端的lnmp
- 配置前准备
systemctl stop firewalld
systemctl disable firewalld
setenforce 0 #永久配置修改/etc/selinux/conf文件
- 下载并安装nginx
#安装依赖
yum install -y gcc pcre-devel zlib-devel openssl-devel
#下载nginx源码包
wget http://nginx.org/download/nginx-1.20.2.tar.gz
#解压nginx并编译安装
tar -xvf nginx-1.20.2.tar.gz
cd nginx-1.20.2.tar.gz
./configure --with-http_ssl_module #安装目录默认/usr/local/nginx;安装时会自动加nginx用户和nginx用户组,不用额外指定
make && make install
#启动nginx
/usr/local/nginx/sbin/nginx
#修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
... ...
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
... ...
#重启nginx
/usr/local/nginx/sbin/nginx -s reload
- 安装MySQL数据库
#下载MySQL的rpm包
wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar
#查看系统是否有安装mariadb。如果有需要卸载,否则会冲突
yum remove -y $(rpm -qa | grep mariadb)
#解压并安装
mkdir /opt/mysql
tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql
cd /opt/mysql
yum install -y mysql*.rpm
#启动mysql服务
systemctl start mysqld
#获取初始密码
grep "password" /var/log/mysqld.log
#登录数据库修改数据库密码
mysql -uroot -p'初始密码'
#修改密码策略
mysql> set global validate_password_policy=0; #策略等级
mysql> set global validate_password_length=6; #密码长度
mysql> alter user root@"localhost" identified by "新密码";
#重启mysql来生效MySQL的配置
systemctl restart mysqld
- 安装php
yum install -y php php-fpm
systemctl start php-fpm
]# netstat -ntlp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 22146/php-fpm: mast
- 测试lnmp平台
vim /usr/local/nginx/html/test.php
<?php
$i=100;
echo $i;
?>
#访问
]# curl http://192.168.2.90/test.php
100
2.2、安装zabbix
- 下载并安装zabbix5.0.9的源码包
zabbix5.0.9官方源码包
#解压并安装
tar -xvf zabbix-5.0.9.tar.gz
cd zabbix-5.0.9
./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl #安装一些zabbix-server所需的功能
make install
#查看zabbix的配置文件目录
]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_proxy.conf zabbix_proxy.conf.d zabbix_server.conf zabbix_server.conf.d
]# ls /usr/local/bin/
zabbix_get zabbix_js zabbix_sender
#查看zabbix管理服务命令目录
]# ls /usr/local/sbin/
zabbix_agentd zabbix_proxy zabbix_server
- 创建存储数据的库、表、以及zabbix连接数据库服务的用户
]# mysql -uroot -p'数据库密码'
#创建一个能够支持中文的zabbix数据库
mysql> create database zabbix set character utf8 collate utf8_bin;
#授权一个zabbix用户,本地连接对zabbix库有所有权限
mysql> grant all on zabbix.* to zabbix@'localhost' identified by '密码';
mysql > flush privileges;
mysql > set name utf8; #避免数据出现乱码
- 修改zabbix-server的配置文件
cat /usr/local/etc/zabbix_server.conf | grep -v '^#'
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword='前面数据库授权zabbix用户时所设置的密码'
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
- 将源码包中的数据导入数据库中
]# cd /root/zabbix-5.0.9/database/mysql/
]# ls
data.sql double.sql images.sql Makefile Makefile.am Makefile.in schema.sql
mysql -uzabbix -p'密码' zabbix < schema.sql
mysql -uzabbix -p'密码' zabbix < images.sql
mysql -uzabbix -p'密码' zabbix < double.sql
mysql -uzabbix -p'密码' zabbix < data.sql
- 初始化准备
#将源码包中的所有关于php页面的文件拷贝到nginx中
cp -a /root/zabbix-5.0.9/ui/* /usr/local/nginx/html
#并将所有文件赋上所有权限
chmod -R 777 /usr/local/nginx/html
#配置nginx,满足php脚本的运行环境
vim /usr/local/nginx/conf/nginx.conf
http {
fastcgi_buffers 8 16k; #缓存php生成的页面内容,8个16k
fastcgi_buffer_size 32k; #缓存php生产的头部信息
fastcgi_connect_timeout 300; #连接php的超时时间
fastcgi_send_timeout 300; #发送请求的超时时间
fastcgi_read_timeout 300; #读取请求的超时时间
... ...
#重新加载nginx配置文件
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
#配置php.ini配置文件
vim /etc/php.ini
date.timezone = Asia/Shanghai #设置时区
max_execution_time = 300 #最大执行时间
post_max_size = 32M #post数据最大容量
max_input_time = 300 #服务器接受数据的时间限制
systemctl restart php-fpm
- 访问zabbix页面,并做配置
-- http://IP/setup.php,环境检测
如果访问页面时出现“Minimum required PHP version is 7.2.0.”,需要对php进行升级
-- 连接数据库配置
-- 监控服务的IP地址
-- 配置摘要
- 安装完成,会在/usr/local/nginx/html/conf/目录下有一个zabbix.conf.php的文件。前提是对/usr/local/nginx/html/conf/有权限才能保存该配置(前面已经对该文件加做了权限赋予)
]# cat /usr/local/nginx/html/conf/zabbix.conf.php
-
登录页面
-- 账号:Admin
-- 密码:zabbix
-- 登录后可修改密码和语言
-- 此时显示zabbix_server未启动
#启动zabbix_server服务
#不创建用户无法启动服务
[root@zabbix_server ~]# zabbix_server
zabbix_server [1223]: user zabbix does not exist
zabbix_server [1223]: cannot run as root!
[root@zabbix_server ~]# useradd zabbix
]# netstat -ntlp | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 7089/zabbix_server
-- 停止服务
killall -9 zabbix_server