ITPub博客

首页 > 应用开发 > IT综合 > ZABBIX安装以及监控磁盘、mysql、oracle配置

ZABBIX安装以及监控磁盘、mysql、oracle配置

原创 IT综合 作者:gxlineji 时间:2016-09-13 11:27:32 0 删除 编辑


主要介绍ZABBIX安装以及mysql、oracle的监控配置、自定义的磁盘监控(discovery方式)


一、ZABBIX服务器端的安装

安装前准备
vim /etc/yum.repos.d/php.repo
[base]
name=CentOS-6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm

登录数据库,创建帐号和设置权限:
mysql -uroot -proot123
create database zabbix character set utf8;
grant all privileges on zabbix.* to zabbix_user@'10.100.105.%' identified by 'root123';

2.3安装zabbix服务
增加zabbix用户和组
#groupadd zabbix
#useradd -g zabbix -m zabbix
groupadd  -g 201 zabbix
useradd -g zabbix -u 201 -m zabbix

cd /home/software/
wget ftp://10.100.105.83/app_source/zabbix-2.2.2.tar.gz > /dev/null 2>&1 || ERROR "下载zabbix"
tar xvf zabbix-2.2.2.tar.gz 
cd zabbix-2.2.2/

导入数据库表
cd zabbix-2.2.2/database/mysql
mysql -uroot -proot123 zabbix < schema.sql
mysql -uroot -proot123 zabbix < images.sql 
mysql -uroot -proot123 zabbix < data.sql

cd ../../zabbix-2.2.2/
./configure --prefix=/usr/local/software/zabbix-2.2.2/ --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy
 make && make install

添加服务端口
vim /etc/services
zabbix-agent    10050/tcp               # Zabbix Agent
zabbix-agent    10050/udp               # Zabbix Agent
zabbix-trapper  10051/tcp               # Zabbix Trapper
zabbix-trapper  10051/udp               # Zabbix Trapper

修改server配置文件,添加zabbix数据库密码
vi /usr/local/software/zabbix-2.2.2/etc/zabbix_server.conf
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbix_user
DBPassword=root123
ListenIP=10.100.105.207

修改Agentd配置文件,更改HOSTNAME为本机的hostname
vim /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1
Server=10.100.105.207
Hostname=s017pm

#启动服务端,某些版本或者系统要求以
zabbix用户启动,下同
/usr/local/software/zabbix-2.2.2/sbin/zabbix_server
/usr/local/software/zabbix-2.2.2/sbin/zabbix_agentd

启动的时候报错误:
[root@s017pm: conf]# /usr/local/software/zabbix-2.2.2/sbin/zabbix_server 
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
解决办法:
ln -s /usr/local/software/mysql/lib/libmysqlclient.so.18 /usr/lib64

#添加服务自启动
echo "/usr/local/software/zabbix/sbin/zabbix_server" >> /etc/rc.d/rc.local
echo "/usr/local/software/zabbix/sbin/zabbix_agentd" >> /etc/rc.d/rc.local

cp /home/software/zabbix-2.2.2/misc/init.d/tru64/zabbix_server /etc/init.d/
cp /home/software/zabbix-2.2.2/misc/init.d/tru64/zabbix_agentd /etc/init.d/

vim /etc/init.d/zabbix_server
DAEMON=DAEMON=/usr/local/software/zabbix-2.2.2/sbin/zabbix_server

vim /etc/init.d/zabbix_agentd
DAEMON=DAEMON=/usr/local/software/zabbix-2.2.2/sbin/zabbix_agentd

chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig  zabbix_server  on
chkconfig  zabbix_agentd  on

