Zabbix安装配置笔记

1、php安装配置

screen安装: yum install screen
wget安装: yum -y install wget
安装依赖: yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y
官网: http://php.net/get/php-5.6.31.tar.gz/from/a/mirror
获取: php-5.6.31.tar.gz
上传到服务器,解压: tar -zxvf php-5.6.31.tar.gz
进入: cd php-5.6.31

配置命令: 
./configure --prefix=/usr/local/php-5.6.31 --with-config-file-path=/usr/local/php-5.6.31/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=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
安装命令: make && make install

2、nginx安装配置

安装pcre : yum install pcre*
安装openssl : yum install openssl*
下载: wget http://nginx.org/download/nginx-1.6.3.tar.gz
解压: tar -zxvf nginx-1.6.3.tar.gz
进入: cd nginx-1.6.3

配置: ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
安装: make && make install 

进入ng的sbin目录: cd /usr/local/nginx/sbin
启动: ./nginx
启动验证:(1) netstat -ltpn 命令查看是否存在80端口; 浏览器访问ip地址,提示:Welcome to nginx!
关闭: ./nginx -s stop
重置: ./nginx -s reload
配置nginx.conf :

server {
	listen       80;
	server_name  test.zabbix.com;
	location / {
		autoindex on;
		root   /data/site/test.zabbix.com;
		index  index.php index.html index.htm;
	}
	location ~ \.php?.*$ {
		#autoindex on;
		root           /data/site/test.zabbix.com;
		#fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  /data/site/test.zabbix.com$fastcgi_script_name;
		include        fastcgi_params;
		fastcgi_pass   127.0.0.1:9000;
	}
}

3、安装zabbix

下载最新包: https://sourceforge.net/projects/zabbix/files/latest/download
上传解压: tar -zxvf zabbix-3.4.3.tar.gz
为zabbix创建数据库zabbix
执行sql语句:

mysql -uroot -h172.19.0.131 -pIot-IG123 zabbix < zabbix-3.4.3/database/mysql/schema.sql
mysql -uroot -h172.19.0.131 -pIot-IG123 zabbix < zabbix-3.4.3/database/mysql/images.sql
mysql -uroot -h172.19.0.131 -pIot-IG123 zabbix < zabbix-3.4.3/database/mysql/data.sql

进入: cd zabbix-3.4.3

