Linux 7 安装 Zabbix 4.4.8 + grafana 6.6.2

目录

1 Zabbix 简介

2 Zabbix 服务安装部署及监控配置

3 配置监控进程主机

4 解决 zabbix 中文乱码

5 文件系统可用空间小于 20G 自动告警

6 使用 Grafana 展示 zabbix 监控图表

############################# 开始部署  ############################

1  zabbix 简介

1.1  zbabix 简介

官方网站:http://www.zabbix.com/

企业级监控解决方案

zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。

Zabbix 主要特点 

安装不配置简单,学习成本低 支持多诧言(包括中文) 免费开源 自劢发现服务器不网络设备分布式监视以及 WEB 集中管理功能 可以无 agent 监视 用户安全认证和柔软的授权方式 通过 WEB 界面设置戒查看监视结果 email 等通知功能

Zabbix 主要功能

监控 CPU 负载、内存使用、磁盘使用、网络状态、端口监视、日志监视、插件开发自定义

1.2  Zabbix 运行机制

Zabbix Server 和 Zabbix agent

Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等你方法提供对进程服务器/网络状态的 监视,数据收集功能,可以在运行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD, OX X,Windows 多 平台。

Zabbix Agent 安装在需要被监控的目标服务器上,主要完成对硬件信息不操作系统有关的内存, CPU 等你 信息收集。

Zabbix Server 可以单独监视进程服务器的服务状态,同时也可以不 Zabbix Agent 结合。可以轮询 Zabbix Agent 主劢接收监视数据(trapping 传递 方式),同时还可以被劢接收 Zabbix Agent 发送的数据。

Zabbix 运行过程图

 

Zabbix 支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理 Zabbix,通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置!Agent 监控端口 10050

服务端安装 Zabbix Server 和 Zabbix Agent 两个服务,客户端只安装 Zabbix Agent 一个服务,监控原理 就是 Zabbix Agent 服务将从系统中获取的相关数据传送给 Zabbix Server,然后 Zabbix Server 服务将数据分析之后以 PHP 页面展示出来!

2 Zabbix 服务安装部署及监控配置

2.1 安装LNMP 环境

2.2  方法一  Zabbix 官网安装 :

https://www.zabbix.com/cn/download?zabbix=4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx

2.3 方法二  自己部署 LNMP 平台

安装MySQL5.7 数据库

MySQL 官网下载: https://downloads.mysql.com/archives/community/

选着版本,下载本地再上传至服务器,我这下载的是

mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar.gz  

~]# mkdir mysql

 ~]# cd mysql

mysql]# rz

 

mysql]# tar -xf  mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar.gz

mysql]# ll

 

mysql]# yum -y install mysql-community-*.rpm

mysql]# systemctl start  mysqld

mysql]# systemctl enable mysqld

mysql]# netstat -ntulp | grep  mysqld

tcp6       0      0 :::3306        :::*             LISTEN      18427/mysqld

mysql]# grep password  /var/log/mysqld.log   ## 查找数据库初始密码

2020-05-07T08:07:03.706853Z 1 [Note] A temporary password is generated for root@localhost: ahU82+fwz:0Y

mysql]# mysql -u root -p  

Enter password:  ##输入初始密码登录数据库

mysql> alter user  "root"@"localhost"  identified  by  "poweroff"; ##设置新密码

mysql> exit;

mysql]# mysql -u root -p

Enter password:  ##输入新密码登录数据库

mysql> create database zabbix character set utf8 collate utf8_bin; ##创建zabbix库

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';   ## 添加 zabbix 库授权用户

mysql> quit;

安装Nginx

mysql]# cat /etc/yum.repos.d/nginx.repo  ##配置nginx yum源

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

mysql]# yum makecache  ##刷新缓存

mysql]# yum -y install nginx  ##安装nginx

mysql]# nginx  -t

mysql]# systemctl start nginx

mysql]# netstat -ntulp | grep nginx

tcp       0      0 0.0.0.0:80         0.0.0.0:*        LISTEN      90777/nginx: master

注:

1、 Nginx 官网: http://nginx.org/en/download.html

2、nginx源的nginx官网源,yum 安装时默认使用最新版本,不想使用最新版本也可以去nginx 官网下载源码包安装, 以下是nginx 源码安装模块

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

安装PHP

PHP 官网下载:https://www.php.net/downloads

选着版本,下载本地再上传至服务器,我这下载的是 php-7.2.30.tar.gz

~]# mkdir php

~]# cd php

php]# rz

 

php]# tar -xf php-7.2.30.tar.gz

php]# ls

 

php]# cd php-7.2.30

php-7.2.30]# yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel MySQL pcre-devel  curl-devel libxslt-devel    ##安装php 依赖包

