BigOps
机器能做的,就不要让人去做,自动化一切重复的工作
官网:www.bigops.com
一 具体介绍
BigOps的特性
这里是它的社区版,具体功能如下
1.1BigOps 开发语言
前端采用iview+VUE
后端采用JAVA
数据存储采用MySQL+Elastic
插件Shell、Python、go都可以,无限制
配置管理采用Ansible
1.2功能特点
统一运维门户
支持接入企业内部原有系统,解决用户在各子系统中来回跳转访问问题。
开源软件接入
支持广泛的开源软件,接入统一认证SSO系统,包括Zabbix、Jira、Jenkins、confluence、GitLab等,还在不断增加中。
千人千面控制台
每个用户都拥有自己独立的控制台,可以按照自己的偏好定义,包括桌面背景图片、图标样式、图标位置、图标是否显示等。
还可以定义自己的快捷按键,随心所欲的想去哪里就去哪里。
资源管理
需要管理的对象皆为资源,包括主机、服务器、交换机、路由器、防火墙、配件、用户、IP等。
支持模型控件方式的灵活方式,可以自由定义资源属性。
支持多云主机资源导入,让所有资源在一个平台统一管理,极大的建议维护工作。
监控系统
和Zabbix的深度整合,未来还会支持OpenFalcon。
增加了主机组方式显示主机监控状态。
增加了服务树方式显示主机监控状态。
增加了接口方式的显示大屏。
增加了告警中心。(马上支持)
主机管理
强大主机管理和主机备份功能。通过Web就可以查看和管理。
支持查看:
Linux内核参数
Linux crontab
Linux运行状态
支持备份:
Linux系统文件
网络设备配置
运维工单
支持简单的运维工单。如果要使用复杂的工单,建议使用钉钉或者微信。
通知方式
支持系统消息、邮件、短信、企业微信、钉钉的通知方式。应该是最全的了:)
权限管理
支持用户角色的权限管理,颗粒度细化到每个按钮。
全局统一设置,不用切换各个后台之间。
二 安装配置
2.1 安装之前的准备工作
硬件配置
建议物理内存8G+、CPU 4 cores+、硬盘20G+。
操作系统支持
1台全新操作系统主机,理论上支持所有Linux操作系统,建议使用:
CentOS 6 x86 64位
CentOS 7 x86 64位 (推荐)
所安装使用服务的对应端口
服务端口
统一认证 30000、30001
work后端 30002、30003
confluence 30008、30009
jira 30010、30011
jenkins 30012、30013
kibana 5601
cerebro 9000
elasticsearch 9200、9300
准备两个域名,此域名可以随意
2个域名
sso.xxxx.com,用于统一认证
work.xxxx.com,用于主站
如果没有注册域名,需要给服务器和笔记本都配置hosts。
Linux位置/etc/hosts。
Windows位置C:\Windows\System32\drivers\etc\hosts,如果不能直接编辑,可以先拷贝到桌面,编辑完在拷贝回原位置。
配置内容,例如:
192.168.100.2 sso.bigops.com (换成你服务器IP和你自己的域名)
192.168.100.2 work.bigops.com (换成你服务器IP和你自己的域名)
切记2个域名都要设置!切记!切记!切记!
切记服务器和你的笔记本都要设置!切记!切记!切记!
主机名可以ping通
查看主机名
hostname
ping主机名
ping xxxxxxx
如果能ping通就是正常,如果ping不通就需要在/etc/hosts里加一行
127.0.0.1 xxxxxxx(换成你服务器的主机名)
2.2 初始化环境
一定要运行初始化脚本
cd ~
#这是它的环境配置脚本,下载后,自动配置
wget -O centos_init_env.sh http://www.bigops.com/bigops-install/centos_init_env.sh
sh centos_init_env.sh
2.3 关闭ipv6(可选)
针对ipv6
centos 7
编辑/etc/default/grub,在GRUB_CMDLINE_LINUX的值里添加ipv6.disable=1,例如:
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet idle=halt biosdevname=0 net.ifnames=0 console=tty0 console=ttyS0,115200n8 noibrs"
再运行命令
#运行grub2-mkconfig命令
grub2-mkconfig -o /boot/grub2/grub.cfg
#重构其
reboot
#Centos6下的配置
centos 6
cat <<EOF>>/etc/modprobe.d/disable_ipv6.conf
alias net-pf-10 off
alias ipv6 off
options ipv6 disable=1
EOF
echo 'alias ipv6 off' >/etc/modprobe.d/ipv6.conf
sed -i '/NETWORKING_IPV6.*/d' /etc/sysconfig/network
echo 'NETWORKING_IPV6=no' >> /etc/sysconfig/network
service ip6tables stop
chkconfig ip6tables off
#Centos6 和Centos7统一需要重启系统
重启系统
reboot
2.4 查看openssh版本是否大于5.6
#查看命令
sshd -V
可能会遇到的问题:
#如果ssh不能登录,请用telnet登录并重新安装openssh。
#如果ssh可以登录,centos 6关闭telnet,centos 7不做任何操作。
#centos 6关闭telnet
chkconfig telnet off
chkconfig xinetd off
service xinetd stop
mv /etc/securetty.bak /etc/securetty
三 配置安装
3.1解压安装包
#把下载的bigops-x.x.x-install.tar.gz文件放到/opt目录,然后解压
cd /opt/
tar zxvf bigops-x.x.x-install.tar.gz
3.2 安装mysql服务
我们可以安装mysql8.0版本
也可以安装mysql5.7版本
这里推荐安装MySQL 8.0
3.2.1 mysq.8.0方式一 安装
脚本安装
wget -O mysql80.sh http://www.bigops.com/bigops-install/mysql80.sh
sh mysql80.sh
#看到下面提示,输入root@127.0.0.1用户密码,保存好一会使用。
#另外root@localhost密码为空
please input root@127.0.0.1 password, default bigops
>输入你的密码
优化MySQL,修改/etc/my.cnf里innodb_buffer_pool_size的值,用命令计算:
说明:BigOps系统占用4G,所以innodb_buffer_pool_size等于总内存减去4G后的70%到80%
free -g|egrep -i ^mem|awk '{if($2<7) print "memory is too small";else print int(($2-4)*0.8)"G"}'
比如上面命令返回8G,就这样设置:
innodb_buffer_pool_size=8G
修改完后需要重启MySQL
3.2.2、 mysql8.0手动安装方式2
#添加yum安装源
wget -O /etc/yum.repos.d/mysql80-community.repo http://www.bigops.com/yum.repos.d/mysql80-community.repo
安装MySQL
yum -y install mysql-community-server mysql-community-client mysql-community-devel mysql-community-libs-compat
优化配置文件
wget -O /etc/my.cnf http://www.bigops.com/bigops-install/mysql/my-80.cnf
chown -R mysql:mysql /var/lib/mysql
优化MySQL,修改/etc/my.cnf里innodb_buffer_pool_size的值,用命令计算:
说明:BigOps系统占用4G,所以innodb_buffer_pool_size等于总内存减去4G后的70%到80%
free -g|egrep -i ^mem|awk '{if($2<7) print "memory is too small";else print int(($2-4)*0.8)"G"}'
比如上面命令返回8G,就这样设置:
innodb_buffer_pool_size=8G
#修改完后需要重启MySQL
#初始化目录,会丢失以前的数据,确认当前数据是否有用,再进行操作
mysqld --user=mysql --lower-case-table-names=0 --initialize-insecure
#root默认口令为空。如果启动失败,有可能basedir有以前的残留文件,需要删除。
#登录MySQL
mysql -uroot -p
#取消密码复杂度,有的小版本有,有的小版本没这些变量,没有就忽略
set global validate_password.policy=0;
set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
set global validate_password.special_char_count=0;
set global validate_password.length=6;
#修改root@localhost密码,your_password改成你的密码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
#添加用户root@127.0.0.1,给用户授权,重要!重要!重要!
create user 'root'@'127.0.0.1' identified by 'your_password';
grant all privileges on *.* to 'root'@'127.0.0.1';
flush privileges;
#重启MySQL
service mysqld restart
3.2.3 MySQL 5.7脚本安装
#下载脚本
wget -O mysql57.sh http://www.bigops.com/bigops-install/mysql57.sh
#运行
sh mysql57.sh
#看到下面提示,输入root@127.0.0.1用户密码,保存好一会使用。另外root@localhost密码为空
please input root@127.0.0.1 password, default bigops
>输入你的密码
#优化MySQL,修改/etc/my.cnf里innodb_buffer_pool_size的值,用命令计算:
#说明:BigOps系统占用4G,所以innodb_buffer_pool_size等于总内存减去4G后的70%到80%
free -g|egrep -i ^mem|awk '{if($2<7) print "memory is too small";else print int(($2-4)*0.8)"G"}'
#比如上面命令返回8G,就这样设置:
innodb_buffer_pool_size=8G
#修改完后需要重启MySQL
3.2.4手动安装
#添加yum安装源
wget -O /etc/yum.repos.d/mysql-community.repo http://www.bigops.com/yum.repos.d/mysql-community.repo
#安装MySQL
yum -y install mysql-community-server mysql-community-client mysql-community-devel mysql-community-libs-compat
#优化的配置文件
wget -O /etc/my.cnf http://www.bigops.com/bigops-install/mysql/my-57.cnf
chown -R mysql:mysql /var/lib/mysql
#优化MySQL,修改/etc/my.cnf里innodb_buffer_pool_size的值,用命令计算:
#说明:BigOps系统占用4G,所以innodb_buffer_pool_size等于总内存减去4G后的70%到80%
free -g|egrep -i ^mem|awk '{if($2<7) print "memory is too small";else print int(($2-4)*0.8)"G"}'
#比如上面命令返回8G,就这样设置:
innodb_buffer_pool_size=8G
#修改完后需要重启MySQL
#
#初始化目录,会丢失以前的数据,确认当前数据是否有用,再进行操作
mysqld --user=mysql --lower-case-table-names=0 --initialize-insecure
#root默认口令为空。如果启动失败,有可能basedir有以前的残留文件,需要删除。
#登录MySQL
mysql -uroot -p
#取消密码复杂度,有的小版本有,有的小版本没这些变量,没有就忽略
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=0;
set global validate_password_special_char_count=0;
set global validate_password_length=6;
#修改root@localhost密码,your_password改成你的密码
use mysql;
grant all privileges on *.* to "root"@"localhost" identified with mysql_native_password by "your_password";
#添加root@127.0.0.1用户,your_password改成你的密码。重要!重要!重要!
grant all privileges on *.* to "root"@"127.0.0.1" identified with mysql_native_password by "your_password";
flush privileges;
重启MySQL
service mysqld restart
我这里安装的是mysql8.0
3.3 安装ELk配置
这里确认是否java 版本的是1.8以及之上
如果不是
那么需要进行安装Java
yum install java-1.8*
正式开始
组件及对应端口
服务 端口
elasticsearch 9200、9300
cerebro 9000
Kibana 5601
3.3.1安装elasticsearch
cd ~
wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
tar zxvf elasticsearch-7.5.1-linux-x86_64.tar.gz
mv elasticsearch-7.5.1 /opt/es
useradd es -d /opt/es
mkdir -p /opt/es_data /opt/es_logs
chown -R es:es /opt/es_data /opt/es_logs /opt/es
wget -O /opt/es/config/elasticsearch.yml http://www.bigops.com/bigops-install/elk/elasticsearch.yml
编辑/opt/es/config/elasticsearch.yml文件,修改相关配置
编辑/opt/es/config/jvm.options,根据你内存情况进行修改
-Xms4g
-Xmx4g
注释下面3行
#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly
添加2行
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
** 设置随机自启动**
centos 7
wget -O /usr/lib/systemd/system/es.service http://www.bigops.com/bigops-install/elk/es.service
systemctl enable es
systemctl daemon-reload
sysctl -p
ulimit -SHn 655360
systemctl restart es.service
centos 6
wget -O /etc/init.d/es http://www.bigops.com/bigops-install/elk/es
chmod +x /etc/init.d/es
chkconfig --add es
chkconfig --level 345 es on
sysctl -p
ulimit -SHn 655360
service es restart
检查服务是否正常
#netstat -nptl|grep 9[2,3]00
tcp 0 0 192.168.50.51:9200 0.0.0.0:* LISTEN 4760/java
tcp 0 0 192.168.50.51:9300 0.0.0.0:* LISTEN 4760/java
设置es密码
./bin/elasticsearch-setup-passwords interactive
根据提示输入密码,设置完重启es服务。
注意:
如果是在公网服务器的化,一般设置的为它的内网IP,这样才可以设置密码成功
elasticsearch启动时遇到的错误
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;
解决:
切换到root用户
执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
显示:
vm.max_map_count = 262144
上述方法修改之后,如果重启虚拟机将失效,所以:
解决办法:
在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
即可永久修改
3.3.2安装kibana
yum -y install nodejs npm git bzip2
wget -c https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz
tar zxvf kibana-7.5.1-linux-x86_64.tar.gz
mv kibana-7.5.1-linux-x86_64 /opt/kibana
wget -O /opt/kibana/config/kibana.yml http://www.bigops.com/bigops-install/elk/kibana.yml
编辑/opt/kibana/config/kibana.yml
随机自动启
centos 7
wget -O /usr/lib/systemd/system/kibana.service http://www.bigops.com/bigops-install/elk/kibana.service
systemctl enable kibana
systemctl daemon-reload
systemctl restart kibana.service
centos 6
wget -O /etc/init.d/kibana http://www.bigops.com/bigops-install/elk/kibana
chmod +x /etc/init.d/kibana
chkconfig --add kibana
chkconfig --level 345 kibana on
service kibana restart
登陆kibana
使用域名+端口方式访问,比如:work.bigops.com:5601,会显示kibana登录页面
创建ES索引模板 如图
PS
执行的域名在这里
www.bigops.com/bigops-install/create_es_index.txt
3.3.3安装cerebro(可选)
#安装
wget -c https://github.com/lmenezes/cerebro/releases/download/v0.8.4/cerebro-0.8.4.tgz
tar zxvf cerebro-0.8.4.tgz
mv cerebro-0.8.4 /opt/cerebro
编辑/opt/cerebro/conf/application.conf文件
开机启动设置
centos 7设置
wget -O /usr/lib/systemd/system/cerebro.service http://www.bigops.com/bigops-install/elk/cerebro.service
chmod -R 777 /opt/cerebro/bin/
systemctl enable cerebro
systemctl daemon-reload
systemctl restart cerebro.service
centos 6设置
wget -O /etc/init.d/cerebro http://www.bigops.com/bigops-install/elk/cerebro
chmod -R 777 /opt/cerebro/bin/
chmod +x /etc/init.d/cerebro
chkconfig --add cerebro
chkconfig --level 345 cerebro on
service cerebro restart
PS
忘记elasticsearch密码,重置密码
按下述步骤创建本地超级账户,然后使用api接口重置elastic账户的密码
(1) 停止elasticsearch服务
(2) 使用命令ES_HOME/bin/x-pack/users创建一个基于本地问价认证的超级管理员
./bin/elasticsearch-users useradd my_admin -p my_password -r superuser
(3) 启动elasticsearch服务
(4) 通过api重置elastic超级管理员的密码
curl -u my_admin -XPUT 'http://localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password" : "new_password"
}
(5) 校验密码是否重置成功
curl -u elastic 'http://localhost:9200/_xpack/security/_authenticate?pretty'
3.4安装Logstash
安装logstash
cd ~
wget -c https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz
tar zxvf logstash-7.5.1.tar.gz
mv logstash-7.5.1 /opt/logstash
wget -O /opt/logstash/config/syslog.conf http://www.bigops.com/bigops-install/elk/syslog.conf
修改配置文件/opt/logstash/config/syslog.conf
运行logstash
/opt/logstash/bin/logstash -f /opt/logstash/config/syslog.conf
手动打条测试日志
logger -i -t "my_test" -p local3.notice "test_info"
客户端修改rsyslog.conf,最后加一行,xxx.xxx.xxx.xxx写上logstash服务器IP
vi /etc/rsyslog.conf
*.notice @@xxx.xxx.xxx.xxx:3514
重启rsyslog
service rsyslog restart (centos 6)
systemctl restart rsyslog (centos 7)
kibana查看是否有syslog数据进来
创建Kibana索引模式
查看索引文档
四最后安装
4.1配置BigOps
压缩包解压后
#运行安装脚本
cd /opt/bigops-x.x.x-install/install/
sh install.sh
根据提示填写相关信息,设置完后服务会自动启动。
dbhost不要填localhost,填127.0.0.1或对应IP
BigOps系统会被安装到/opt/bigops目录
检查数据库大小写敏感
bigops库这几个表名必须驼峰命名(大小写组合),如果表名都是小写就有问题
检查服务端口是否启动
#netstat -nptl|egrep 3000
tcp 0 0 127.0.0.1:30000 0.0.0.0:* LISTEN 32346/java
tcp 0 0 127.0.0.1:30001 0.0.0.0:* LISTEN 32346/java
tcp 0 0 127.0.0.1:30002 0.0.0.0:* LISTEN 26830/java
tcp 0 0 127.0.0.1:30003 0.0.0.0:* LISTEN 26830/java
检查Nginx域名是否配置正确
cat /etc/nginx/conf.d/sso.conf
cat /etc/nginx/conf.d/work.conf
重启Nginx并检查状态
service nginx restart 或 systemctl restart nginx
ps aux|grep nginx.conf
检查sso服务是否正常
curl -q 127.0.0.1:30001/signin/login 2>/dev/null |grep sso
如果返回值包括「sso系统正常」,说明运行正常,如果没有返回值说明有问题,需要详细检查数据库配置。
检查work服务是否正常
curl 127.0.0.1:30003/api/common/ssourl/
如果返回「message」为ok就是正常
登录系统
访问域名:http://work.bigops.com (就是你刚才设置的home url)
默认账号:admin
默认密码:bigops
登陆后请尽快修改密码。
启动bigserver,bigserver服务用于执行一些内置任务
/opt/bigops/bigserver/stop (关闭)
/opt/bigops/bigserver/start (启动)
bigserver配置文件位置/opt/bigops/bigserve/bigserver.properties
设置定时清理日志
crontab -e
00 01 * * * /bin/sh /opt/bigops/bin/clean_log.sh
开机自启动
#centos 6的配置
wget -O /etc/init.d/bigweb http://www.bigops.com/bigops-install/bigweb
chkconfig --add bigweb
chkconfig --level 345 bigweb on
wget -O /etc/init.d/bigserver http://www.bigops.com/bigops-install/bigserver
chkconfig --add bigserver
chkconfig --level 345 bigserver on
chkconfig --level 345 nginx on
chkconfig --level 345 mysqld on
#centos 7的配置
wget -O /usr/lib/systemd/system/bigweb.service http://www.bigops.com/bigops-install/bigweb.service
systemctl enable bigweb
chmod 754 /usr/lib/systemd/system/bigweb.service
wget -O /usr/lib/systemd/system/bigserver.service http://www.bigops.com/bigops-install/bigserver.service
systemctl enable bigserver
chmod 754 /usr/lib/systemd/system/bigserver.service
systemctl enable nginx
systemctl enable mysqld
登陆后,打开时这个界面
具体的研究,在下一次的,还有有惊喜的。