#建立存储目录
mkdir  /var/www/html/zabbix
#拷贝网页前端文件到apache目录:
cp -R /home/software/zabbix-2.2.2/frontends/php/*  /var/www/html/zabbix/
chown  -R  zabbix:zabbix  /var/www/html/zabbix/

修改php参数:#php参数配置,按照zabbix的需求来.
vi  /etc/php.ini
date.timezone = "Asia/Shanghai"
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
#使用sed命令来修改
sed -i "s@;date.timezone =@date.timezone = Asia/Shanghai@g" /etc/php.ini
sed -i "s@max_execution_time = 30@max_execution_time = 300@g" /etc/php.ini
sed -i "s@post_max_size = 8M@post_max_size = 32M@g" /etc/php.ini
sed -i "s@max_input_time = 60@max_input_time = 300@g" /etc/php.ini
sed -i "s@memory_limit = 128M@memory_limit = 128M@g" /etc/php.ini
sed -i "s@;mbstring.func_overload = 0@ambstring.func_overload = 2@g" /etc/php.ini

web页面配置,配置http访问好了后web登陆:http://ip/zabbix
zabbix的默认登陆账号是admin,密码是zabbix


如果更改IP,需要修改/var/www/html/zabbix/conf/zabbix.conf.php 中的mysql 地址

二、ZABBIX客户端安装

客户端(10.100.105.208):
#groupadd zabbix
#useradd -g zabbix -s /sbin/nologin zabbix 
groupadd  -g 201 zabbix

useradd -g zabbix -u 201  -s /sbin/nologin zabbix 

tar xvf zabbix-2.2.2.tar.gz 
cd zabbix-2.2.2/
./configure --prefix=/usr/local/software/zabbix-2.2.2/ --enable-agent
make && make install

#复制zabbix_agentd启动文件到/etc/init.d目录下
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod 755 /etc/init.d/zabbix_agentd

vim /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
Server=10.100.105.207
ServerActive=10.100.105.207
UnsafeUserParameters=1
Include=/usr/local/software/zabbix-2.2.2/zabbix_agentd.conf.d/
Hostname=10.100.105.208
Timeout=10

#使用sed修改:
sed -i -e 's/Server=127.0.0.1/Server=10.100.105.207/g' -e 's/^ServerActive=127.0.0.1/ServerActive=10.100.105.207/g' -e 's/# UnsafeUserParameters=0/UnsafeUserParameters=1/g' -e 's/# Include=\/usr\/local\/etc\/zabbix_agentd.conf.d\//Include=\/usr\/local\/software\/zabbix-2.2.2\/etc\/zabbix_agentd.conf.d\//g' /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=10.100.105.208/g" /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
sed -i 's/^#Timeout=3/Timeout=10/g' /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf

三、磁盘监控

###创建脚本目录
mkdir -p /usr/local/software/zabbix-2.2.2/script
-----------------------------------------------
###创建监控io脚本
cat > /usr/local/software/zabbix-2.2.2/script/Disk_Static.sh << EOF
#!/bin/sh
##获取IO
IO=\`iostat -d -x 1 3 |grep \$1\`
echo "\$IO" |awk '{a=a+\$12}END{print a/3}'
EOF
-----------------------------------------------
###创建监控Io配置文件
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/Disk_Static.conf << EOF
UserParameter=Disk_Static[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/Disk_Static.sh \$1
EOF

测试item key
./bin/zabbix_get -s 10.100.105.208 -p 10050  -k "Disk_Static[dm-0]"

四、IO监控(discovery方式)

(1)自动寻找磁盘

disk_scan.sh文件内容:
more /usr/local/software/zabbix-2.2.2/script/disk_scan.sh

点击(此处)折叠或打开

  1. #!/bin/bash
  2. #written by linengjiang
  3. diskarray=(`cat /proc/diskstats |grep -E "\bdm-[0123456789]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq 2>/dev/n
  4. ull`)
  5. length=${#diskarray[@]}
  6. printf "{\n"
  7. printf '\t'"\"data\":["
  8. for ((i=0;i<$length;i++))
  9. do
  10. printf '\n\t\t{'
  11. printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"
  12. if [ $i -lt $[$length-1] ];then
  13. printf ','
  14. fi
  15. done
  16. printf "\n\t]\n"
  17. printf "}\n"
(2)在zabbix_agentd.conf.d加入监控项(也可以写在zabbix_agentd.conf)
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/disk_monitor.conf << EOF
UserParameter=io.scandisk[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/disk_scan.sh  \$1
EOF

(3)新建模板
Template:Templates_Disk_Static

(4)新建Discovery rules
Name:io_status_discovery
Type:Zabbix_agent
Key:io.scandisk
Update interval(in sec):30

(5)新建好discovery rule之后,就可以开始写item prototypes了,下面是一个例子avgqu-sz(平均I/O队列长度)
Name:IO_avgqu-sz on $1
Type:Zabbix_agent
Key:io.avgqu-sz[{#DISK_NAME}]
Type of information:Numeric(float)
Units:length

(6) 在建立好item之后,zabbix_agentd.conf.d/disk_monitor.conf中也要写上相应的UserParameters
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/disk_monitor.conf << EOF
UserParameter=io.scandisk[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/disk_scan.sh  \$1
UserParameter=io.rps[*],cat /tmp/iostat_output|grep "\b\$1\b"|awk '{a=a+\$\$4;b+=1}END{print(a/b)}'
UserParameter=io.wps[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$5;b+=1}END{print(a/b)}'
UserParameter=io.rMBs[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$6;b+=1}END{print(a/b)}'
UserParameter=io.wMBs[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$7;b+=1}END{print(a/b)}'
UserParameter=io.avgrq-sz[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$8;b+=1}END{print(a/b)}'
UserParameter=io.avgqu-sz[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$9;b+=1}END{print(a/b)}'
UserParameter=io.await[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$10;b+=1}END{print(a/b)}'
UserParameter=io.svctm[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$11;b+=1}END{print(a/b)}'
UserParameter=io.util[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$12;b+=1}END{print(a/b)}'
EOF

disk_monitor.conf文件内容:
more /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/disk_monitor.conf
UserParameter=io.scandisk[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/disk_scan.sh  $1
UserParameter=io.rps[*],cat /tmp/iostat_output|grep "\b$1\b"|awk '{a=a+$$4;b+=1}END{print(a/b)}'
UserParameter=io.wps[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$5;b+=1}END{print(a/b)}'
UserParameter=io.rMBs[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$6;b+=1}END{print(a/b)}'
UserParameter=io.wMBs[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$7;b+=1}END{print(a/b)}'
UserParameter=io.avgrq-sz[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$8;b+=1}END{print(a/b)}'
UserParameter=io.avgqu-sz[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$9;b+=1}END{print(a/b)}'
UserParameter=io.await[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$10;b+=1}END{print(a/b)}'
UserParameter=io.svctm[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$11;b+=1}END{print(a/b)}'
UserParameter=io.util[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$12;b+=1}END{print(a/b)}'

(7)新建graph prototype
Name:IO_graph on {#DISK_NAME}
With:900
Heigth:200
Item:

(8)采集io监控数据
#zabbix_agentd io
*/2 * * * * root   "iostat  -x -m 2 5 >/tmp/iostat_output"

