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