zabbix服务器端
安装依赖
[root@zabbix_server ~]# ansible all -m yum -a 'name=gcc,pcre-devel,openssl-devel'
部署lnmp
# 源码安装nginx [root@zabbix_server ~]# tar -xf nginx-1.12.2.tar.gz [root@zabbix_server nginx-1.12.2]# ./configure --with-http_ssl_module [root@zabbix_server nginx-1.12.2]# make && make install [root@zabbix_server nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /sbin/ # 安装php和mariadb [root@zabbix_server ~]# yum -y install php php-mysql mariadb mariadb-devel mariadb-server [root@zabbix_server ~]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
配置nginx
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; } ...
启动服务
[root@zabbix_server nginx-1.12.2]# nginx [root@zabbix_server ~]# systemctl restart mariadb [root@zabbix_server ~]# systemctl restart php-fpm [root@zabbix_server nginx-1.12.2]# ss -ltnup | grep :80 [root@zabbix_server nginx-1.12.2]# ss -ltnup | grep :3306 [root@zabbix_server nginx-1.12.2]# ss -ltnup | grep :9000
测试LNMP环境
[root@zabbix_server ~]# vim /usr/local/nginx/html/index.php <?php $name='ray'; echo $name; ?> [root@zabbix_server ~]# curl http://192.168.1.10/index.php
部署zabbix Server
安装依赖
[root@zabbix_server ~]# yum -y install net-snmp-devel curl-devel libevent-devel-2.0.21-4.el7.x86_64.rpm
源码安装zabbix
[root@zabbix_server ~]# tar -xf zabbix-3.4.4.tar.gz [root@zabbix_server ~]# cd zabbix-3.4.4 [root@zabbix_server 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
初始化zabbix
# 创建数据库及访问帐号/密码 MariaDB [(none)]> create database zabbix character set utf8; MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix'; [root@proxy1_zabbix mysql]# cd /root/zabbix-3.4.4/database/mysql [root@zabbix_server mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql [root@zabbix_server mysql]# mysql -uzabbix -pzabbix zabbix < images.sql [root@zabbix_server mysql]# mysql -uzabbix -pzabbix zabbix < data.sql # 上线zabbix的web页面 [root@zabbix_server zabbix-3.4.4]# cd frontends/php [root@zabbix_server php]# cp -r * /usr/local/nginx/html/ [root@zabbix_server php]# chmod -R 777 /usr/local/nginx/html/*
修改zabbix_server 配置文件,设置数据库相关参数,启动zabbix_server服务
[root@zabbix_server zabbix-3.4.4]# vim /usr/local/etc/zabbix_server.conf DBHost=localhost #数据库主机,默认该行被注释 DBName=zabbix #设置数据库名称 DBUser=zabbix #设置数据库账户 DBPassword=zabbix #设置数据库密码,默认该行被注释 LogFile=/tmp/zabbix_server.log #设置日志,仅查看以下即可 # 创建用户方可启动zabbix [root@zabbix_server zabbix-3.4.4]# useradd -s /sbin/nologin zabbix [root@zabbixserver ~]# zabbix_server [root@zabbixserver ~]# ss -ntulp |grep zabbix_server
修改zabbix_agent配置文件,启动zabbix_agnet服务
[root@zabbix_server zabbix-3.4.4]# vim /usr/local/etc/zabbix_agentd.conf Server=127.0.0.1,192.168.1.10 #允许哪些主机监控本机 ServerActive=127.0.0.1,192.168.1.10 #允许哪些主机通过主动模式监控本机 Hostname=zabbix_server #设置本机主机名 LogFile=/tmp/zabbix_server.log #设置日志文件 UnsafeUserParameters=1 #是否允许自定义key [root@zabbix_server zabbix-3.4.4]# zabbix_agentd [root@zabbix_server zabbix-3.4.4]# ss -ntulp |grep zabbix_agentd
Tips:
如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server/zabbix_agentd,
一定要先使用killall zabbix_server/zabbix_agentd关闭服务后,再重新启动一次。
验证
[root@ray lnmp_soft]# firefox http://192.168.1.10/index.php # 默认会提示PHP配置不满足环境要求,修改PHP配置文件 [root@zabbix_server ~]# yum -y install php-gd php-xml php-bcmath-5.4.16-42.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm [root@zabbix_server ~]# 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@zabbix_server ~]# systemctl restart php-fpm
部署代理 Zabbix Proxy
源码安装zabbix_proxy
[root@ray zabbix]# ansible proxy -m shell -a 'yum -y install net-snmp-devel curl-devel libevent-devel-2.0.21-4.el7.x86_64.rpm' [root@ray zabbix]# ansible proxy -m shell -a 'useradd -s /sbin/nologin zabbix' [root@ray zabbix]# ansible proxy -m yum -a 'name=mariadb,mariadb-devel,mariadb-server' [root@ray zabbix]# ansible proxy -m shell -a 'systemctl start mariabd' [root@ray zabbix]# ansible proxy -m copy -a 'src=zabbix-3.4.4.tar.gz dest=zabbix-3.4.4.tar.gz' [root@ray zabbix]# ansible proxy -m unarchive -a 'src=zabbix-3.4.4.tar.gz dest=/root/' # 创建数据库及访问帐号/密码 MariaDB [(none)]> create database zabbix_proxy character set utf8; MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix'; [root@ray zabbix]# ansible proxy -m shell -a 'mysql -uzabbix -pzabbix zabbix_proxy < schema.sql chdir=/root/zabbix-3.4.4/database/mysql/' [root@ray zabbix]# ansible proxy -m shell -a 'mysql -uzabbix -pzabbix zabbix_proxy < images.sql chdir=/root/zabbix-3.4.4/database/mysql/' [root@ray zabbix]# ansible proxy -m shell -a './configure --prefix=/usr/local/zabbix/ --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl chdir=zabbix-3.4.4' [root@ray zabbix]# ansible proxy -m shell -a 'make &&make install chdir=zabbix-3.4.4'
配置文件
[root@ray zabbix]# vim zabbix_proxy.conf Server=192.168.1.10 Hostname={{ hostname }} LogFile=/tmp/zabbix_proxy.log DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix Timeout=4 LogSlowQueries=3000 DataSenderFrequency=30 HistoryCacheSize=128M CacheSize=128M # 分发配置文件 [root@ray zabbix]# cat zabbix_proxy.yml --- - hosts: proxy remote_user: root tasks: - shell: hostname register: hostname - template: src: zabbix_proxy.conf dest: /usr/local/zabbix/etc/zabbix_proxy.conf owner: zabbix group: zabbix mode: 0644 [root@ray zabbix]# ansible-playbook zabbix_proxy.yml
[root@ray zabbix]# ansible proxy -m shell -a '/usr/local/zabbix/sbin/zabbix_proxy'
部署被监控主机Zabbix Agent
源码安装zabbix-agent
[root@ray zabbix]# ansible agent -m shell -a 'useradd -s /sbin/nologin zabbix' [root@ray zabbix]# ansible agent -m copy -a 'src=zabbix-3.4.4.tar.gz dest=zabbix-3.4.4.tar.gz' [root@ray zabbix]# ansible agent -m unarchive -a 'src=zabbix-3.4.4.tar.gz dest=/root/' [root@ray zabbix]# ansible agent -m shell -a './configure --prefix=/usr/local/zabbix/ --enable-agent chdir=zabbix-3.4.4' [root@ray zabbix]# ansible agent -m shell -a 'make && make install chdir=zabbix-3.4.4'
修改agent配置文件,启动agent
# 配置模板文件 Server=192.168.1.11,192.168.1.12 #谁可以监控本机(被动监控模式),此处指向proxy ServerActive=192.168.1.11,192.168.1.12 #谁可以监控本机(主动监控模式) Hostname={{ hostname }} #被监控端自己的主机名 EnableRemoteCommands=1 #监控异常后,是否允许服务器远程过来执行命令,如重启某个服务 UnsafeUserParameters=1 #是否允许自定义key监控
LogFile=/tmp/zabbix_agentd.log
# 利用ansible的template模板分发 [root@ray zabbix]# vim zabbix.yml --- - hosts: agent remote_user: root tasks: - shell: hostname register: hostname - template: src: zabbix_agentd.conf dest: /usr/local/zabbix/etc/zabbix_agentd.conf owner: zabbix group: zabbix mode: 0644 [root@ray zabbix]# ansible-playbook zabbix.yml
启动
[root@ray zabbix]# ansible agent -m shell -a 'cp /root/zabbix-3.4.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/' [root@ray zabbix]# ansible proxy,agent -m shell -a "sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g' /etc/init.d/zabbix_agentd" [root@ray zabbix]# ansible agent -m shell -a '/etc/init.d/zabbix_agentd start'