配置: ./configure --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql 
安装: make && make install 
拷贝启动脚本并赋予权限:
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
cp misc/init.d/tru64/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_*
将php页面文件拷贝到ng指定的路径:
cp -r frontends/php/* /data/site/test.zabbix.com/
如果指定路径原先存在index.php则: 
mv /data/site/test.zabbix.com/index.php /data/site/test.zabbix.com/index.php.bak

本地访问: http://test.zabbix.com
本地hosts中需要配置: 172.19.0.131 test.zabbix.com
(1)初始化必须插件与配置, 需要修改一些php的配置,在php.ini文件中

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
extension=bcmath.so
mbstring.func_overload = 0

(2)数据库配置
-uroot -h172.19.0.131 -pIot-IG123 zabbix
(3)Zabbix server配置可选
(4)最后是信息确认,完成即可
错误: 如果报错: Cannot create the configuration file.
原因: 没有权限去修改文件
解决: 把服务器中php文件全部赋予777权限,即可。
(5)登录。默认用户密码: admin / zabbix

4、zabbix的server与agent

(1)、zabbix的server与agent貌似不能在root下启动,需要创建另外的用户
(2)server启动
配置文件 : zabbix-3.4.3/conf/zabbix_server.conf
基本配置 :

DBHost=172.19.0.131
DBName=zabbix
DBUser=root
DBPassword=Iot-IG123

启动命令: zabbix_server -c zabbix-3.4.3/conf/zabbix_server.conf
(2)agent启动
配置文件 : zabbix-3.4.3/conf/zabbix_agentd.conf
基本配置 :

Server=172.19.0.131
ServerActive=172.19.0.131
Hostname=testcq131

注意: testcq131既是本机hostname,在zabbix监控页面,也要配置为该名称。
启动命令: zabbix_agentd -c zabbix-3.4.3/conf/zabbix_agentd.conf

异常: Not found mysqlclient library
安装: yum install mysql-devel

异常: unable to find net-snmp-config
安装: yum install net-snmp-devel

异常: Unable to use libevent
安装: yum -y install libevent libevent-devel

5、用户创建

查看当前用户组: groups
查看用户组及其成员: groups root
创建用户组: groupadd hadoop
在用户组hadoop中创建用户: useradd -g hadoop zabbix
设置密码: passwd zabbix
root跳转到zabbix用户下: su zabbix

注:
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名

6、其他机子上安装agent

(1)创建zabbix用户,并进入用户。
下载最新包: https://sourceforge.net/projects/zabbix/files/latest/download
上传解压: tar -zxvf zabbix-3.4.3.tar.gz
(2)在root用户,进入zabbix-3.4.3路径执行

配置: ./configure --enable-agent 
安装: make && make install 

注意: 非root用户,很多写命令的路径没得权限

7、监控Mysql

创建脚本: chk_mysql.sh
内容如下,只需修改mysql配置即可:
配置zabbix_agentd.conf :

基本配置 : 
Server=172.19.0.131
ServerActive=172.19.0.131
Hostname=igtest110
Mysql配置 : 
# 获取mysql版本
UserParameter=mysql.version,mysql -V
# 获取mysql性能指标,这个是上面定义好的脚本
UserParameter=mysql.status[*],/home/zabbix/template/chk_mysql.sh $1
# 获取mysql运行状态
UserParameter=mysql.ping,mysqladmin -uroot -pIot-IG123 -P3306 -h172.19.0.110  ping | grep -c alive

注意: 三个key是相同的。
启动agent :
zabbix_agentd -c zabbix-3.4.3/conf/zabbix_agentd.conf

8、配置agent

(1)访问: http://test.zabbix.com/
(2)Configuration -> Hosts -> Create Host
(3)Host选项页配置
Host name : igtest110
Visible name : igtest110
Groups In groups : 选择分组,将要监控的几个服务器集合在一个分组。或者在 New group 中创建一个新分组。
IP address : 172.19.0.110
Dns name : igtest110
port : 10050 (默认不变)
(4)templates选项页配置
点击select -> 选择Template DB MySQL -> Add (注意: 不是下面显目的按钮)
(5)最后提交,可以再host列表中看到刚才的配置

9、如果监控的没有数据,请排查一下问题:

(1)zabbix客户端是否重启
(2)脚本是否有执行权限
(3)数据库是否有权限
(4)环境变量是否有问题
(5)请看zabbix item列,鼠标移至红色叉上,有错误提示。
(6)页面自己有刷新按钮,使用刷新按钮刷新; 不要使用F5刷新url。

chk_mysql.sh :

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    check_mysql.sh
# Revision:    1.0
# Date:        2015/06/09
# Author:      DengYun
# Email:       dengyun@ttlsa.com
# Website:     www.ttlsa.com
# Description: 
# Notes:       ~
# -------------------------------------------------------------------------------
# Copyright:   2015 (c) DengYun
# License:     GPL
 
# 用户名
MYSQL_USER='root'
 
# 密码
MYSQL_PWD='Iot-IG123'
 
# 主机地址/IP
MYSQL_HOST='172.19.0.131'
 
# 端口
MYSQL_PORT='3306'
 
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
 
# 参数是否正确
if [ $# -ne "1" ];then 
    echo "arg error!" 
fi 
 
# 获取数据
case $1 in 
    Uptime) 
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` 
        echo $result 
        ;; 
    Com_update) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Slow_queries) 
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` 
        echo $result 
        ;; 
    Com_select) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` 
        echo $result 
                ;; 
    Com_rollback) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Questions) 
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` 
                echo $result 
                ;; 
    Com_insert) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_delete) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_commit) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_sent) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_received) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_begin) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` 
                echo $result 
                ;; 
                        
        *) 
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" 
        ;; 
esac
qr
分享 : 分享到微信朋友圈
读更多的书,交更多的朋友,让我们一起成长。