(9) zabbix_get -s 10.50.8.19 -k 'io.scandisk'
./bin/zabbix_get  -s 10.50.8.38 -k 'io.util[dm-0]'

五、监控端口服务

cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/Check_Port.sh<< EOF
#!/bin/sh
##监控服务服务
ERROR(){
    echo 0
    exit
}

netstat -nltp | grep $1 > /dev/null || ERROR
echo 1
EOF

#修改权限
chown  -R zabbix.zabbix /usr/local/software/zabbix-2.2.2

#在iptables中放行10050和10051端口
sed -i 's/COMMIT/##zabbix\n-A RH-Firewall-1-INPUT -p tcp --dport 10050 -j ACCEPT\nCOMMIT/g' /etc/sysconfig/iptables

/etc/init.d/iptables restart

vim  /etc/init.d/zabbix_agentd 
#DAEMON=/usr/local/sbin/zabbix_agentd
DAEMON=/usr/local/software/zabbix-2.2.2/sbin/zabbix_agentd

使用sed修改:
sed -i 's/DAEMON=\/usr\/local\/sbin\/zabbix_agentd/#DAEMON=\/usr\/local\/sbin\/zabbix_agentd\nDAEMON=\/usr\/local\/software\/zabbix-2.2.2\/sbin\/zabbix_agentd/g' /etc/init.d/zabbix_agentd
/etc/init.d/zabbix_agentd start