php-7.2.30]# ./configure --prefix=/usr/local/php7.2 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir  --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite  --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm  --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex  --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-calendar  --with-bz2  --with-jpeg-dir --with-freetype-dir

php-7.2.30]# make

php-7.2.30]# make install

php-7.2.30]# cp  php.ini-production   /usr/local/php7.2/etc/php.ini

etc]# cd  /usr/local/php7.2/etc/

etc]# cp  php-fpm.conf.default  php-fpm.conf

php-fpm.d]# cd  php-fpm.d/

php-fpm.d]# cp  www.conf.default   www.conf

注: 这里都是相对路径

创建PHP 启动脚本

php-fpm.d]# cp  /opt/php-7.2.30/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

php-fpm.d]# chmod  755  /etc/init.d/php-fpm

启动PHP

php-fpm.d]# /etc/init.d/php-fpm start

检验

php-fpm.d]# netstat -ntulp | grep php-fpm

tcp     0      0 127.0.0.1:9000      0.0.0.0:*      LISTEN      15391/php-fpm: mast

2.4、安装zabbix4.4 版本

~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm   ## 安装zabbix 官网 yum 源

~]# yum -y install epel-release

~]# yum makecache

~]# yum -y install zabbix-server-mysql

~]# yum -y install zabbix-agent

~]# yum -y  install zabbix-web-mysq

 注:这里有时会安装失败,与网络有关,多安装几次

导入初始架构和数据,系统将提示输入新创建的密码。

~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Zabbix server配置数据库

~]# vim /etc/zabbix/zabbix_server.conf

DBPassword=password  ##数据库链接密码

Zabbix前端配置PHP

~]# mv  /etc/nginx/conf.d/default.conf{,.bak}

~]# cat /etc/nginx/conf.d/zabbix.conf

server {

        listen          80;

        server_name    www.zabbix.od.com.od;    ##这里域名是我虚拟机内网的域名,需要修改windows 的hosts 文件,解析域名

        root    /usr/share/zabbix;

        index   index.php;

        location = /favicon.ico {

                log_not_found   off;

        }

        location / {

                try_files       $uri $uri/ =404;

        }

        location /assets {

                access_log      off;

                expires         10d;

        }

        location ~ /\.ht {

                deny            all;

        }

        location ~ /(api\/|conf[^\.]|include|locale) {

                deny            all;

                return          404;

        }

        location ~ [^/]\.php(/|$) {

                fastcgi_pass    unix:/run/php-fpm/zabbix.sock;

                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                fastcgi_index   index.php;

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;

                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;

                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

                include fastcgi_params;

                fastcgi_param   QUERY_STRING    $query_string;

                fastcgi_param   REQUEST_METHOD  $request_method;

                fastcgi_param   CONTENT_TYPE    $content_type;

                fastcgi_param   CONTENT_LENGTH  $content_length;

                fastcgi_intercept_errors        on;

                fastcgi_ignore_client_abort     off;

                fastcgi_connect_timeout         60;

                fastcgi_send_timeout            180;

                fastcgi_read_timeout            180;

                fastcgi_buffer_size             128k;

                fastcgi_buffers                 4 256k;

                fastcgi_busy_buffers_size       256k;

                fastcgi_temp_file_write_size    256k;

        }

}

~]# cat /usr/local/php7.2/etc/php-fpm.d/zabbix.conf

[zabbix]

user = apache

group = apache

listen = /run/php-fpm/zabbix.sock

listen.owner = nginx

listen.allowed_clients = 127.0.0.1

pm = dynamic

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 35

php_value[session.save_handler] = files

php_value[session.save_path]    = /var/lib/php/session

php_value[max_execution_time] = 300

php_value[memory_limit] = 128M

php_value[post_max_size] = 16M

php_value[upload_max_filesize] = 2M

php_value[max_input_time] = 300

php_value[max_input_vars] = 10000

php_value[date.timezone] = Asia/Shanghai  ## 设置时区

重启PHP 、Nginx

~]#  /etc/init.d/php-fpm7.2 restart

~]# nginx  -t

~]# systemctl restart nginx

启动zabbix

~]# systemctl start zabbix-server  zabbix-agent

~]# systemctl enable  zabbix-server  zabbix-agent

2.5、配置 zabbix-web 前端页面

浏览器访问: http://www.zabbix.od.com.od/index.php,下一步 Next

 

开始检查环境,确认所有选项都为 ok  下一步Next

 

#输入用于连接数据库的详细信息。Zabbix 数据库必须已经创建。下一步Next

 

这里不用改,直接下一步Next

 

确认信息,下一步Next

 

创建完成

 

默认用户名为 Admin,密码为 zabbix

 

 

注: 刚安装完下面有一条报警信息,说 zabbix restarted 运行时间小于 10 分钟,这个没有影响,这样的告警信息用于表示某些服务重启。刚刚运行时间肯定小于 10 分钟,所以忽略即可。

