zabbix部署--Grafana
2018-05-31 本文已影响0人
4e8ea348373f
一,环境准备
- 两台ContOS7的虚拟机,一台作为web,一台作为db
- web包含nginx,php,db包含mysql
- 关闭selinux和firewalld
二,部署LNMP
- 安装配置nginx
#安装nginx依赖
yum install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5 -y
#下载nginx源码并解压
[root@web software]# ls ~/software/
nginx-1.10.1 nginx-1.10.1.tar.gz pcre-8.39 pcre-8.39.tar.gz
[root@web software]# cd nginx-1.10.1
#构建并编译安装
[root@web nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.8
[root@web nginx-1.10.1]# make && make install
#编写nginx启动文件(需根据实际情况修改相关路径)
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
====================================
#加入开机启动并启动nginx
systemctl enable nginx.service #设置开机自启动
systemctl start nginx.service #启动nginx服务
ps:访问本机ip,即可进行测试,如果出现如下页面,说明nginx启动成功,配置等下安装后php后,再做修改

- 安装配置php
#安装依赖
yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel
#准备php源码包并解压
[root@web bin]# ls ~/software/
php-5.6.30 php-5.6.30.tar.gz
[root@web software]# cd php-5.6.30
#编译安装
./configure --prefix=/usr/local/product/php-5.6.30 --with-config-file-path=/usr/local/product/php-5.6.30/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql --with-mysqli --with-mysql --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
make&&make install
#链接目录
ln -s /usr/local/product/php-5.6.30 /usr/local/php-fpm
#根据zabbix需要修改php.ini配置文件
max_execution_time = 300 (Default is 30)
memory_limit = 128M (no change, default is 128M)
post_max_size = 16M (default is 8M)
upload_max_filesize = 2M (no change, default is 2M)
max_input_time = 300 (default is 60)
date.timezone = PRC (default is empty)
#参考nginx编写php-fpm.service并启动
#完成后编写测试页面
[root@web html]# cat test.php
<?php
phpinfo();
?>
#修改nginx配置文件开启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_params;
}
修改fastcgi_params文件
[root@web conf]# cat fastcgi_params
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
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_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
#reload nginx
ps:访问ip/test.php,如果有类似如下页面,说明配置成功

- 安装配置mysql
#安装mysql相关依赖包,以及Cmake
yum -y install ncurses-devel gcc gcc-c++ cmake autoconf
#准备源码包并解压
[root@db software]# ls
mysql-5.6.31 mysql-5.6.31.tar.gz
[root@db software]# cd mysql-5.6.31
[root@db mysql-5.6.31]#
#编译安装(时间较长,需耐心等待)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data
make
make install
#创建mysql用户和组,并授权data所属为mysql
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/data
#可以使用mysqld_safe做安全配置
#准备启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
#启动
service mysqld start
#测试
mysql -uroot -p #输入密码登录
ps:因为db与web分离,所以mysql要监听在0.0.0.0或者可与外部主机通信的地址上
至此一个基本的LNMP环境已经部署完成,下面开始安装配置zabbix
三,部署zabbix
- 编译安装zabbix server和agent
#安装相关依赖包
yum -y install net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel libcurl mysql-devel libcurl curl-devel net-snmp-devel bzip2 bzip2-devel
#准备zabbix源码包并解压
[root@web software]# cd zabbix-3.4.3
[root@web zabbix-3.4.3]# ls ../
zabbix-3.4.3 zabbix-3.4.3.tar.gz
#编译安装(这里带有agent)
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make && make install
#在db机器上准备zabbix所需的sql,scp到db
[root@web zabbix-3.4.3]# ls database/mysql/
data.sql images.sql schema.sql
#在db上导入数据
#创建zabbix数据库,zabbix用户,并授权在任意ip可以访问,或指明具体的ip
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on *.* to zabbix@"%" identified by 'zabbixtest';
mysql> flush privileges;
#修改server和agent配置文件并启动
#这里zabbix_server.conf主要配置db的信息
DBHost=192.168.197.130
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixtest
DBPort=3306
#这里zabbix_agentd.conf主要配置server的信息
#因为此agent与server同一台机器,这里配置文件不需要修改,这里采用被动方式
#参考agent的编译方式,在db上也安装agent并指向server为web服务器
#准备zabbix web页面,在源码包的frontends中,可以复制过去,也可以修改nginx
cp -r /root/software/zabbix-3.4.3/frontends/php/* /usr/local/nginx/html
在浏览器访问http://ip,会看到类似如下页面

点击下一步

进行检查,全部OK后,下一步

填写DB相关信息,下一步

填写Name(可选),下一步

检查信息,下一步

至此zabbix前端以及配置完成
下面可以登录zabbix ,默认用户为Admin,密码为zabbix,添加agent,选择linux相关模板,收集数据
四,Grafana
- 简述:Grafana是一款前端插件,可以更好的展示数据,数据源可以选择常用的DB等
- 这里Grafana部署在web上
#安装并启动
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm
systemctl enable grafana-server
systemctl start grafana-server
ps grafana默认监听在3000端口,可以在浏览器访问,默认用户名为Admin,密码为admin

- 安装zabbix插件
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server
- 安装完成后,在插件中找到zabbix并启用

- 配置数据源,根据需要填写相关zabbix信息并校验

- 这时zabbix已经收集到一些数据,使用默认模板进行简单显示