六、自定义发邮件脚本 

配置发件人和SMTP服务器
more /etc/mail.rc 
set from=itmonitor@xxx.com
set smtp=smtp.xxx.com
set smtp-auth-user=itmonitor@xxx.com
set smtp-auth-password=dsdffdDss
set smtp-auth=login

指定脚本目录:
vim zabbix_server.conf
AlertScriptsPath=/usr/local/software/zabbix-2.2.2/script/alertscripts

编写发邮件脚本:
more /usr/local/software/zabbix-2.2.2/script/alertscripts/mail.sh 
#!/bin/bash
mailx -s "$subject" $to  

七、配置自带的mysql监控模板

cp /home/software/zabbix-2.2.2/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/
根据userparameter_mysql.conf 里的说明建立“.my.cnf”文件,并修改userparameter_mysql.conf里的"HOME="路径,指向“.my.cnf”文件所在目录。
[root@s017pm: script]# more .my.cnf
[mysql]
host     = 10.100.105.207
user     = root
password = root123
socket   = /usr/local/software/mysql/mysql.sock
[mysqladmin]
host     = 10.100.105.207
user     = zabbix
password = zabbix
socket   = /usr/local/software/mysql/mysql.sock

在mysql上创建用户
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

zabbix server端测试:
 ./zabbix_get -s 10.100.105.207 -p 10050  -k "mysql.size[all]"

八、oracle  orabbix 监控

http://www.smartmarmot.com/wiki/index.php/Orabbix#Requirements
wget http://nchc.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip

---more config.props |grep -v "#"-------------------------------------------------------------
ZabbixServerList=ZabbixServer1
ZabbixServer1.Address=10.100.105.207
ZabbixServer1.Port=10051

OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100

DatabaseList=DB1,DB2
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1

DB1.Url=jdbc:oracle:thin:@10.100.105.207:1521:bst_dev
DB1.User=zabbix
DB1.Password=zabbix
DB1.MaxActive=10
DB1.MaxWait=100
DB1.MaxIdle=1
DB1.QueryListFile=./conf/query.props

DB2.Url=jdbc:oracle:thin:@10.100.105.208:1521:bsttest
DB2.User=zabbix
DB2.Password=zabbix
DB2.QueryListFile=./conf/query.props
-----------------------------------------------------------------
cp /usr/local/software/zabbix-2.2.2/script/orabbix-1.2.3/init.d/orabbix /etc/init.d/
chmod +x /etc/init.d/orabbix
chmod +x /usr/local/software/zabbix-2.2.2/script/orabbix-1.2.3/run.sh

#在oracle数据库中创建zabbix用户
create user zabbix identified by "bstzabbix12657" default tablespace users temporary tablespace temp profile default account unlock;
grant alter session to zabbix;
grant connect to zabbix;
grant select any dictionary to  zabbix;

exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
commit;

zabbix服务端操作
 1、导入模板。模板在/usr/local/software/zabbix-2.2.2/script/orabbix-1.2.3/template.
       Orabbix_export_full.xml 全部导入(图表 监控项 触发器)
       Orabbix_export_graphs.xml 图表
       Orabbix_export_items.xml 监控项
       Orabbix_export_triggers.xml 触发器

2、添加主机(名字必须跟config.props里面定义的名称的配置保持一致)

3、关联模板
4、结果演示

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10995764/viewspace-2124876/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: RMAN异机恢复
请登录后发表评论 登录
全部评论

注册时间:2008-09-11

  • 博文量
    48
  • 访问量
    76656