CentOS 7安装Zabbix 3.4

Zabbix 3.4 支持Centos 7。貌似不支持6.9.

更多详细内容请参考官方说明文档,详细的安装要求不贴出来了。

https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirements

虚拟机配置 双核 8G内存

01、最小化安装操作系统

02、升级系统组件到最新版本

sudo yum -y update

03、关闭 SELinux

sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

04、关闭防火墙

sudo systemctl stop firewalld.service && systemctl disable firewalld.service

完成3、4两步,重启一下。

05、获取SQL源

sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

可以从https://dev.mysql.com/downloads/file/?id=470281下载

未分类

未分类

06、安装 Zabbix 所需软件支持包

未分类

先装mysql

sudo yum install mysql-* --skip-broken 有冲突的软件跳过

未分类

安装Apache

sudo yum -y install httpd

systemctl start httpd.service #启动

systemctl stop httpd.service #停止

systemctl restart httpd.service #重启

systemctl enable httpd.service #开机启动

systemctl disable httpd.service #开机不启动

安装php

sudo yum install php

安装php扩展

sudo yum install php-mysqlnd php-gd libjpeg* php-snmp php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash php-common php-ctype php-xml php-xmlreader php-xmlwriter php-session php-mbstring php-gettext php-ldap php-mysqli --skip-broken

sudo yum install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC

未分类

07、设置 MySQL 参数(8GB 内存为例)

sudo vim /etc/my.cnf  不然没权限保存

在文件最后添加以下内容:

innodb_file_per_table = 1
innodb_status_file = 1
innodb_buffer_pool_size = 6G
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 64M
innodb_support_xa = 0
default-storage-engine = innodb
bulk_insert_buffer_size = 8M
join_buffer_size = 16M
max_heap_table_size = 32M
tmp_table_size = 32M
max_tmp_tables = 48
read_buffer_size = 32M
read_rnd_buffer_size = 16M
key_buffer_size = 32M
thread_cache_size = 32
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_rollback_on_timeout = 1
query_cache_size = 16M
query_cache_limit = 16M
collation_server = utf8_bin
character_set_server = utf8

未分类

注:原则上 innodb_buffer_pool_size 需要设置为主机内存的 80%,如果主机内存不是 8GB,以上参数可依据相应比例进行调整,例如主机内存为 16GB,则 innodb_buffer_pool_size 建议设置为 12GB,innodb_log_buffer_size 建议设置为 32M,innodb_log_file_size 建议设置为 128M,以此类推。请注意innodb_buffer_pool_size的值必须是整数,例如主机内存是4G,那么innodb_buffer_pool_size可以设置为3G,而不能设置为3.2G

08、启动 MySQL

sudo systemctl enable mysqld && systemctl start mysqld

09、获取 MySQL 的 root 初始密码

grep 'temporary password' /var/log/mysqld.log

未分类

JtZizq!Rl6E+

10、进行 MySQL 安全配置

配置开始时会用到第 09获取的初始密码,建议修改为自定义密码,其它选项选择 y 即可

mysql_secure_installation

未分类

密码改为:Aa123456,.

11、重启 MySQL

sudo systemctl restart mysqld

12、配置 MySQL 中 zabbix要的库和账号权限

mysql -u root -p(需要输入第 10步中设置的自定义密码)

mysql>create database zabbix character set utf8; #创建数据库

mysql>create user zabbix@'%' identified by 'Qingdao@2017'; #创建用户和密码

mysql>grant all privileges on zabbix.* to zabbix@'%'; #赋权

mysql>flush privileges;

mysql>exit;

13、安装 Zabbix源

sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/

14、安装zabbix

sudo yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-java-gateway zabbix-web

15、导入 zabbix 所需信息

cd /usr/share/doc/zabbix-server-mysql-3.4.3

zcat create.sql.gz | mysql -uroot zabbix -p(需要输入第 10 步中设置的自定义密码)

16、配置 zabbix 参数

sudo vim /etc/zabbix/zabbix_server.conf 这个配置要一遍过

主要是以下几个选项参数需要设置(8GB 内存为例):

DBPassword 配置为第 12 步第 3 行中设置的自定义密码

