一 部署Zabbix监控平台
环境: zabbixserver eth1--192.168.2.5
zabbixclient_web1 eth1--192.168.2.100
zabbixclient_web2 eth1--192.168.2.200
NO.1 部署监控服务器
1)在zabbixserver上安装LNMP环境
2)修改Nginx配置文件
- [root@zabbix server ~]# 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; //读取请求的超时时间
- location ~ \.php$ {
- root html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
- … …
3)启动nginx,php-fpm,mariadb,关闭防火墙以及selinux
NO.2 部署监控服务器zabbix server
1)源码安装Zabbix Server
- [root@zabbixserver lnmp_soft]# yum -y install net-snmp-devel \
- > curl-devel
- //安装相关依赖包
- [root@zabbixserver lnmp_soft]# yum -y install \
- > libevent-devel-2.0.21-4.el7.x86_64.rpm
- //注意libevent-devel这个软件包在lnmp_soft目录下有提供
- [root@zabbixserver lnmp_soft]# tar -xf zabbix-3.4.4.tar.gz
- [root@zabbixserver lnmp_soft]# cd zabbix-3.4.4/
- [root@zabbixserver zabbix-3.4.4]# ./configure --enable-server \
- > --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \
- > --with-net-snmp --with-libcurl
- // --enable-server安装部署zabbix服务器端软件
- // --enable-agent安装部署zabbix被监控端软件
- // --enable-proxy安装部署zabbix代理相关软件
- // --with-mysql配置mysql_config路径
- // --with-net-snmp允许zabbix通过snmp协议监控其他设备
- // --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
- [root@zabbix server zabbix-3.4.4]# make && make install
2)初始化Zabbix
创建数据库,上线Zabbix的Web页面
- [root@zabbixserver ~]# mysql
- mysql> create database zabbix character set utf8;
- //创建数据库,支持中文字符集
- mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
- //创建可以访问数据库的账户与密码
- [root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/database/mysql/
- [root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
- [root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
- [root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
- //刚刚创建是空数据库,zabbix源码包目录下,有提前准备好的数据
- //使用mysql导入这些数据即可(注意导入顺序)
上线Zabbix的Web页面
- [root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/frontends/php/
- [root@zabbixserver php]# cp -r * /usr/local/nginx/html/
- [root@zabbixserver php]# chmod -R 777 /usr/local/nginx/html/*
修改Zabbix_server配置文件,设置数据库相关参数,启动Zabbix_server服务
- [root@zabbixserver ~]# vim /usr/local/etc/zabbix_server.conf
- DBHost=localhost
- //数据库主机,默认该行被注释
- DBName=zabbix
- //设置数据库名称
- DBUser=zabbix
- //设置数据库账户
- DBPassword=zabbix
- //设置数据库密码,默认该行被注释
- LogFile=/tmp/zabbix_server.log
- //设置日志,仅查看以下即可
- [root@zabbixserver ~]# useradd -s /sbin/nologin Zabbix
- //不创建用户无法启动服务
- [root@zabbixserver ~]# zabbix_server //启动服务
-
- [root@zabbixserver ~]# ss -ntulp |grep zabbix_server //确认连接状态,端口10051
- tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=23275,fd=4),("zabbix_server",pid=23274,fd=4)
修改Zabbix_agent配置文件,启动Zabbix_agent服务
- [root@zabbixserver ~]# vim /usr/local/etc/zabbix_agentd.conf
- Server=127.0.0.1,192.168.2.5 //允许哪些主机监控本机
- ServerActive=127.0.0.1,192.168.2.5 //允许哪些主机通过主动模式监控本机
- Hostname=zabbix_server //设置本机主机名
- LogFile=/tmp/zabbix_server.log //设置日志文件
- UnsafeUserParameters=1 //是否允许自定义key
- [root@zabbixserver ~]# zabbix_agentd //启动监控agent
-
- [root@zabbixserver ~]# ss -ntulp |grep zabbix_agentd //查看端口信息为10050
根据错误提示,修改PHP配置文件,满足Zabbix_server的Web环境要求
php-bcmath和php-mbstring都在lnmp_soft目录下有提供软件包。
- root@zabbixserver ~]# yum -y install php-gd php-xml
- [root@zabbixserver ~]# yum install php-bcmath-5.4.16-42.el7.x86_64.rpm
- [root@zabbixserver ~]# yum install php-mbstring-5.4.16-42.el7.x86_64.rpm
- [root@zabbixserver ~]# vim /etc/php.ini
- date.timezone = Asia/Shanghai //设置时区
- max_execution_time = 300 //最大执行时间,秒
- post_max_size = 32M //POST数据最大容量
- max_input_time = 300 //服务器接收数据的时间限制
- memory_limit = 128M //内存容量限制
- [root@zabbixserver ~]# systemctl restart php-fpm
NO.3 部署被监控主机Zabbix Agent
1)源码安装Zabbix agent软件
在2.100和2.200做相同操作(以web1为例)。
[root@web1 ~]# useradd -s /sbin/nologin zabbix
- [root@web1 ~]# yum -y install gcc pcre-devel
- [root@web1 ~]# tar -xf zabbix-3.4.4.tar.gz
- [root@web1 ~]# cd zabbix-3.4.4/
- [root@web1 zabbix-3.4.4]# ./configure --enable-agent
- [root@web1 zabbix-3.4.4]# make && make install
2 ) 拷贝启动脚本(非必须操作,可选做),有启动脚本可以方便管理服务,启动与关闭服务。启动脚本位于zabbix源码目录下。
- [root@web1 zabbix-3.4.4]# cd misc/init.d/fedora/core
- [root@web1 zabbix-3.4.4]# cp zabbix_agentd /etc/init.d/
- [root@web1 zabbix-3.4.4]# /etc/init.d/Zabbix_agentd start
- [root@web1 zabbix-3.4.4]# /etc/init.d/Zabbix_agentd stop
- [root@web1 zabbix-3.4.4]# /etc/init.d/Zabbix_agentd status
- [root@web1 zabbix-3.4.4]# /etc/init.d/Zabbix_agentd restart
service zabbix_agentd start/stop/restart/status
/etc/init.d/zabbix_agentd start/stop/restart/status //两种方法一样的效果
vim /etc/systemd/system/multi-user.target.wants/zabbix_server.service
[Unit]
Description=zabbix_server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/etc/init.d/zabbix_server start
ExecReload=/etc/init.d/zabbix_server restart
ExecStop=/etc/init.d/zabbix_server stop
PrivateTmp=true
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
systemctl start zabbix_server.service
systemctl restart zabbix_server.service
systemctl stop zabbix_server.service
systemctl status zabbix_server.service
3)修改agent配置文件,启动Agent
- [root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
- Server=127.0.0.1,192.168.2.5 //谁可以监控本机(被动监控模式)
- ServerActive=127.0.0.1,192.168.2.5 //谁可以监控本机(主动监控模式)
- Hostname=zabbix_client_web1 //被监控端自己的主机名
- EnableRemoteCommands=1
- //监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
- UnsafeUserParameters=1 //是否允许自定义key监控
- [root@web1 ~]# zabbix_agentd //启动agent服务
四 自定义Zabbix监控项目
NO.1 被监控主机创建自定义key(在192.168.2.100操作)
1)创建自定义key
自定义key语法格式为:UserParameter=自定义key名称,命令。
自定义的key文件一般存储在/usr/local/etc/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,允许自定义监控key,来读取该目录下的所有文件 。
- root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf
- Include=/usr/local/etc/zabbix_agentd.conf.d/ //加载配置文件目录
- [root@web1 ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
- [root@web1 zabbix_agentd.conf.d]# vim count.line.passwd
- UserParameter=count.line.passwd,wc -l /etc/passwd | awk ' {print $1} '
- ////自定义key语法格式:
- //UserParameter=自定义key名称,命令 定义后重启服务
- [root@web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.passwD