修改中文语言 ,如果看习惯英文,可以不用修改

 

 

注意:这里可用2 ,是我已经添加1台被监控的主机,刚创建成功时1台或者0台

3 配置监控进程主机

3.1 添加被监控主机

注意:这里新1台服务器做被监控主机

~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm   ## 安装zabbix 官网 yum 源

~]# yum -y install zabbix-agent

~]#cat /etc/zabbix/zabbix_agentd.conf  

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=192.168.17.133  #zabbix server 地址

ServerActive=192.168.17.133 #主动检查本主机的数据发送给 Zabbix Server

Hostname=192.168.17.132

Include=/etc/zabbix/zabbix_agentd.d/*.conf

UnsafeUserParameters=1

~]# systemctl start zabbix-agent && systemctl enable zabbix-agent

~]# netstat -ntulp | grep zabbix

tcp 0    0 0.0.0.0:10050   0.0.0.0:*  LISTEN      24411/zabbix_agentd

tcp6 0   0 :::10050        :::*       LISTEN      24411/zabbix_agentd

3.2 zabbix 添加 Host 主机

 

 

 

添加后状态为已启动,等待可用性也变为绿色就可以正常获取数据了。

 

  

查看监控到的数据,可以通过监测下图形查看,这里先查看磁盘使用情况:

注:现在已经成功监控到一台服务器。但显示网页中的一些汉字是乱码。

 

4 解决 zabbix 中文乱码

windows找到 simkai.ttf 简体字,上传到 zabbix 服务器。

~]# cd /usr/share/zabbix/assets/fonts/  ##fonts 目录没有就创建

Fonts~]# rz

fonts]# rm -rf  /etc/alternatives/zabbix-web-font

fonts]# ln -s /usr/share/zabbix/fonts/msyh.ttf /etc/alternatives/zabbix-web-font

fonts]# vim /usr/share/zabbix/include/locales.inc.php

将         'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => false],

修改为  'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],

 fonts]# systemctl restart zabbix-server

退出并重新登录WEB,查看图形,显示正常。

 

5 文件系统可用空间小于 20G 自动告警

5.1 创建监控项

创建自定义的监控项以及触发器,在 linux 主机模板中创建即可,以便于使用该模板的所有主机生效。

找到模板中的监控项进行创建

 

 

 

监控磁盘剩余空间,键值:vfs.fs.size[/,free]

注:

1、vfs 该键值用于检测磁盘剩余空间,zabbix 内置了非常多的键值可以选着使用

2、单位B不需要修改,后期图表中单位和G拼接起来就是GB

3、更新时间 10S ,在生产环境中不需要这么频繁,建议1小时检测一次,特殊业务除外

 

5.2 创建图形

创建图形,便于查看数据。

 

5.3 创建触发器

模板中创建触发器

 

 

 

添加表达式 

注: 结果大于20G 是根据服务器存储空间情况而定

 

查看告警信息

 

6 使用 Grafana 展示 zabbix 监控图表

安装 Grafana

Grafana 是一个将数据可视化的工具,是网络架构和应用分析中最流行的数据展示工具,相比于 zabbix 的图形界面而言 Grafana 拥有更美观的界面以及功能更强大的插件。

官网下载地址:https://grafana.com/grafana/download/6.6.2?platform=linux

 选着合适的版本下载

 ~]#  wget https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm

 ~]#  yum install grafana-6.6.2-1.x86_64.rpm -y

浏览器访问: http://www.zabbix.od.com.od:3000

注:

1、用户名:admin 密码:admin

2、第一次登陆会提示让你设置一个新的密码,因为默认密码是弱口令密码,存在风险

添加数据源拓展插件

注:

1、Grafana 默认并没有 zabbix 数据源的支持,

2、离线安装插件

下载地址:

https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.10.5/download

上传所需要安装包

~]# rz

 

~]# unzip  alexanderzobnin-grafana-zabbix-v3.10.5-1-g2219691.zip  -d /var/lib/grafana/plugins/  ## 解压至grafana 插件目录

~]# systemctl restart grafana-server

启用插件

 

下拉至最后找到 zabbix

 

点击启动

 

现在添加数据源就有 zabbix 的选项

 

下拉到最后选择 zabbix

 

zabbix API 地址:http://www.zabbix.od.com.od/api_jsonrpc.php

注:

zabbix4.4.8的接口换了,地址中不要zabbix即可,

http://IP或 域名/api_jsonrpc.php 就能正常连接Grafana6.6

 

 

和设置 zabbix 信息同一界面,导入模板

 

查看效果

 

 

 

到此部署完成 Zabbix 4.4.8 + grafana 6.6.2 !!

猜你喜欢

转载自www.cnblogs.com/gengdadeshitou/p/12909256.html