标签:ln -s mha 部署lnmp环境 通知 相同 def reg kconfig 主机
一、zabbix运行架构Zabbix的运行架构如下:
从上面的运行架构图可以看到,Zabbix主要有几个组件构成,分别如下:
1、Zabbix Server
Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。它主要负责接收客户端发送的报告和信息,同时,所有配置、统计数据及配置操作数据均由其组织进行。
2、Zabbix Database Storage
主要用于存储数据,所有配置信息和Zabbix收集到的数据都被存储在数据库中。可以使用MySQL、oracle、SQLite等。
3、Zabbix Web界面
这是Zabbix提供的GUI接口,通常(但不一定)与Zabbix Server运行在同一台物理机器上。
4、Zabbix Proxy 代理服务器
这是一个可选组件,常用于分布式监控环境中,代理Server可以替Zabbix收集新能和可用性数据,汇总后统一发往Zabbix Server端。
5、Zabbix Agent 监控代理
Zabbix Agent部署在被监控的主机上,能够主动监控本地资源和应用程序,并负责收集数据发往Zabbix Server端或Zabbix Proxy端。
二、Zabbix监控术语
在Zabbix监控系统中,有一些常用的术语,下面是简单的介绍。
1、主机(host)
表示要监控的一台服务器或者网络设备,可以通过IP或主机名指定。
2、主机组(host group)
主机的逻辑组:它包含主机和模板,但同一个主机组内的主机和模板没有任何直接的关联;主机组通常在给用户或用户组指派监控权限时使用。
3、监控项(item)
表示一个监控的具体对象,例如监控服务器的CPU负载、磁盘空间等,item是Zabbix进行数据收集的核心,相对某个监控对象,每个item都由“key”来标识。
4、触发器(trigger)
其实就是一个监控阈值表达式,用于评估某监控对象接收到的数据是否在合理范围内;如果接收的数据大于阈值时,触发器的状态将从“OK”转变为“Problem”,当接收到的数据低于阈值时,又转变为“OK”状态。
5、应用集(Applications)
一组监控项组成的逻辑集合。
6、动作(action)
指对于监控中出现的问题事先定义的处理方法,例如发送通知、何时执行操作、执行的频率等等。
7、报警媒介类型(media)
表示发送通知的手段,告警通知的途径,如Email、Jabber或SMS等。
8、模板(template)
一组可以被应用到一个或多个主机上的实现集合,一个模板通常包含了应用集、监控项、触发器、图形、聚合图形、自动发现规则、web场景等几个项目;模板可以直接链接到某个主机。
模板是学习zabbix的一个难点和重点,为了实现批量、自动化监控,通常会将具有相同特征的监控项汇总到模板中,然后在主机中直接引用即可,实现快速监控部署。
三、部署Zabbix监控平台
Zabbix的监控平台部署比较简单,前提是准备好LNMP或LAMP环境
我这里将从部署LNMP环境开始配置。
注:我这里将所有服务部署在同一台服务器上,仅仅是一个简单的监控架构,并没有部署 zabbix proxy等。
Zabbix官方的相关链接:
Zabbix 4.2 配置文档:https://www.zabbix.com/documentation/4.2/manual/it_services
所需软件包:https://pan.baidu.com/s/1UzzoFUuR84U2ccDf1qW2UQ
提取码:grhh
1、部署Nginx
[root@zabbix /]# mkdir /zabbix # 个人习惯,可忽略
[root@zabbix /]# cd zabbix/
[root@zabbix zabbix]# rz # shangchaun上传所需源码包
[root@zabbix zabbix]# tar zxf nginx-1.14.0.tar.gz
[root@zabbix zabbix]# tar zxf pcre-8.39.tar.gz -C /usr/src/
[root@zabbix zabbix]# tar zxf zlib-1.2.8.tar.gz -C /usr/src/
[root@zabbix zabbix]# cd nginx-1.14.0/
[root@zabbix nginx-1.14.0]# yum -y install pcre-devel openssl-devel zlib-devel
[root@zabbix zabbix]# cd nginx-1.14.0/
[root@zabbix nginx-1.14.0]# useradd -s /sbin/nologin -M www
[root@zabbix nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/src/pcre-8.39 --with-zlib=/usr/src/zlib-1.2.8 --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www && make && make install
[root@zabbix /]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@zabbix /]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
location / {
root html;
index index.php index.html index.htm; #添加index.php
}
#注意删除下面段落的注释符号
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf; #修改此行
}
[root@zabbix /]# netstat -anput |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 46551/nginx: master
[root@zabbix /]# cat > /usr/local/nginx/html/index.php << EOF # 创建测试文件
> <?php
> phpinfo();
> ?>
> EOF
2、部署PHP
[root@zabbix /]# yum -y install libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel # 安装依赖包
[root@zabbix /]# cd /zabbix/
[root@zabbix zabbix]# tar zxf libmcrypt-2.5.7.tar.gz
[root@zabbix zabbix]# cd libmcrypt-2.5.7/
[root@zabbix libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install # 编译并安装
[root@zabbix libmcrypt-2.5.7]# cd ..
[root@zabbix zabbix]# tar zxf php-5.6.27.tar.gz
[root@zabbix php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl && make && make install
[root@zabbix php-5.6.27]# cp php.ini-production /etc/php.ini
[root@zabbix php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@zabbix php-5.6.27]# chmod +x /etc/init.d/php-fpm
[root@zabbix php-5.6.27]# chkconfig --add php-fpm
[root@zabbix php-5.6.27]# chkconfig php-fpm on
[root@zabbix php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix php-5.6.27]# cd /
[root@zabbix /]# sed -i ‘s/pm.max_children = 5/pm.max_children = 50/g‘ /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix /]# sed -i ‘s/pm.start_servers = 2/pm.start_servers = 5/g‘ /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix /]# sed -i ‘s/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g‘ /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix /]# sed -i ‘s/pm.max_spare_servers = 3/pm.max_spare_servers = 35/g‘ /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix /]# service php-fpm start # 启动php
Starting php-fpm done
[root@zabbix /]# netstat -anput | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 60347/php-fpm: mast
客户端访问定义的php页面:
3、安装及配置MySQL数据库
[root@zabbix ~]# sh mysql.sh # 执行脚本,等待一会出现如下提示表示安装成功
Starting MySQL. SUCCESS!
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix ~]# mysql -uroot -p123 #登录MySQL
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@‘localhost‘ identified by ‘123.com‘;
mysql> grant all on zabbix.* to zabbix@‘192.168.171.%‘ identified by ‘123.com‘;
mysql> exit
4、部署zabbix服务
[root@zabbix zabbix]# tar zxf fping-3.12.tar.gz
[root@zabbix zabbix]# tar zxf zabbix-3.2.1.tar.gz
[root@zabbix zabbix]# cd fping-3.12/
[root@zabbix fping-3.12]# ./configure && make && make install
[root@zabbix fping-3.12]# cd ../zabbix-3.2.1/
[root@zabbix zabbix-3.2.1]# useradd -M -s /sbin/nologin zabbix
[root@zabbix zabbix-3.2.1]# chown zabbix:zabbix /usr/local/sbin/fping
[root@zabbix zabbix-3.2.1]# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel
[root@zabbix zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi && make && make install
#--enable-java:方便后续监控 tomcat 程序所用
#--with-openipmi:用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、风扇工作状态、电源供应等
[root@zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
#导入zabbix数据到MySQL,注意导入的顺序,如果导入后返回提示信息,可忽略,是因为导入的命令将密码展示在了终端
[root@zabbix zabbix-3.2.1]# pwd
/zabbix/zabbix-3.2.1
[root@zabbix zabbix-3.2.1]# cd database/mysql/
[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix mysql]# chown -R zabbix:zabbix /usr/local/zabbix/
5、优化zabbix并启动
#修改zabbix配置文件
[root@zabbix /]# sed -i ‘s/# ListenPort=10051/ListenPort=10051/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/LogFile=\/tmp\/zabbix_server.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_server.log/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# PidFile=\/tmp\/zabbix_server.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_server.pid/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# DBHost=localhost/DBHost=localhost/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# DBPassword=/DBPassword=123.com/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# DBSocket=\/tmp\/mysql.sock/DBSocket=\/usr\/local\/mysql\/mysql.sock/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# DBPort=3306/DBPort=3306/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# FpingLocation=\/usr\/sbin\/fping/FpingLocation=\/usr\/local\/sbin\/fping/g‘ /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix /]# sed -i ‘s/# LogSlowQueries=0/LogSlowQueries=3000/g‘ /usr/local/zabbix/etc/zabbix_server.conf
#如果数据库名称和数据库用户没有和我创建的一样,那么还需要更改以下两项
#DBName=zabbix #数据库名称
#DBUser=zabbix #登录数据库的用户名
[root@zabbix /]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
[root@zabbix /]# ldconfig # 刷新上面更改的配置
[root@zabbix /]# mkdir /usr/local/zabbix/logs
[root@zabbix /]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@zabbix /]# cd /zabbix/zabbix-3.2.1/misc/init.d/fedora/core
[root@zabbix core]# cp zabbix_agentd /etc/init.d/
[root@zabbix core]# cp zabbix_server /etc/init.d/
[root@zabbix core]# sed -i ‘s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g‘ /etc/init.d/zabbix_server
[root@zabbix core]# sed -i ‘s/PIDFILE=\/tmp\/$BINARY_NAME.pid/PIDFILE=\/usr\/local\/zabbix\/logs\/$BINARY_NAME.pid/g‘ /etc/init.d/zabbix_server
[root@zabbix core]# /etc/init.d/zabbix_server start #启动zabbix,也可以执行“zabbix-server”来启动
Reloading systemd: [ OK ]
Starting zabbix_server (via systemctl): [ OK ]
[root@zabbix core]# netstat -anput | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 74199/zabbix_server
[root@zabbix core]# cd /zabbix/zabbix-3.2.1/frontends/
[root@zabbix frontends]# cp -r php/ /usr/local/nginx/html/zabbix
6、client访问nginx代理以便配置zabbix
访问Nignx服务器的IP/zabbix即可,它会自动跳转到下面的页面:
上述所显示报错大概是php的配置项不符合其要求:
[root@zabbix /]# sed -i ‘s/post_max_size = 8M/post_max_size =16M/g‘ /etc/php.ini
[root@zabbix /]# sed -i ‘s/max_execution_time = 30/max_execution_time = 300/g‘ /etc/php.ini
[root@zabbix /]# sed -i ‘s/max_input_time = 60/max_input_time = 300/g‘ /etc/php.ini
[root@zabbix /]# sed -i ‘s/;date.timezone =/date.timezone = Asia\/Shanghai/g‘ /etc/php.ini
[root@zabbix /]# sed -i ‘s/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g‘ /etc/php.ini
[root@zabbix /]# service php-fpm restart # 重启服务
Gracefully shutting down php-fpm . done
Starting php-fpm done
又报错,提示无法创建配置文件,让我们手动下载配置文件并上传到指定的目录,那就点击下载
[root@zabbix /]# ls /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
/usr/local/nginx/html/zabbix/conf/zabbix.conf.php
输入zabbix用户名及密码进行登录(默认用户名:admin,密码:zabbix):
7、解决后续制作图表的中文乱码问题
[root@zabbix ~]# cd /usr/local/nginx/html/zabbix/fonts/ #切换至该目录
[root@zabbix fonts]# rz
[root@zabbix fonts]# ls
DejaVuSans.ttf simkai.ttf
[root@zabbix fonts]# sed -i ‘s/DejaVuSans/simkai/g‘ /usr/local/nginx/html/zabbix/include/defines.inc.php
标签:ln -s mha 部署lnmp环境 通知 相同 def reg kconfig 主机
原文地址:https://blog.51cto.com/14306186/2487538