未分类

CacheSize=512M

(CacheSize在371行)

HistoryCacheSize=128M

(HistoryCacheSize在397行)

HistoryIndexCacheSize=128M

(HistoryIndexCacheSize在405行)

TrendCacheSize=128M

(TrendCacheSize在414行)

ValueCacheSize=256M

(ValueCacheSize在425行)

Timeout=30

(Timeout在432

其它参数保持默认值即可

如果需要监控VMware虚拟机,则还需要设置以下选项参数:

StartVMwareCollectors=2

(StartVMwareCollectors在272行

VMwareCacheSize=256M

(VMwareCacheSize 在298行)

VMwareTimeout=300

(VMwareTimeout在306行)

17、配置 Apache 中的 PHP 参数(8GB 内存为例)

sudo vim /etc/httpd/conf.d/zabbix.conf

php_value max_execution_time 600

php_value memory_limit 256M

php_value post_max_size 32M

php_value upload_max_filesize 32M

php_value max_input_time 600

php_value always_populate_raw_post_data -1

date.timezone 去掉注释符号#,并将值修改为 Asia/Shanghai

18、重启系统

systemctl stop mysqld && reboot

19、启动 zbx

sudo systemctl start httpd && systemctl start zabbix-server

20、在浏览器中输入 http://zbx监控服务器的IP地址/zabbix,进行 zabbix 的页面初始化配置

未分类

未分类

这个页面PHP设置要求全部OK

未分类

如果密码输错,是跳转不到下一步的。密码是前面设置的 Qingdao@2017

未分类

未分类

未分类

注:第4步的”Zabbix server detail”页面中,”Name”处可填写对此监控系统的描述性文字,支持中文,有点像网站的名称。

未分类

未分类

21、第一次登录zbx监控系统,默认用户名 admin,默认密码 zabbix,确认可正常登录系统。

未分类

22、登录进入系统后,确认 Zabbix server is running 的值是 Yes。

然后选择 Administrator –> Users –> Admin

未分类

未分类

23、回到”监测中” –> “仪表板”,就可以看到监控系统已设置为中文界面了。

未分类

CentOS 6/7修改主机名hostname

CentOS 7

RHEL 7新增了hostnamectl命令,基于RHEL 7的CentOS 7相应的可以使用hostnamectl来修改主机名。

hostnamectl把主机名分为以下三种:

  • 静态主机名:hostnamectl用来在系统启动时初始化内核的主机名。
  • 瞬态主机名:由DHCP等一些系统临时分配的主机名,如果系统存在静态主机名且有效,则不会用到瞬态主机名。
  • pretty主机名:静态和瞬态主机名都是要符合域名的字符串,而pretty主机名则可以包含其他一些特殊字符。

查看主机名

使用hostnamectl或hostnamectl status查看主机信息

[root@myhostname ~]# hostnamectl
  Static hostname: myhostname
Transient hostname: transientName
     Icon name: computer-vm
      Chassis: vm
    Machine ID: xxxxxxxx
      Boot ID: xxxxxxxx
  Virtualization: kvm
 Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
      Kernel: Linux 3.10.0-693.2.2.el7.x86_64
   Architecture: x86-64

设置主机名

使用hostnamectl的set-hostname命令设置主机名。

[root@myhostname ~]# hostnamectl set-hostname test
[root@myhostname ~]# hostnamectl
  Static hostname: test
     Icon name: computer-vm
      Chassis: vm
    Machine ID: xxxxxxxx
      Boot ID: xxxxxxxx
  Virtualization: kvm
 Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
      Kernel: Linux 3.10.0-693.2.2.el7.x86_64
   Architecture: x86-64

对比两次的hostname,使用hostnamectl set-hostname test后,Transient hostname已被删除。

注意到hostname设置为test后,终端提示还是root@myhostname,退出重新登录即会显示新的hostname。

设置瞬态主机名

hostnamectl set-hostname --transient transientName

设置静态主机

hostnamectl set-hostname --static  staticName

单独设置静态主机名,设置静态主机名为永久修改主机名,重启机器不会影响。

设置静态主机名实际是会修改/etc/hostname文件的主机名,系统重启时会读取/etc/hostname来初始化内核主机名。

设置pretty主机名

hostnamectl set-hostname --pretty prettyName

CentOS 6

永久修改主机名

CentOS 6永久修改主机名需要修改两个文件/etc/sysconfig/network和/etc/hosts。

/etc/sysconfig/network修改HOSTNAME的值

HOSTNAME=myNewHostName

为了避免出现一些其他问题,修改/etc/hosts里的hostname。

修改后重启服务器reboot。

运行时修改主机名

使用hostname命令可以在不重启主机的情况下修改主机名。

hostname newhostname

重启机器后,主机名会重新变为原来的主机名。

Centos禁止ping的设置

网站攻击一般是从ping开始的,黑客攻击网站前会先ping下服务器看其是否在线,所以如果服务器禁止ping,可以有效减少服务器被攻击次数。Centos系统默认是允许ping的,如你有服务器root账户管理权限,可以通过修改Centos系统内核参数永久禁止ping。

编辑/etc/sysctl.conf,

vi /etc/sysctl.conf

在/etc/sysctl.conf最后增加以下内容:

net.ipv4.icmp_echo_ignore_all=1

保存后执行sysctl -p命令配置生效。

sysctl -p

配置生效后,ping服务器收不到任何响应,ping被永久禁止。

可能某天你需要服务器允许ping了,可以删除/etc/sysctl.conf文件中的“net.ipv4.icmp_echo_ignore_all=1”或者将其修改为“net.ipv4.icmp_echo_ignore_all=0”,然后执行sysctl -p命令使配置生效,配置生效后服务器又可以正常被ping通了。

centos重新安装,卸载python yum

公司测试机环境不知道给我卸了什么包,导致yum运行报错状况:

  • 系统版本:Red Hat Enterprise Linux Server release 6.2 (Santiago)

  • 内核版本:2.6.32-220.el6.x86_64

  • 报错情况:

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

No module named sqlite

Please install a package which provides this module, or
verify that the module is installed correctly.

It’s possible that the above module doesn’t match the
current version of Python, which is:

一、升级或卸载Python导致

1、查看已安装python的版本,可能是当前系统存在多个python导致

[root@test ~]# whereis python
python: /usr/bin/python2.6 /usr/bin/python /usr/bin/python2.6-config /usr/lib/python2.6 /usr/lib64/python2.6 /usr/include/python2.6 /usr/share/man/man1/python.1.gz
[root@test ~]# vi /usr/bin/yum

将 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

如果是源代码安装的,默认路径是/usr/local/bin/python2.6,做个软链接即可

rm -rf /usr/bin/python
ln -s /usr/local/bin/python2.6 /usr/bin/python

二、完全重装python和yum

1、删除现有Python

[root@test ~]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps ##强制删除已安装程序及其关联
[root@test ~]# whereis python |xargs rm -frv ##删除所有残余文件 ##xargs,允许你对输出执行其他某些命令
[root@test ~]# whereis python ##验证删除,返回无结果

2、删除现有的yum

[root@test ~]# rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
[root@test ~]# whereis yum |xargs rm -frv

3、从http://mirrors.ustc.edu.cn/centos/6.4/os/x86_64/Packages/下载相应的包

python-2.6.6-36.el6.x86_64.rpm
python-devel-2.6.6-36.el6.x86_64.rpm
python-libs-2.6.6-36.el6.x86_64.rpm
python-pycurl-7.19.0-8.el6.x86_64.rpm
python-setuptools-0.6.10-3.el6.noarch.rpm
python-urlgrabber-3.9.1-8.el6.noarch.rpm  
python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm-python-4.8.0-32.el6.x86_64.rpm
yum-3.2.29-40.el6.centos.noarch.rpm
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
yum-utils-1.1.30-14.el6.noarch.rpm
yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm     
yum-plugin-protectbase-1.1.30-14.el6.noarch.rpm
yum-plugin-aliases-1.1.30-14.el6.noarch.rpm
yum-plugin-downloadonly-1.1.30-14.el6.noarch.rpm

由于源中版本会更新,具体请查看URL中的版本再下载下来!

[root@test ~]# rpm -Uvh --replacepkgs python*.rpm
[root@test ~]# rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm

可能之间还需要zlib和zlib-devel包,根据情况下载并安装!

三、运行python进行测试

[root@test ~]# python
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum
>>>

如上,要是什么都没报,则说明OK啦~

CentOS-7.0.中安装与配置Tomcat-7的方法

安装说明

  • 安装环境:CentOS-7.0.1406
  • 安装方式:源码安装
  • 软件:apache-tomcat-7.0.29.tar.gz
  • 下载地址:http://tomcat.apache.org/download-70.cgi

安装前提

系统必须已安装配置JDK6+

安装tomcat

将apache-tomcat-7.0.29.tar.gz文件上传到/usr/local中执行以下操作:

代码如下:

[root@linuxidc local]# cd /usr/local
[root@linuxidc local]# wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz
[root@linuxidc local]# tar -zxv -f apache-tomcat-7.0.29.tar.gz // 解压压缩包
[root@linuxidc local]# rm -rf apache-tomcat-7.0.29.tar.gz // 删除压缩包
[root@linuxidc local]# mv apache-tomcat-7.0.29 tomcat

启动Tomcat

执行以下操作:

代码如下:

[root@linuxidc ~]# /usr/local/tomcat/bin/startup.sh //启动tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.7.0/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

出现以上信息说明已成功启动。

防火墙开放8080端口

增加8080端口到防火墙配置中,执行以下操作:

[root@linuxidc ~]# vi + /etc/sysconfig/iptables
#增加以下代码
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

重启防火墙

[root@linuxidc java]# service iptables restart

检验Tomcat安装运行

通过以下地址查看tomcat是否运行正常:

http://192.168.15.231:8080/

看到tomcat系统界面,说明安装成功!

停止Tomcat

[root@linuxidc ~]#  /usr/local/tomcat/bin/shutdown.sh  //停止tomcat

CentOS下Nginx的HTTPS配置

在前面的博客里也到了nginx的安装,现在需要给网站添加安全证书的达到可以实现https请求的功能。

1. 首先我们需要一个证书

可以使用自签名的证书(如何自签可以网上搜索下),虽然可以使用但不会被chrome,firefox,Safari等浏览器认可。

也可以去网上购买证书,加个几百元到上万元不等可以自行选择合适价位的证书,不过我在阿里云的购买证书上发现了赛门铁克的0元dv ssl可以使用一年,初次使用推荐去购买一个。

2. nginx的ssl模块安装

安装时直接./configure是不会安装ssl模块的,需要加上

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_realip_module 
make
make install

3. nginx的ssl配置

添加新的server代码块用来监听443端口

... 

#服务器的集群  
upstream  tomcats {  #服务器集群名字   
   server    127.0.0.1:8080  weight=10;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
   #server    127.0.0.1:28080  weight=2;  
}  

server {
     listen     443;
     server_name  www.xxx.com;

     ssl on; 

     ssl_certificate   /usr/local/cert/证书名.pem;
     ssl_certificate_key  /usr/local/cert/证书名.key;
     ssl_session_timeout 5m;
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;

    location / {
        root html;
        proxy_pass http://tomcats;        
        index index.html index.htm;
    }



}
...

4. 将http重定向到https

server { 
listen 80; 
server_name www.xxx.com;
#添加下面这条代码  
rewrite ^(.*)$  https://$host$1 permanent; #用于将http页面重定向到https页面

  location / {
    root html;
    proxy_pass http://tomcats;
    index index.html index.htm;
}

5. 重启nginx

/usr/local/nginx/sbin/nginx -s reload

如何在CENTOS/REDHAT/FEDORA中安装MARIADB GALERA CLUSTER 10.0(数据库集群)

MariaDB Galera Cluster 10.0.12稳定已被释放,可供生产使用。MariaDB的是一个关系型数据库管理系统(RDBMS)。一般我们使用的小型应用程序,使用数据库服务器的单个节点服务。但是当有成千上万的用户不断在网上请求访问应用程序时,在这种情况下,我们需要一个架构,这将能够处理这种负载,并提供高可用性。因此,我们需要增加彼此互连的多个数据库服务器,并保持同步,因此在任何情况下,某一服务器出现故障,其他服务器可以继续向用户提供服务。

未分类

本文将帮助你建立MariaDB Galera Cluster10.0.12用CentOS 6.5运行3个节点。集群服务器具体如下。

  • 集群DB1:192.168.1.10(主机名: db1.howtoing.com )
  • 集群DB2:192.168.1.20(主机名: db2.howtoing.com )
  • 集群DB3:192.168.1.30(主机名: db3.howtoing.com )

注意: 第1步/2/3 将完成所有群集节点,操作过程和节点具体配置。

第1步:添加MariaDB存储库

创建一个MariaDB存储库/etc/yum.repos.d/mariadb.repo在你的系统中使用下面的内容。 下面存储库将在CentOS 6.x的系统工作,对于其他系统中使用存储库生产工具,并添加到您的系统。 在CentOS 6 – 64位

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

在CentOS 6 – 32位

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

第2步:安装MariaDB和Galera

安装MariaDB Galera群集程序包之前,删除系统上安装任何现有的MySQL或MariaDB的包。并在所有节点上使用以下命令安装。

# yum install MariaDB-Galera-server MariaDB-client galera

第3步:初始MariaDB配置

在上述步骤成功安装包之后,做一些初步MariaDB的配置。使用下列命令并按照群集的所有节点上的说明。它将提示设置root帐户密码。

# service mysql start
# mysql_secure_installation

之后,创建所有的节点用户,它可以从您的网络集群中的访问数据库中MariaDB的用户。

# mysql -u root -p

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'cluster'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

启动群集配置之前停止MariaDB服务

# service mysql stop

第4步:DB1设置MariaDB Galera Cluster

让我们安装MariaDB Galera Cluster从DB1服务器开始。编辑MariaDB服务器配置文件,并在[MariaDB]部分添加下面的值。

[root@db1 ~]# vim /etc/my.cnf.d/server.cnf
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.10,192.168.1.20,192.168.1.30"
wsrep_cluster_name='cluster1'
wsrep_node_address='192.168.1.10'
wsrep_node_name='db1'
wsrep_sst_method=rsync
wsrep_sst_auth=cluster:password

使用以下命令启动集群。

[root@db1 ~]# /etc/init.d/mysql bootstrap
Bootstrapping the clusterStarting MySQL.... SUCCESS!

如果你在启动过程中有任何问题,请检查MariaDB的错误日志文件,在 /var/lib/mysql/.err

第5步:添加DB2,在MariaDB的集群中

DB1成功启动集群后。在DB2上开始配置。编辑MariaDB的服务器配置文件,并在[MariaDB]部分添加下面的值。所有设置都差不多,除了wsrep_node_address,wsrep_cluster_address和wsrep_node_name DB1 。

[root@db2 ~]# vim /etc/my.cnf.d/server.cnf
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.10,192.168.1.20,192.168.1.30"
wsrep_cluster_name='cluster1'
wsrep_node_address='192.168.1.20'
wsrep_node_name='db2'
wsrep_sst_method=rsync
wsrep_sst_auth=cluster:password

使用以下命令启动集群。

[root@db2 ~]# /etc/init.d/mysql start
Starting MySQL..... SUCCESS!

第6步:添加DB3,在MariaDB的集群中

此服务器是可选的,如果你想只有两个集群服务器,则可以忽略这一步,如果不配置DB3 你需要从DB1/DB2配置文件中删除第三个服务器IP。要添加此服务器进行修改和DB2一样。

[root@db3 ~]# vim /etc/my.cnf.d/server.cnf
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.10,192.168.1.20,192.168.1.30"
wsrep_cluster_name='cluster1'
wsrep_node_address='192.168.1.30'
wsrep_node_name='db2'
wsrep_sst_method=rsync
wsrep_sst_auth=cluster:password

使用以下命令启动集群。

[root@db3 ~]# /etc/init.d/mysql start
Starting MySQL..... SUCCESS!

第7步:测试MariaDB的Galera群集设置

在这个阶段,您的群集安装已经完成,并正常运行。现在,您可以测试通过在集群的任何服务器创建数据库和表群集安装,它会立即复制到群集中的所有服务器。

阿里云CentOS安装Jenkins

Jenkins是一个用Java编写的开源自动化服务器。 Jenkins有助于自动化完成非人员部分的软件开发过程,不断整合和促进连续交付的技术方面。 它是一个基于服务器的系统,可在servlet容器(如Apache Tomcat)中运行。 它支持版本控制工具,包括CVS,Subversion,Git,Mercurial,RTC等,并且可以执行Apache Ant,Apache Maven和基于sbt的项目以及任意shell脚本和Windows批处理命令。

构建可以通过各种手段触发,例如通过在版本控制系统中提交,通过类似cron的机制进行调度,并通过请求特定的构建URL。 也可以在队列中的其他构建完成后触发。 Jenkins功能可以通过插件扩展。

安装Jenkins

使用以下命令安装jenkins:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

安装Java:

判断Java是否已经安装

java --version

如果不存在,则用如下命令进行安装:

sudo yum install java

启动、关闭jenkins服务

sudo service jenkins start/stop/restart

阿里云安全组配置

  1. 登录 云服务器管理控制台。

  2. 单击左侧导航中的 安全组。

  3. 选择地域。

  4. 找到要授权规则的安全组,单击 配置规则。

  5. 单击 添加安全组规则。

  6. 在弹出的对话框中,设置下面参数:

未分类

CentOS 6 通过iptables进行流量转发

受限于国内网络环境以及国际出口的成天炸炸炸,当然这一切都可以通过加钱来解决,加钱世界可及 — 中国奠信

有些服务器的网络面向大陆比较友好,例如阿里云香港B/C区、腾讯云香港,这时可以通过使用iptables进行流量转发来让那些面向大陆网络情况不是很友好的服务器,也能跑满100Mbps甚至更高。

流量转发的方案很多,iptables算是其中一种,还有HaProxy和SoCat,不过都有比较大的局限,例如HaProxy无法转发UDP,SoCat无法批量转发多个端口,但是单端口转发SoCat是个不错的选择。

既然要进行流量转发,那么首先要开启服务器的转发功能,打开控制台输入 vi /etc/sysctl.conf 然后找到 net.ipv4.ip_forward = 0 修改为 net.ipv4.ip_forward = 1 随后保存。

执行 sysctl -p 来使更改生效。

然后执行以下命令来添加iptables转发规则

单端口转发

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]

端口段转发,栗子:转发10000到20000这个端口段,则填10000:20000

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]

最后保存规则和重启iptables服务

service iptables save

service iptables restart

现在可以去试试看流量转发后速度效果如何了。

最小化安装 CentOS 7.3 部署 Cacti-1.1.23 详细步骤

Cacti 是一个利用 RRDTool 数据存储和绘图功能的完整的网络图形解决方案。Cacti 提供了快速的数据轮询、高级图形模板、多样的数据获取方法以及用户管理等功能。并以直观易于使用的接口来呈现,这在具有成千上万个设备的复杂网络上是有意义的。

一、安装环境

安装 Cacti 需要 Mysql,PHP,RRDTool,net-snmp 和 支持 PHP 的 Web服务器,如 Apache,Nginx 或 IIS等。

版本要求:

  • RRDTool 1.3 或更高版本,http://oss.oetiker.ch/rrdtool/

  • MySQL 5.1 或更高版本,https://mysql.com/

  • MariaDB 5.5 或更高版本,https://mariadb.org/

  • PHP 5.4 或更高版本,https://php.net/

  • 支持PHP的Web服务器,如Apache,NGINX 或 IIS(https://www.apache.org/,https://www.nginx.com/)

本次安装 Cacti-1.1.23 使用相关软件及版本为:

  • RRDTool 1.4.8

  • MariaDB 10.2.8 (mariadb mariadb-server)

  • PHP 5.4.16 (php php-snmp php-ldap php-xml php-session php-sockets php-pdo php-pdo-mysql php-mbstring php-pcre php-json php-openssl php-gd php-gmp php-zlib)

  • Apache httpd 2.4.6

  • net-snmp 5.7.2 (net-snmp net-snmp-utils)

  • crond (cronie 或其他类似软件)

为了安装官方补丁,还需要安装一些工具软件

  • wget

  • patch

二、软件安装

2.1 更新 YUM 源

添加 MariaDB YUM 仓库

# cat > /etc/yum.repos.d/MariaDB.repo <<EOF

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/10.2/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

EOF

2.2 安装 Cacti 部署环境所需软件包

# yum install -y httpd mariadb mariadb-server mariadb-devel net-snmp net-snmp-utils net-snmp-libs net-snmp-agent-libs net-snmp-devel php php-snmp php-ldap php-pdo php-mysql php-devel php-pear php-common php-gd php-mbstring php-xml php-process rrdtool rrdtool-php rrdtool-perl rrdtool-devel gcc openssl-devel dos2unix autoconf automake binutils libtool cpp postfix glibc-headers kernel-headers glibc-devel gd gd-devel help2man ntpdate wget patch

三、环境配置

3.1 配置 PHP

修改 PHP 主配置文件 /etc/php.ini

关闭安全模式,以支持 rrdtool,允许 exec() 访问

[PHP]

safe_mode = Off

设置时区

[Date]

date.timezone = PRC

3.2 配置 Web 服务器 Apache httpd

编辑 /etc/httpd/conf.d/php.conf 配置文件,确保文件含有

# PHP is an HTML-embedded scripting language which attempts to make it

# easy for developers to write dynamically generated webpages.

LoadModule php5_module modules/libphp5.so

#

# Cause the PHP interpreter to handle files with a .php extension.

AddHandler php5-script .php

如果你不打算将 Cacti 安装到 Web 服务器默认目录,如/var/www/html,就需要将下面内容添加

至 /etc/httpd/conf.d/cacti.conf 文件,并将其中的 /your/cacti/dir 替换为实际安装目录,将

Allow from 127.0.0.1 改为你公司所在网段。

# Cacti - the complete rrdtool-based graphing solution

# 

# Allows only localhost by default

#

# Allowing cacti to anyone other than localhost should be considered

# dangerous unless properly secured by SSL

# Make sure, that httpd can read your cacti directories.

# At minimum, you need

#    chmod ugo+r -R /your/cacti/dir

# Make sure to replace with your directories

# When using SELinux, set the following:

#    chcon -R -h -t httpd_sys_content_t /your/cacti/dir

# when using SELinux and you private homedir, enable

#    setsebool -P httpd_enable_homedirs 1

#    setsebool -P httpd_read_user_content 1

Alias /cacti /var/www/html/cacti

<Directory /var/www/html/cacti>

   AllowOverride None

   Order Deny,Allow

   Deny from all

   Allow from 127.0.0.1

   Allow from ::1

   Options Indexes Includes FollowSymLinks

</Directory>

# These directories do not require access over HTTP 

#

<Directory /var/www/html/cacti/cli>

    Order Deny,Allow

    Deny from All

    Allow from None

</Directory>

3.3 配置数据库 MariaDB

为安全起见,设置数据库 root 用户密码

# systemctl start mariadb

# mysqladmin -uroot password somepassword

导入时区数据到 mysql 数据库

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql -p

修改 /etc/my.cnf.d/server.cnf 文件,确保文件含有

[mysqld]

character_set_server = utf8mb4

collation_server = utf8mb4_unicode_ci

character_set_client = utf8mb4

max_connections = 100

max_heap_table_size = 48M

max_allowed_packet = 16777216

join_buffer_size = 64M

tmp_table_size = 64M

innodb_file_per_table = ON

innodb_buffer_pool_size = 240M

innodb_doublewrite = OFF

innodb_lock_wait_timeout = 50

innodb_flush_log_at_timeout = 3

innodb_read_io_threads = 32

innodb_write_io_threads = 16

3.4 配置 SNMP

配置 net-snmp-agent, 修改配置文件 /etc/snmp/snmpd.conf

将41行

com2sec notConfigUser  default       public

改为

com2sec notConfigUser  127.0.0.1     public

将62行

access  notConfigGroup ""      any       noauth    exact  systemview none none

改为

access  notConfigGroup ""      any       noauth    exact  all    none   none

将85行

#view all    included  .1                               80

改为

view all    included  .1                               80

四、安装配置 Cacti

4.1 下载解压 Cacti 安装包

# cd /var/www/html

# wget http://www.cacti.net/downloads/cacti-1.1.23.tar.gz

# tar zxvf cacti-1.1.23.tar.gz

4.2 创建 cacti 数据库,创建 cactiuser 用户,设置相关授权

# mysql -u root -p

MariaDB [(none)]> CREATE database cacti default character set utf8;

MariaDB [(none)]> create user 'cactiuser'@'localhost' identified by 'cactiuser';

MariaDB [(none)]> grant all privileges on cacti.* to cactiuser@localhost;

MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser';

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> quit

4.3 导入 Cacti 默认数据库

# mysql -uroot -p cacti < /var/www/html/cacti-1.1.23/cacti.sql

4.4 编辑 /var/www/html/cacti-1.1.23/include/config.php,给Cacti指定数据库类型,名称,用户名,密码等

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";

/* load up old style plugins here */

$plugins = array();

//$plugins[] = 'thold';

4.5 创建 cacti 系统用户,设置 graph/log 目录权限

# useradd -r -M cacti

# ln -s /var/www/html/cacti-1.1.23 /var/www/html/cacti

# chown -R apache.apache /var/www/html/cacti/

# chown -R cacti /var/www/html/cacti-1.1.23/{rra,log}/

4.6 添加定时任务

# crontab -e

*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1

五、配置防火墙

5.1 配置 firewalld 防火墙

# firewall-cmd --permanent --add-port=3306/tcp

# firewall-cmd --permanent --add-service=http

# firewall-cmd --permanent --add-port=161/udp

# firewall-cmd --permanent --add-port=162/udp

# firewall-cmd --reload

5.2 关闭selinux

# setenforce 0

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

六、设置开机启动相关服务

# systemctl enable httpd

# systemctl enable mariadb

# systemctl enable crond

# systemctl enable snmpd

七、重启相关服务

# systemctl restart httpd

# systemctl restart mariadb

# systemctl restart crond

# systemctl restart snmpd

八、登录 Cacti Web 安装界面

使用浏览器登录

http://your-server/cacti/

勾选 “Accept GPL License Agreement” –> Next –> Next –> 下一步 –> Next –> Next –> 勾选所有预置模版 –> Finish

使用初始登录用户名和密码(admin)登录,然后更改初始密码。

进入Cacti Web 管理界面。

九、安装 spine

9.1 下载解压与 Cacti 相同版本号 Spine 源码安装包

# cd /usr/local/src

# wget http://www.cacti.net/downloads/spine/cacti-spine-1.1.23.tar.gz

# tar xf cacti-spine-1.1.23.tar.gz

9.2 源码编译安装 spine

# ln -s /usr/lib64/libmysqlclient.so.18.0.0 /usr/lib64/libmysqlclient.so

# ntpdate 202.120.2.101

# cd cacti-spine-1.1.23

# ./configure && make && make install

9.3 复制修改配置文件

# cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf

修改spine.conf文件内用户名及密码配置

DB_Host                 localhost

DB_Database             cacti

DB_User                 cactiuser

DB_Pass                 cactiuser

DB_Port                 3306

RDB_Host                localhost

RDB_Database            cacti

RDB_User                cactiuser

RDB_Pass                cactiuser

RDB_Port                3306

9.4 登录 Cacti WEB 页面修改 Cacti 配置

Console -> 设置(Cacti Settings) -> Paths -> 在 Spine Binary File Location 文本框内填入配置文件路径 /usr/local/spine/bin/spine ,在 Spine Config File Path 文本框内填入配置文件路径 /usr/local/spine/etc/spine.conf,点击保存 (Save)。

Console -> 设置(Cacti Settings) -> Poller -> 在 Poller Type 下拉框中选择 spine ,点击保存 (Save)。

十、特别提示

在添加完设备和图形后,需要重建采集器缓存。

Console –> 系统工具 –> Rebuild Poller Cache