在公司里面一直负责整个公司的监控系统,主要包括底层服务器的硬件监控、系统层面的监控、网络设备的监控、中间件和应用层面的监控等。虽然Zabbix也提供对日志监控的方案,但由于日志量、可视化、报表统计等方面的原因,需要一款专业的日志监控系统来做这件事。我对比过ELK、商业日志工具Splunk和Graylog,后面选择了Graylog。Graylog简单说就是一个开源的日志聚合、分析、审计、展现和预警工具。
1.Graylog优点。
零开发:从收集->存储->分析->呈现完整流程。
部署维护简单:一体化解决方案,不像ELK三个独立系统集成。
多日志源接入:syslog、Filebeat、Log4j、Logstash等。
多协议接入:UDP、TCP、HTTP、AMQP。
自定义面板:提供曲线图、饼状图、世界地图等丰富的图形列表。
全文搜索:支持按语法进行过滤搜索全部日志。
支持报警:具有报警功能的日志分析平台。
权限管理:灵活的权限分配和管理。
支持集群:可以根据应用扩展平台性能。
2.Graylog架构设计,支持集群。
GrayLog:提供 GrayLog对外接口,CPU 密集。
Elasticsearch:日志文件的持久化存储和检索,IO 密集 。
MongoDB:存储一些 GrayLog 的配置信息。
3.安装Graylog应用程序需要下面的条件,后面中括号里面的是本博文所安装的软件版本。
Some modern Linux distribution (Debian Linux, Ubuntu Linux, or CentOS recommended) [CentOS release 6.8 (Final)] Elasticsearch 2.3.5 or later [elasticsearch-5.6.9] MongoDB 2.4 or later (latest stable version is recommended) [graylog-2.4.4] Oracle Java SE 8 (OpenJDK 8 also works; latest stable update is recommended) [ mongodb-linux-x86_64-rhel62-3.6.5]
4.安装配置Graylog,我这里将Graylog、ES和MongoDB安装在同一台服务器上面。
1)安装Java环境,ES安装需要Java 8或者更高版本Java支持,安装Oracle官方的JDK或者OpenJDK。
[root@graylog-server ~]# yum install java [root@graylog-server ~]# java -version openjdk version "1.8.0_111" OpenJDK Runtime Environment (build 1.8.0_111-b15) OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)
2)安装配置Mongodb。
创建mongodb数据库和日志存放的路径。
[root@graylog-server ~]# mkdir -p /data/mongodb/db/ [root@graylog-server ~]# mkdir -p /data/mongodb/logs/
创建mongodb数据库配置文件路径。
[root@graylog-server ~]# cat /data/mongodb/mongodb.conf port = 27017 bind_ip = 0.0.0.0 dbpath = /data/mongodb/db logpath = /data/mongodb/logs/mongodb.log fork = true logappend = true
安装mongodb数据库。
[root@graylog-server software]# tar -zxvf mongodb-linux-x86_64-rhel62-3.6.5.tgz -C /usr/loca/ [root@graylog-server software ]# cd /usr/local/ [root@graylog-server local]# ln -s mongodb-linux-x86_64-rhel62-3.6.5 mongodb
启动mongodb数据库。
[root@graylog-server ~]# /usr/local/mongodb/bin/mongod --config /data/mongodb/mongodb.conf [root@graylog-server ~]# netstat -antlp |grep 27017 tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 32048/mongod
3)安装配置elasticsearch。
创建elsearch用户和组。
[root@graylog-server ~]# groupadd -g 6002 elsearch [root@graylog-server ~]# useradd zabbix -u 6002 -g elsearch -s /sbin/bash
创建elasticsearch数据存储目录。
[root@graylog-server ~]# mkdir /data/elasticsearch [root@graylog-server ~]# chown elsearch:elsearch /data/elasticsearch
安装elasticsearch。
[root@graylog-server software]# unzip elasticsearch-5.6.9.zip [root@graylog-server software ]# mv unzip elasticsearch-5.6.9 /usr/local/ [root@graylog-server local]# ln -s elasticsearch-5.6.9 elasticsearch
编辑elasticsearch配置文件。
[root@graylog-server ~]# grep '^[a-z]' /usr/local/elasticsearch/config/elasticsearch.yml cluster.name: 51zmz-app path.data: /data/elasticsearch path.logs: /data/elasticsearch/logs bootstrap.memory_lock: true #elasticsearch不使用交换分区,如果虚拟机内存小的话建议不要开启这个选项,否则服务会启动不起来。 bootstrap.system_call_filter: false network.host: 0.0.0.0 http.port: 9200
启动elasticsearch服务,如果启动失败,请到日志目录里面查看具体的错误然后自行google解决。
[root@graylog-server ~]# su - elsearch [root@graylog-server ~]# cd /usr/local/elasticsearch/bin/ [root@graylog-server ~]# ./elasticsearch
4)安装配置graylog服务。
创建graylog配置文件目录。
[root@graylog-server ~]# mkdir -p /etc/graylog/server/
安装graylog服务。
[root@graylog-server software]# tar -zxvf graylog-2.4.4.tgz -C /usr/loca/ [root@graylog-server software ]# cd /usr/local/ [root@graylog-server local]# ln -s graylog-2.4.4 graylog
拷贝和编辑graylog配置文件和启动文件。
[root@graylog-server local]# cp graylog/graylog.conf /etc/graylog/server/ [root@graylog-server local]# cp graylog/bin/graylogctl /etc/init.d/ [root@graylog-server ~]# grep '^[a-z]' /etc/graylog/server/server.conf is_master = true node_id_file = /etc/graylog/server/51zmz-node-1 password_secret = Z2LoxxeFvWoAPbMF0sIlYWhHH06leW6bfUAeImqhUe86Wzq8p4HDZAyKTQpaedvBuCoKYjaQAGQTj93R33sREiSIVt1sTRg0 root_username = admin root_password_sha2 = 240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9 root_timezone = Asia/Shanghai plugin_dir = /usr/local/graylog/plugin rest_listen_uri = http://0.0.0.0:9000/api/ web_listen_uri = http://0.0.0.0:9000/ rotation_strategy = count elasticsearch_max_docs_per_index = 20000000 elasticsearch_max_number_of_indices = 20 retention_strategy = delete elasticsearch_shards = 4 elasticsearch_replicas = 0 elasticsearch_index_prefix = graylog allow_leading_wildcard_searches = true allow_highlighting = false elasticsearch_analyzer = standard output_batch_size = 500 output_flush_interval = 1 output_fault_count_threshold = 5 output_fault_penalty_seconds = 30 processbuffer_processors = 5 outputbuffer_processors = 3 processor_wait_strategy = blocking ring_size = 65536 inputbuffer_ring_size = 65536 inputbuffer_processors = 2 inputbuffer_wait_strategy = blocking message_journal_enabled = true message_journal_dir = /usr/local/graylog/journal lb_recognition_period_seconds = 3 mongodb_uri = mongodb://localhost/graylog mongodb_max_connections = 1000 mongodb_threads_allowed_to_block_multiplier = 5 transport_email_enabled = true transport_email_hostname = 192.168.3.243 transport_email_port = 25 transport_email_use_auth = false transport_email_use_tls = false transport_email_use_ssl = false transport_email_subject_prefix = [graylog] transport_email_from_email = X-men@110.51zmz.com content_packs_dir = /usr/local/graylog/contentpacks content_packs_auto_load = grok-patterns.json proxied_requests_thread_pool_size = 32
启动graylog服务。
[root@graylog-server ~]# /etc/init.d/graylogctl start
5.验证graylog服务安装配置是否正常。通过http://yourip:9000来访问。
注意事项:
1)root_password_sha2 密码可以通过 echo -n yourpassword | sha256sum来生成,这里的yourpassword是用来登录graylog的admin用户的密码。生成的root_password_sha2密码请删除空格和-,否则登录不成功。
[root@graylog-server ~]# echo -n admin123 | sha256sum 240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9 -
2)编辑graylog启动文件,指定graylog 配置文件的路径。
[root@graylog-server ~]# vim /etc/init.d/graylogctl GRAYLOG_CONF=${GRAYLOG_CONF:=/etc/graylog/server/server.conf}
标签: elsearch, graylog, mongodb
出处:http://www.zmzblog.com/graylog/install-graylog-server.html